55
Java Móvel Marcelo Quinta Ins3tuto de Informá3ca UFG Introdução ao Java ME e WTK 3.0 GOJAVA

Minicurso Java Me

Embed Size (px)

DESCRIPTION

Slides do minicurso Java ME.

Citation preview

Page 1: Minicurso Java Me

Java  Móvel  

Marcelo  Quinta  Ins3tuto  de  Informá3ca  -­‐  UFG  

Introdução  ao  Java  ME  e  WTK  3.0  

GOJAVA  

Page 2: Minicurso Java Me

•  Graduado  em  Ciência  da  Computação  –  UFG;  

•  GUJ  leader  GoJava;  •  Monitor  da  Especialização  de  “Desenvolvimento  Web  para  Interfaces  Ricas”  –  INF/UFG;  

•  Mestrando  na  área  de  Engenharia  de  SoPware  –  Orientado  pelo  professor  Fábio  Nogueira;  –  Arquitetura  e  construção  de  aplicação  para  visualização  de  objetos  de  aprendizagem  customizados  em  múl3plos  disposi3vos.    

•  O  que  estudo  e  trabalho:  

Apresentação  

2  JavaME   JavaFX  JavaEE   Teste  de  So@ware   Usabilidade  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 3: Minicurso Java Me

Agenda  

3  

•   Diferenças  entre  as  plataformas  Java;  •   Apresentação  de  aplicações  Java  ME;  • Desafios  para  programação  para  disposi3vos  móveis;  • Arquitetura  do  Java  ME;  • WTK  3.0  no  NetBeans;  •   Definição  dos  MIDlets;  •   Ciclo  de  vida  dos  MIDlets;  •   Hello  World;  •   Instalação  de  aplicações  no  celular;  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 4: Minicurso Java Me

Agenda  

4  

•   Introdução  à  API  MIDP  2.0;  •   Noções  de  interface  gráfica;  •   Tratamento  de  eventos;  •   Persistência;  •   Comunicação  Web;  

•   LWUIT.  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 5: Minicurso Java Me

5  

Plataformas  Java  

Java  SE  JDK  6  

Java  EE  SDK  5  

Java  ME  CLDC  1.1  CDC    1.1  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 6: Minicurso Java Me

Foco  do  Java  ME  

6  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 7: Minicurso Java Me

O  que  se  pode  fazer  com  Java  ME  

7  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 8: Minicurso Java Me

O  que  pode-­‐se  fazer  sabendo  Java  ME  

8  

Programar  para  TV  Digital  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 9: Minicurso Java Me

Desafios  da  programação  para  disposiPvos  móveis  

•  Memória  para  gravação  pequena;  –  “Meu  celular  não  tem  memória  pra  guardar  esse  arquivo.”;  

•  Tamanho  do  Display  pequeno;  –  “Não  dá  pra  ver  a  foto  direito  nessa  tela.”;  

•  Velocidade  de  Processamento  baixa;  –  “Meu  celular  é  uma  carroça.”;  

•  Uso  grande  de  bateria;  –  “Minha  bateria  não  dura  nada.”  

•  Dificuldades  com  comunicação  externa.  –  “Nunca  usei  a  internet  do  meu  telefone.”;  

9  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 10: Minicurso Java Me

Arquitetura  do  Java  ME  

10  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 11: Minicurso Java Me

Arquitetura  do  Java  ME  

11  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 12: Minicurso Java Me

Máquina  Virtuais  

•  CVM  (C  Virtual  Machine)  •  Projetada  para  disposi3vos  móveis  mais  poderosos;  

•  KVM  (K  Virtual  Machine)  /  HotSpot  CLDC  •  Projetada  para  disposi3vos  móveis  mais  simples;  •  Bibliotecas  de  classe  com  código  objeto  de  tamanho  reduzido  em  50-­‐80  Kb;    

•  Pequena  u3lização  de  memória;    •  Performance  efe3va  em  processadores  de  16-­‐32  bits;    •  Mul3threading  e  coleta  de  lixo  independentes  do  sistema;  

12  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 13: Minicurso Java Me

Arquitetura  do  Java  ME  

13  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 14: Minicurso Java Me

Configurações  

