Agenda
Parte 2
•   Introdução a tecnologia Java
•   Plataformas Java
•   Ambiente de execução Java
•   Plataforma JavaME
•...
Introdução a Tecnologia Java
Histórico do Java
• A tecnologia Java iniciou em dispositivos embarcados (*7 (Star
  Seven))
...
Plataforma Java
Especificações ou Edições
Ambiente de Execução Java

• “Write once, run anywhere”
• Máquina Virtual Java: ambiente que torna a linguagem
  independe...
Ambiente de Execução Java
                                                       Código
                                  ...
Plataforma JavaME
Definição
• Criada pela Sun Microsystems na forma de especificação em
  2000
• Coleção de APIs para o de...
Plataforma JavaME
Definição
Plataforma JavaME
Arquitetura
Plataforma JavaME
Configurações e Perfis
Configurações
Configuration Limited Device Profile - CLDC 1.1
• Herança de J2SE
    – java.lang, java.io e java.util
•   N...
Perfis
Modelos de Aplicação
• Computador: Application – Stand-alone
   – Sobre um PC
• Web: Applet
   – Sobre um navegador...
Perfis
Mobile Information Device Profile - MIDP 2.1
• Modelo de Aplicação – MIDlet Suite
• Ciclo de vida do MIDlet
• User ...
Ambiente de Desenvolvimento
Ferramentas
• Mínimo
   – JDK (Java Development Kit)
   – SDKs (Wireless Toolkit, SDKs de
    ...
Ambiente de Desenvolvimento
Ferramentas
Ambientes de Desenvolvimento
Sun Wireless Toolkit 2.5/3.0
• Kit de ferramentas para a criação de aplicativos
  MIDP criado...
Processo de Desenvolvimento
Codificação
                        • Composto de etapas a
        Desenho
                   ...
Processo de Desenvolvimento
Desenho
                       • Definição da arquitetura e
       Desenho
                   ...
Processo de Desenvolvimento
Codificação
                        • Criação da classe que
        Desenho
                  ...
Processo de Desenvolvimento
Compilação
                       • Criação do bytecode
       Desenho
                       ...
Processo de Desenvolvimento
Pré-verificação
                        • A pré v
                              - erificação d...
Processo de Desenvolvimento
Empacotamento
                       • Empacotamento da
       Desenho
                       ...
Processo de Desenvolvimento
Testes
                           • Execução de testes
           Desenho
                    ...
Processo de Desenvolvimento
Instalação
                       • Instalação da aplicação
       Desenho
                   ...
MIDP 2.1
Ciclo de Vida
• Métodos do ciclo
   – startApp(): Inicialização de recursos
   – pauseApp(): Chamado quando algum...
Aplicação em JavaME
Hello World
import javax.microedition.lcdui.*;

public class MeuPrimeiroMIDlet extends MIDlet {

    p...
Aplicação em JavaME
Atividade Prática                 new HelloMidlet()

                                                 ...
JavaME
Tecnologias e APIs
JavaME
Padronização
• Objetivos
  – Minimizar fragmentação de plataforma, implementação e dispositivo


• Esforços
  – Jav...
JavaME
Padronização


                                     ------
                                     ------
            ...
JavaME
Padronização

       -----
                                                                                        ...
JavaME
Padronização de APIs
• JTWI: Java Technology for the Wireless Industry
• MSA: Mobile Service Architecture

 JTWI   ...
JavaME
Principais APIs
•   MIDP LCDUI: Alto e baixo níveis
•   API UI para jogos
•   RMS: Persistência de dados
•   GCF: f...
JavaME
LCD User Interface




  High level         Low level
JavaME
LCD User Interface




   Canvas:DatePicker




                              Canvas:Table
                       F...
JavaME
Game API
• Utiliza a API de baixo nível (GameCanvas) para a criação de
  cenários de jogos em JavaME
• Classes espe...
JavaME
Game API
JavaME
Netbeans Game Builder
Evolução JavaME
Plataforma JavaFX
• Plataforma de software para o desenvolvimento de
  aplicações ricas sobre a internet (...
Evolução JavaME
Plataforma JavaFX
Evolução JavaME
Plataforma JavaFX
Evolução JavaME
Plataforma JavaFX
JavaME
Tendências
• Curto e médio prazo
  – Crescimento das plataformas de smartphones
     • Dot NET Compact Framework, I...
Links Interessantes

• Mobile and Embedded Community
  – http://community.java.net/mobileandembedded/
• PhoneME
  – https:...
Próximos SlideShares
Carregando em…5
×

Desenvolvimento de Aplicações Móveis em Java

5.955 visualizações

Publicada em

Semana da Informática da PUC Minas - SG
Parte 2

Publicada em: Tecnologia
1 comentário
6 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
5.955
No SlideShare
0
A partir de incorporações
0
Número de incorporações
121
Ações
Compartilhamentos
0
Downloads
1
Comentários
1
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvimento de Aplicações Móveis em Java

  1. 1. Agenda Parte 2 • Introdução a tecnologia Java • Plataformas Java • Ambiente de execução Java • Plataforma JavaME • Arquitetura • Configurações e perfis
  2. 2. Introdução a Tecnologia Java Histórico do Java • A tecnologia Java iniciou em dispositivos embarcados (*7 (Star Seven)) • A partir de 1997 9 iniciou s um trabalho para definir uma nova -8 -e plataforma Java para dispositivos móveis • EmbeddedJava: primeira especificação envolvendo dispositivos embarcados • PersonalJava: 89/99, pai do JavaME • Plataforma JavaME lançada em 99/2000
  3. 3. Plataforma Java Especificações ou Edições
  4. 4. Ambiente de Execução Java • “Write once, run anywhere” • Máquina Virtual Java: ambiente que torna a linguagem independente de arquitetura
  5. 5. Ambiente de Execução Java Código Fonte Arquivo Binário (Pentium) Código 01010101 Fonte HW Pentium Interpretador Compilador (Pentium) Arquivo Binário HW Pentium Java (PowerPC) Bytecode 01010101 J HW PowerPC Compilador (PowerPC) Interpretador HW PowerPC Arquivo Binário Compilador Java (Unix) 01010101 Compilador (Unix) HW Unix Interpretador HW Unix
  6. 6. Plataforma JavaME Definição • Criada pela Sun Microsystems na forma de especificação em 2000 • Coleção de APIs para o desenvolvimento de aplicações para dispositivos móveis na linguagem Java – Baseado no Java Runtime Environment 1.3 • Organizado em subconjuntos de configurações e perfis de APIs – Configurações: classes (recursos básicos) – Perfis: subclasses de configurações (recursos médios e altos) • Apoiado pela maioria dos fabricantes – Nokia, Sony-Ericsson, Motorola, Samsung, LG, . . . • O número de dispositivos (celulares) com a tecnologia é imenso – + 2 bilhões de aparelhos celulares
  7. 7. Plataforma JavaME Definição
  8. 8. Plataforma JavaME Arquitetura
  9. 9. Plataforma JavaME Configurações e Perfis
  10. 10. Configurações Configuration Limited Device Profile - CLDC 1.1 • Herança de J2SE – java.lang, java.io e java.util • Novidades: javax.microedition • Diferenças: Modelo mais simplificado • Requisitos • Novas APIs – Rede, segurança, persistência, etc. • Requisitos – 128 kb de memória não volátil – 32 kb de memória volátil – Acesso ao sistema operacional
  11. 11. Perfis Modelos de Aplicação • Computador: Application – Stand-alone – Sobre um PC • Web: Applet – Sobre um navegador Web • Servidor: Servlet – Sobre um servidor remoto • Set-top Box: Xlet – Sobre um setop box • Celular: MIDlet – Sobre um dispositivo móvel
  12. 12. Perfis Mobile Information Device Profile - MIDP 2.1 • Modelo de Aplicação – MIDlet Suite • Ciclo de vida do MIDlet • User interface API (LCDUI) • Armazenamento de registros - RMS API • Protocolos e funcionalidades avançadas de rede, incluindo conexões seguras • API de jogos e mídia • Política de segurança e assinatura de código • Empacotamento de aplicativos e provisionamento sobre o ar (OTA)
  13. 13. Ambiente de Desenvolvimento Ferramentas • Mínimo – JDK (Java Development Kit) – SDKs (Wireless Toolkit, SDKs de fabricantes) • Recomendado – JDK + SDK – IDEs (Eclipse + EclipseME plugin, Netbeans + Mobility Pack) – Dispositivo real • Dispositivo real – Telefones celulares, PDAs, Smartphones, etc.
  14. 14. Ambiente de Desenvolvimento Ferramentas
  15. 15. Ambientes de Desenvolvimento Sun Wireless Toolkit 2.5/3.0 • Kit de ferramentas para a criação de aplicativos MIDP criado pela Sun • Três componentes principais – KToolbar: automação de tarefas envolvidas na criação de aplicativos MIDP – Emulator: simulador de um celular – Conjunto de utilitários: console, utilitários de criptografia, assinatura, etc. • Funcionalidades – Build e empacotamento de classes: Compilação, pré- verificação, empacotamento – Execução e monitoramento: execução, instalação, monitor de memória, profiler de rede – Assinatura de Suite de MIDlets • Assinatura criptográfica para testes em domínios de proteção diferentes
  16. 16. Processo de Desenvolvimento Codificação • Composto de etapas a Desenho serem executadas sobre uma aplicação sendo Codificação desenvolvida Compilação • Pode ser gerenciado por uma ferramenta de desenvolvimento integrado Pré-verificação – Ex: Eclipse, Netbeans, WTK, dentre outras. Empacotamento Testes Instalação
  17. 17. Processo de Desenvolvimento Desenho • Definição da arquitetura e Desenho desenho das interfaces de usuário (GUIs) Codificação • Opções de arquitetura Compilação – Cliente/Servidor, P2P, Standalone Pré-verificação • Telas de navegação da aplicação Empacotamento • APIs a serem usadas pela aplicação Testes – compatibilidade com o dispositivo Instalação
  18. 18. Processo de Desenvolvimento Codificação • Criação da classe que Desenho extende de MIDlet Codificação – Acesso ao display • Uso das APIs de acesso a Compilação recursos do dispositivo • HelloWorld.java Pré-verificação • Uso de IDEs na codificação – Ex: Eclipse, Netbeans Empacotamento Testes Instalação
  19. 19. Processo de Desenvolvimento Compilação • Criação do bytecode Desenho representando a classe Java Codificação • HelloWorld.class Compilação • Ferramenta javac do SDK Pré-verificação Empacotamento Testes Instalação
  20. 20. Processo de Desenvolvimento Pré-verificação • A pré v - erificação de código Desenho no JavaSE é feita na própria JVM Codificação – Tarefa imprópria para dispositivos móveis Compilação • JavaME: Dividida em duas fases: Pré-verificação – Durante a compilação – Durante a execução no Empacotamento dispositivo • Ferramenta preverify do Testes WTK Instalação
  21. 21. Processo de Desenvolvimento Empacotamento • Empacotamento da Desenho aplicação em dois arquivos Codificação – JAR: Java Archive – JAD: Java Application Compilação Description • Ferramenta JAR no SDK Pré-verificação Empacotamento MIDlet-Name: Hello World Testes MIDlet-Version: 1.0 MIDlet-Vendor: Jim MIDlet-Description: My First MIDlet suite MIDlet-1: HelloWorld, null, greeting.HelloWorld Instalação MIDlet-Jar-URL: HelloWorld.jar MIDlet-Jar-Size: 1428
  22. 22. Processo de Desenvolvimento Testes • Execução de testes Desenho automatizados ou interativos sobre a Codificação aplicação – J2MEUnit Compilação • Normalmente feitos sobre Pré-verificação um emulador Empacotamento Testes Instalação
  23. 23. Processo de Desenvolvimento Instalação • Instalação da aplicação Desenho empacotada no emulador/dispositivo Codificação – Arquivos JAR e JAD Compilação • Métodos de instalação – Cópia de arquivos JAR e JAD Pré-verificação via USB ou BT/IrDA – Pela Internet via OTA Empacotamento Testes Instalação
  24. 24. MIDP 2.1 Ciclo de Vida • Métodos do ciclo – startApp(): Inicialização de recursos – pauseApp(): Chamado quando algum evento do dispositivo ocorre (ex: ligação telefônica) • Persistência, parada de processamento – destroyApp(boolean): Encerramento do aplicativo • Métodos da aplicação – exitMidlet() new HelloMIDlet() pauseApp Paused Active startApp public void exitMIDlet() { destroyApp(true); destroyApp notifyDestroyed(); } Destroyed
  25. 25. Aplicação em JavaME Hello World import javax.microedition.lcdui.*; public class MeuPrimeiroMIDlet extends MIDlet { public MeuPrimeiroMIDlet() { super(); Display.getDisplay(this).setCurrent( new Alert(quot;Titulo Telaquot;, quot;Hello Worldquot;, null, AlertType.INFO)); } protected void startApp() throws MIDletStateChangeException { System.out.println(quot;startAppquot;); } protected void pauseApp() { System.out.println(quot;pauseAppquot;); } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { System.out.println(quot;destroyAppquot;); } }
  26. 26. Aplicação em JavaME Atividade Prática new HelloMidlet() pauseApp • Exercício 1: Criar um Paused Active projeto JavaME no Eclipse startApp e codificar o Hello World • Exercício 2: Rastrear o ciclo destroyApp de vida de um MIDlet Destroyed
  27. 27. JavaME Tecnologias e APIs
  28. 28. JavaME Padronização • Objetivos – Minimizar fragmentação de plataforma, implementação e dispositivo • Esforços – Java Technology for the Wireless Industry (JTWI) – JSR 185 – Mobile Services Architecture (MSA) – JSR 248 • Java Community Process (JCP) • Java Specification Request (JSR)
  29. 29. JavaME Padronização ------ ------ JCP --- ---- Grupos Membros Artefatos Participação PMO Spec Lead Spec Indivíduo Maintenance EC RI Empresa Lead EG Especialista TCK Entidade
  30. 30. JavaME Padronização ----- TCK ----- ----- RI ---- First Public Final Final Initiation Maintenance Draft Draft Draft Release Writing the EG Formation Review and Preparing for Final Submitting the Review and proposal Updates in the PD Draft of Spec Final Release of updates in Preparing the FD Spec, RI and TCK Maintenance Submitting the Approval of PD by Delivery of TCK Review and Versions proposal EC and RI Updates in the FD Input of Review and Submitting Final TCK and RI functionalities for acceptance by EC Draft to EC Planning new Spec Proposal Approval by EC Participants: Public Expert Group Spec/Maintenance Leader JCP Members Executive Comittee
  31. 31. JavaME Padronização de APIs • JTWI: Java Technology for the Wireless Industry • MSA: Mobile Service Architecture JTWI MSA Novas JSRs JSR 30: CLDC 1.0 JSR 75: PIM/FC JSR 253: MTA API JSR 37: MIDP 1.0 JSR 82: BTAPI JSR 256: Sensor API JSR 139: CLDC 1.1 JSR 184: 3D Graphics JSR 266: UMBA API JSR 118: MIDP 2.0 JSR 205: WMA 2.0 JSR 271: MIDP 3.0 JSR 120: WMA 1.0 JSR 226: SVG JSR 272: MBS API JSR 135: MMAPI JSR 172: WS API JSR 281: IMS API JSR 177: SATSA JSR 293: Location API 2.0 JSR 179: Location API JSR 297: 3D 2.0 JSR 180: SIP API JSR 304: MTA 2.0 JSR 211: CHAPI JSR 229: PAPI JSR 234: AMS JSR 238: i18n
  32. 32. JavaME Principais APIs • MIDP LCDUI: Alto e baixo níveis • API UI para jogos • RMS: Persistência de dados • GCF: framework genérico para conexões – HTTP, IRda, BT, FC, • MMAPI e AMS: Multimídia • WMA: SMS e MMS • WSA: Web Services, SOAP, XML • I18n: Internacionalização • LAPI: Localização • M3DG: Gráficos 3D
  33. 33. JavaME LCD User Interface High level Low level
  34. 34. JavaME LCD User Interface Canvas:DatePicker Canvas:Table Form
  35. 35. JavaME Game API • Utiliza a API de baixo nível (GameCanvas) para a criação de cenários de jogos em JavaME • Classes especializadas para o gerenciamento de camadas e atores – LayoutManager (gerenciador de cadamas), Layer (camada) e Sprite (personagem) Sprite Layer
  36. 36. JavaME Game API
  37. 37. JavaME Netbeans Game Builder
  38. 38. Evolução JavaME Plataforma JavaFX • Plataforma de software para o desenvolvimento de aplicações ricas sobre a internet (RIA) sobre uma grande variedade de dispositivos – Suporte a desktop, navegador Web e celulares – Suporte planejado a set-top box de TVs, consoles de jogos, tocadores Blu- ray, dentre outras • Versão atual: 1.1.1 (Março de 2009) • Integrado ao ambiente de execução Java – JRE e ao JavaME (dispositivos móveis) • Linguagem declarativa JavaFX Script • Concorrentes diretos – Adobe Flash Player, Adobe Integrated Runtime, OpenLaslo, MS Silverlight
  39. 39. Evolução JavaME Plataforma JavaFX
  40. 40. Evolução JavaME Plataforma JavaFX
  41. 41. Evolução JavaME Plataforma JavaFX
  42. 42. JavaME Tendências • Curto e médio prazo – Crescimento das plataformas de smartphones • Dot NET Compact Framework, IPhone, Android, Symbian – Novas tecnologias JavaME • MSA incorporado nos dispositivos (SE Z750) • JavaFX Mobile, Mobile Ajax – Evolução: aplicações móveis serem executadas sobre a Web • Novas JSRs (IMS API, MIDP 3.0, etc.) • Longo prazo – Convergência de configurações • CLDC + CDC -> JavaSE – Aumento da capacidade de processamento dos dispositivos • Fim do JavaME? • Ainda existem muitos dispositivos com JavaME
  43. 43. Links Interessantes • Mobile and Embedded Community – http://community.java.net/mobileandembedded/ • PhoneME – https://phoneme.dev.java.net/ • Java Community Process – http://www.jcp.org/en/home/index • ME Application Developers – https://meapplicationdevelopers.dev.java.net • Site Oficial do JavaME – Sun – http://java.sun.com/javame/index.jsp • Lista de discursão JavaME – j2me-list@soujava.dev.java.net

×