ERISVALDO GADELHA SARAIVA JÚNIOR
Tecnólogo em Sistemas para Internet pelo IFPB
Graduando em Ciência da Computação pela UFP...
Objetivo                           ROTEIRO
                              A plataforma J2ME
Desenvolver aplicações para
dis...
Visão geral da plataforma Java




                 [SUN, 2008]
Configurações do JavaME




   CLDC 1.0 / CLDC 1.1
Perfis do CLDC


• Trata-se da especificação     • Revisão da especificação
original (JSR 37);              original (JSR ...
O que vamos usar
                       Possíveis pacotes opcionais

                       • Mobile   Media API
         ...
Ciclo de vida de uma aplicação JavaME




               [FONSECA, 2005]
Estrutura básica de classes




                [FONSECA, 2005]
Estrutura expandida de classes




     Comum a todas as versões do MIDP   MIDP 2.0 ou superior
Expandindo mais ainda...
Muita hora nessa calma...

                                • Os     Commands        são
• Apesar     da      grande     es...
Persistência de Dados
• Através do RMS (Record   • Possui          recursos
Management Store), um      interessantes,     ...
Persistência de Dados




         Forma de armazenamento dos Record Stores
Tecnologias utilizadas


                         • Mobility
                           •Game Builder(Não)

              ...
NetBeans 6.5 (Full ou Mobility)
•Suporte completo a plataforma
JavaME;


•Ferramenta RAD para navegação
de telas com o Vis...
Emuladores
             Sun Java Wireless
               Toolkit (JWT)


             Nokia S40/S60 SDK




              ...
Emuladores
             Sun Java Wireless
               Toolkit (JWT)


             Nokia S40/S60 SDK




              ...
Exemplo 1:
Olá Mundo!
Exemplo 2: FuelMIDlet (Parte 1/3)
Exemplo 2: FuelMIDlet (Parte 2/3)
Exemplo 2: FuelMIDlet (Parte 3/3)
Exemplo 3: PhoneBookMIDlet (Parte 1/3)
Exemplo 3:
PhoneBook
MIDlet
(Parte 2/3)
Exemplo 3: PhoneBookMIDlet (Parte 3/3)
Mas esses exemplos estão muito feios...

•Vamos melhorá-los!


•SplashScreen herdando de Canvas;


•Uso                   ...
Exemplo 3: NameComparator
Exemplo 3: NameFilter
Principais classes do JavaME




     Comum a todas as versões do MIDP   MIDP 2.0 ou superior
ClasseCanvas
• Classe abstrata que deve   • As     classes   que
ser especializada para a
confecção de uma tela em
       ...
ClasseCanvas

                         • Graphics      possui
•O   método paint()
                         diversos      m...
ClasseCanvas (Imagens x Portabilidade)

                         •Todos    os desenhos
• A altura e a largura
da tela pode...
ClasseCanvas (Teclas x Portabilidade)

                         •As    "Soft   Keys"    não
• Qualquer tecla que o   possu...
Exemplo de Splash Screen com Canvas
Constantes de teclas emCanvas
GameCanvas x Canvas

                         • Em GameCanvas, não
• O MIDP 2.0 apresenta
                         há nece...
Constantes de teclas emGameCanvas
Integração com a WEB
• J2ME   é capaz de realizar
requisições HTTP, do tipo GET ou
POST, bem como tratar suas
respostas. I...
Pacotes Opcionais
•FileConnection and PIM API (JSR 75);
•Java APIs for Bluetooth 1.1 (JSR 82);
•Mobile Media API 1.1 (JSR ...
JavaME
JavaME
JavaME
JavaME
JavaME
Upcoming SlideShare
Loading in...5
×

JavaME

1,549

Published on

1 Comment
0 Likes
Statistics
Notes
  • cool
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
1,549
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
70
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

JavaME

  1. 1. ERISVALDO GADELHA SARAIVA JÚNIOR Tecnólogo em Sistemas para Internet pelo IFPB Graduando em Ciência da Computação pela UFPB Pesquisador do LabTEVE (Laboratório de Tecnologias para o Ensino Virtual e Estatística) E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: http://twitter.com/erisvaldojunior
  2. 2. Objetivo ROTEIRO A plataforma J2ME Desenvolver aplicações para dispositivos móveis considerando fatores como Exemplos Práticos portabilidade, uso de memória e processamento. Interface X Portabilidade Web / Pacotes Opcionais Próximos Passos
  3. 3. Visão geral da plataforma Java [SUN, 2008]
  4. 4. Configurações do JavaME CLDC 1.0 / CLDC 1.1
  5. 5. Perfis do CLDC • Trata-se da especificação • Revisão da especificação original (JSR 37); original (JSR 118); •Provê o núcleo necessário • Componentes de para aplicações móveis, como componentes básicos interface aprimorados, de interface e conexão de HTTPS, suporte a jogos e rede. aplicações multimídia. MIDP 2 .1 . . . MIDP 3.0*
  6. 6. O que vamos usar Possíveis pacotes opcionais • Mobile Media API (MMAPI) – JSR 135; • Wireless Messaging API (WMA) – JSR 205; •É o "padrão de •File Connection mercado" atual. Optional Package (FCOP) – JSR 75.
  7. 7. Ciclo de vida de uma aplicação JavaME [FONSECA, 2005]
  8. 8. Estrutura básica de classes [FONSECA, 2005]
  9. 9. Estrutura expandida de classes Comum a todas as versões do MIDP MIDP 2.0 ou superior
  10. 10. Expandindo mais ainda...
  11. 11. Muita hora nessa calma... • Os Commands são • Apesar da grande essenciais. Você pode quantidade de classes, elas adicionar Commands em são de muito fácil uso. Em qualquer tela. Eles regem a geral, basta apenas chamar navegação da sua aplicação. o construtor da classe, setar Basta implementar o alguns métodos e depois método commandAction() informar ao Display para da interface mostrá-la na tela; CommandListener.
  12. 12. Persistência de Dados • Através do RMS (Record • Possui recursos Management Store), um interessantes, como esquema de navegar pelos registros armazenamento bastante através de um RecordEnumeration, simples do JavaME; filtrando-os da maneira • Uma aplicação pode que achar conveniente acessar múltiplos Record (RecordFilter) e Stores e cada um poder ordenando-os também ter N registros. como quiser (RecordComparator).
  13. 13. Persistência de Dados Forma de armazenamento dos Record Stores
  14. 14. Tecnologias utilizadas • Mobility •Game Builder(Não) •Visual Mobile Designer (Não, é a baba é?)
  15. 15. NetBeans 6.5 (Full ou Mobility) •Suporte completo a plataforma JavaME; •Ferramenta RAD para navegação de telas com o Visual Mobile Designer; •Ferramenta RAD para o design dos jogos com o Game Builder.
  16. 16. Emuladores Sun Java Wireless Toolkit (JWT) Nokia S40/S60 SDK MotoDEV SDK
  17. 17. Emuladores Sun Java Wireless Toolkit (JWT) Nokia S40/S60 SDK MotoDEV SDK
  18. 18. Exemplo 1: Olá Mundo!
  19. 19. Exemplo 2: FuelMIDlet (Parte 1/3)
  20. 20. Exemplo 2: FuelMIDlet (Parte 2/3)
  21. 21. Exemplo 2: FuelMIDlet (Parte 3/3)
  22. 22. Exemplo 3: PhoneBookMIDlet (Parte 1/3)
  23. 23. Exemplo 3: PhoneBook MIDlet (Parte 2/3)
  24. 24. Exemplo 3: PhoneBookMIDlet (Parte 3/3)
  25. 25. Mas esses exemplos estão muito feios... •Vamos melhorá-los! •SplashScreen herdando de Canvas; •Uso de RecordFilter/RecordComparator no Exemplo 3; •Trocar os componentes de alto nível (Alert, Form, List) por telas de baixo nível herdando de Canvas.
  26. 26. Exemplo 3: NameComparator
  27. 27. Exemplo 3: NameFilter
  28. 28. Principais classes do JavaME Comum a todas as versões do MIDP MIDP 2.0 ou superior
  29. 29. ClasseCanvas • Classe abstrata que deve • As classes que ser especializada para a confecção de uma tela em herdam de Canvas baixo nível; podem implementar • As classes que herdam o método de Canvas keyPressed(), que obrigatoriamente devem implementar o método verifica se uma paint(), responsável por determinada tecla foi desenhar a tela; pressionada.
  30. 30. ClasseCanvas • Graphics possui •O método paint() diversos métodos recebe como para desenhar na argumento uma tela, tais como: instância de Graphics, drawImage(), com a qual é possível drawRect(), fillRect(), desenhar na tela; drawString(), etc.
  31. 31. ClasseCanvas (Imagens x Portabilidade) •Todos os desenhos • A altura e a largura da tela podem ser devem ser sempre obtidas pelos posicionados de acordo métodos getHeight() com as dimensões de e getWidth(), tela, permitindo a respectivamente; portabilidade da aplicação.
  32. 32. ClasseCanvas (Teclas x Portabilidade) •As "Soft Keys" não • Qualquer tecla que o possuem constantes usuário pressionar definidas em Canvas, ou seja, o keyCode varia de pode ser tratada pelo aparelho para aparelho. método Com isso, o uso de Commands é recomendado, keyPressed(int visando evitar-se problemas keyCode); de portabilidade.
  33. 33. Exemplo de Splash Screen com Canvas
  34. 34. Constantes de teclas emCanvas
  35. 35. GameCanvas x Canvas • Em GameCanvas, não • O MIDP 2.0 apresenta há necessidade de a classe GameCanvas, implementar o método que herda de Canvas e paint(). Graphics é possui algumas obtido com vantagens em relação a getGraphics() e o anterior, sendo estado das teclas com bastante útil para getKeyStates(). jogos;
  36. 36. Constantes de teclas emGameCanvas
  37. 37. Integração com a WEB • J2ME é capaz de realizar requisições HTTP, do tipo GET ou POST, bem como tratar suas respostas. Isso permite: • Envio de conteúdo para uma aplicação PhP, RoR ou um Servlet; • A aplicação Web pode integrar o conteúdo a um banco de dados; • O cliente JavaME pode mostrar a resposta da requisição.
  38. 38. Pacotes Opcionais •FileConnection and PIM API (JSR 75); •Java APIs for Bluetooth 1.1 (JSR 82); •Mobile Media API 1.1 (JSR 135); •Location API for J2ME 1.1 (JSR 179); •Mobile 3D Graphics API for J2ME 1.1 (JSR 184); •Wireless Messaging API 2.0 (JSR 205); • Advanced Multimedia Supplements 1.1 (JSR 234); • Mobile Sensor API (JSR 256); • Entre outros...
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×