•  Conjunto  de  funcionalidades  para  que  as  aplicações  Java  ME  possam  “se  comunicar  com  a  JVM”;  

•  É  específica  para  certa  gama  de  aparelhos;  

•  Menos  visível  aos  usuários,  mas  é  muito  importante  para  implementadores  de  perfis  (profiles);  

•  Duas  configurações  básicas:  CDC  e  CLDC.  

14  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 15: Minicurso Java Me

CDC  –  Connected  Device  ConfiguraPon  

•  Supõe  disposi3vos  com  mais  capacidade,  tais  como  seuop  boxes  digitais,  screen-­‐phones,  Nokia  Communicator  e  alguns  PDAs  mais  poderosos;  

•  Recursos  mais  avançados  mais  complexos,  incluindo  suporte  ao  Oracle;  

•  Atualmente  na  versão  CDC  1.1.2  (JSR  218).  

15  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 16: Minicurso Java Me

CLDC  –  Connected  Limited  Device  ConfiguraPon  

•  Supõe  disposi3vos  mais  simples,  com  mais  limitações,  como  telefones  celulares  e  pagers;  

•  É  a  configuração  mais  usada  para  programação  Java  ME;  

•  Atualmente  na  versão  1.1.  (JSR  139);  

16  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 17: Minicurso Java Me

Pensando  em  funcionalidades  

17  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 18: Minicurso Java Me

Arquitetura  do  Java  ME  

18  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 19: Minicurso Java Me

Perfis  

•  Definem  uma  API  disponível  para  um  conjunto  específico  de  aparelhos;  

•  Cada  um  é  implementado  sobre  uma  configuração  par3cular;  

•  Os  mais  conhecidos  são  Personal,  Founda3on  e  Basis  (CDC)  e  MIDP  (CLDC).  

19  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 20: Minicurso Java Me

Configuração  X  Perfil  

•  Configuração  •  Descreve  de  forma  geral  uma  família  de  disposi3vos;  

•  Perfil  •  Fica  mais  específico  a  um  3po  de  aparelho.  

20  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 21: Minicurso Java Me

Personal,  Basis  and  FoundaPon  

•  Baseados  na  CDC;  •  Suporte  a  JDBC  e  RMI;  •  Founda3on  (Biblioteca  de  classes  simples  e  sem  interface  gráfica);  

•  Basis  (Biblioteca  de  classes  e  interface  gráfica  simples);  

•  Personal  (Biblioteca  de  classes  complexa,  inclusive  com  suporte  a  applets  e  interface  AWT).  

21  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 22: Minicurso Java Me

MIDP  

•  Mobile  Informa3on  Device  Profile,  baseado  na  CLDC;  

•  Atualmente  na  versão  2.1;  

•  É  o  mais  popular;  

•  Garbage  collector  “o3mizado”;  

•  API  bastante  parecida  com  Java  6,  possuindo  interface  gráfica,  persistência  e  acesso  a  web.  

22  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 23: Minicurso Java Me

MIDP  2.0  

23  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 24: Minicurso Java Me

Arquitetura  do  Java  ME  

24  

Page 25: Minicurso Java Me

Bibliotecas  

•  Definições  específicas  de  APIs  que  realizam  trabalhos  pontuais;  –  JSR  179:  Loca3on  API  for  Java  METM;  –  JSR  172:  Java  METM  Web  Services  Specifica3on;  –  JSR  75  :  PDA  Op3onal  Packages  for  the  Java  METM  Plaworm;  

–  JSR  82:  JavaTM  APIs  for  Bluetooth;  

hZp://jcp.org/en/jsr/pla^orm?listBy=1&listByType=pla^orm  

25  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 26: Minicurso Java Me

Arquitetura  do  Java  ME  

26  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 27: Minicurso Java Me

O  que  vamos  aprender?  

•  CLDC  1.0/CLDC  1.1  +  MIDP  2.0  – Suportado  na  maior  parte  dos  celulares  modernos;  

– Maior  facilidade  de  depuração;  

– Mais  limitações  para  codificação.  

27  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 28: Minicurso Java Me

PráPca  

28  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 29: Minicurso Java Me

Wireless  Toolkit  3.0  •  Ferramenta  para  facilitar  a  construção  de  aplicações  J2ME;  

–  Integração  com  emuladores  de  terceiros,  bem  como,  de  disposi3vos  com  Windows  Mobile;  

–  Simplificação  no  processo  de  deploy  em  disposi3vos  reais;  –  Integração  do  CDLC/MIDP,  CDC/FP/PBP/AGUI  e  BD-­‐J  em  um  único  SDK,  

não  sendo  mais  necessário  o  download  e  instalação  de  pacotes  separados;  

–  Uma  nova  máquina  virtual  HotSpot  CLDC,  em  subs3tuição  à  an3ga  KVM;  

–  Suporte  a  profiling;  –  Suporte  a  BD-­‐J;  –  Novo  ambiente  de  desenvolvimento  baseado  na  plataforma  Netbeans;  –  Integração  com  Lightweight  UI  Toolkit  (LWUIT);Pesquisa  por  

especificações  técnicas  de  disposi3vos  integrado  no  SDK.  

29  

GRATUITO  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 30: Minicurso Java Me

NetBeans  6.9  

•  A  versão  Java  e  completa  vem  com  Mobility  Pack:  – WTK  3.0;  – Adicionais  para  depuração  /  produ3vidade;  

30  

GRATUITO  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 31: Minicurso Java Me

31  Auto-­‐Complete  Paleta  

Design  Visual   Configurações  

Fluxo  de  Aplicação  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 32: Minicurso Java Me

Como  funciona  uma  aplicação  Java  ME?    

32  

•  MIDlet  – Semelhante  a  um  applet,  mas  nãe  é  controlado  por  uma  função  main(String  args[]);  

– Gerencia  qual  tela  mostrar,  qual  função  chamar,  como  comunicar  com  o  AMS  (Applica?on  Management  SoAware)  do  disposi3vo;  

– Define  as  transições  possíveis  de  uma  aplicação  MIDP:  Pausado,  A?vo  ou  Destruído.  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 33: Minicurso Java Me

MIDlet  

33  

•   int  checkPermission(String  permission);    •   String  getAppProperty(String  key);  •   boolean  plawormRequest(String  URL);  

• void  destroyApp(boolean  uncondiPonal);  • void  no3fyDestroyed()  ;  • void  no3fyPaused()  ;  •   void  pauseApp()  ;  •   void  resumeRequest();  • void  startApp();  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 34: Minicurso Java Me

Como  funciona  uma  aplicação  Java  ME?  

34  

APLICACAO.JAR  

Tela  Atual  Entrada  de  comandos  Iniciar  Pausar  Terminar  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 35: Minicurso Java Me

Hello  World  Java  ME  import  javax.microedi3on.lcdui.*;  

 import  javax.microedi3on.midlet.*;    

public  class  PrimeiroMidlet  extends  MIDlet  implements  CommandListener  {          Display  display;  Form  formulario;  Command  comandoSaida;            public  void  startApp()  {  

               display  =  Display.getDisplay(this);                  formulario  =  new  Form(“WTC  2010");                  formulario.append("Olá  J2ME!!!");                  comandoSaida  =  new  Command("Exit",  Command.EXIT,  2);  formulario.addCommand(comandoSaida);                  formulario.setCommandListener(this);                    display.setCurrent(formulario);  

       }            public  void  pauseApp()  {  }            public  void  destroyApp(boolean  uncondi3onal)  {  }          public  void  commandAc3on(Command  arg0,  Displayable  arg1)  {                    if  (arg0  ==  comandoSaida)  {                              destroyApp(true);    this.no3fyDestroyed();  

               }              }    }    

35  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 36: Minicurso Java Me

Executando  a  aplicação  

•  Pode-­‐se  usar  o  WTK  3.0;  •  Outros  emuladores  – Nokia  – Motorola;  –  ...;  

36  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 37: Minicurso Java Me

Instalando  a  Aplicação...  

•  Arquivo  “.jar”  da  aplicação  – Classes;  – Recursos;  – Manifest;  – Bibliotecas  adicionais  

•  Arquivo  “.jad”  descritor  da  aplicação;  

37  

SEMINFO  2009  –  INTRODUÇÃO  AO  J2ME  E  WTK  3.0  

Page 38: Minicurso Java Me

Instalando  a  aplicação  •  Exemplo  de  .jad:  

MIDlet-1: HelloMidlet, , hello.HelloMidlet

MIDlet-Jar-Size: 1481 MIDlet-Jar-URL: HelloWorld.jar MIDlet-Name: HelloWorld MIDlet-Vendor: Vendor MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0

38  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 39: Minicurso Java Me

FIM  DA  PRIMEIRA  PARTE  

•  O  que  já  sabemos:  – Diferença  de  Java  ME  para  Java  SE  E  Java  EE;  

– O  que  podemos  fazer;  – Problemas  que  enfrentaremos  na  programação;  – Como  é  a  arquitetura  Java  ME;  

– Como  se  configura  um  programa  Java  ME;  – Como  executar;  – Como  instalar.  

39  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 40: Minicurso Java Me

API  MIDP  2.0  

•  Sintaxe  é  extremamente  parecida  com  Java  SE  e  tem  API  com  configuração  muito  parecida;    

40  

Interface  gráfica  

Persistência  

Ciclo  de  vida  

Conexão  Web  

Mídia  Segurança  

Fluxo  de  dados  

Core  

UPlidades  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 41: Minicurso Java Me

Mas  antes  de  programar...  •  Lembre-­‐se:  que  Java  ME  tem  a  mesmo  3po  de  sintaxe  de  JAVA  SE  e  Java  EE!!!;  – O  que  muda  é  a  API  e  o  propósito  da  aplicação;  

– Dica  para  seu  trabalho  com  programação  Java  ser  respeitado:  

APLIQUE  AS  CONVENÇÕES  DE  CÓDIGO  JAVA    (Java  Code  ConvenPons)  

Não  é  frescura,  é  a  norma!!!  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 42: Minicurso Java Me

Voltando  ao  MIDlet...  

42  

•   int  checkPermission(String  permission);    •   String  getAppProperty(String  key);  •   boolean  pla^ormRequest(String  URL);  

• void  destroyApp(boolean  uncondi3onal);  • void  no3fyDestroyed()  ;  • void  no3fyPaused()  ;  •   void  pauseApp()  ;  •   void  resumeRequest();  • void  startApp();  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 43: Minicurso Java Me

Mãos  à  obra    

hup://exemplos.googlecode.com  

Referência  hup://java.sun.com/javame/reference/apis/jsr118/  

43  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 44: Minicurso Java Me

Métodos  do  MIDlet  

•  String  getAppProperty(String  key)  – Retorna  o  valor  da  propriedade  do  MIDlet  

– Propriedades  podem  ser  customizaveis;  

•  String  System.getProperty(String  property)  – hup://developers.sun.com/mobility/midp/ques3ons/proper3es/index.html;  

•  String  checkPermission  (String  permission)  – Checa  se  uma  operação  é  permi3da;  

44  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 45: Minicurso Java Me

Interface  Gráfica  

45  

Screen   Canvas  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 46: Minicurso Java Me

Record  Management  System  

46  j2mesalsa.com  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 47: Minicurso Java Me

Conexão  

47  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 48: Minicurso Java Me

LWUIT  

48  

hups://lwuit.dev.java.net/  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 49: Minicurso Java Me

JavaFx  

49  

hup://www.javafx.com/pt-­‐br/  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 50: Minicurso Java Me

Comunidades  

50  

www.gojava.org  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 51: Minicurso Java Me

Comunidades  

51  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 52: Minicurso Java Me

Se  não  gostou  do  J2ME...  

Programar  para  Windows  Mobile  é  uma  alterna3va.  O  Visual  Studio  ajuda  bastante.  

Acesse  www.devgoias.net  

52  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 53: Minicurso Java Me

Se  você  não  gosta  do  Bill  Gates...  

...  e  gosta  do  Google.  53  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 54: Minicurso Java Me

Mas  se  você  gosta  do  Steve  Jobs  

iPhone!!  54  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Page 55: Minicurso Java Me

FIM  

[email protected]  55  

Criando  aplicações  para  celulares  u3lizando  Java  ME