Minicurso Java Me

6.689 visualizações

Publicada em

Slides do minicurso Java ME.

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
6.689
No SlideShare
0
A partir de incorporações
0
Número de incorporações
27
Ações
Compartilhamentos
0
Downloads
270
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Minicurso Java Me

  1. 1. Java  Móvel   Marcelo  Quinta   Ins3tuto  de  Informá3ca  -­‐  UFG   Introdução  ao  Java  ME  e  WTK  3.0   GOJAVA  
  2. 2. •  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  
  3. 3. 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  
  4. 4. 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  
  5. 5. 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  
  6. 6. Foco  do  Java  ME   6   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  7. 7. O  que  se  pode  fazer  com  Java  ME   7   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  8. 8. O  que  pode-­‐se  fazer  sabendo  Java  ME   8   Programar   para  TV  Digital   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  9. 9. 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  
  10. 10. Arquitetura  do  Java  ME   10   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  11. 11. Arquitetura  do  Java  ME   11   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  12. 12. 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  
  13. 13. Arquitetura  do  Java  ME   13   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  14. 14. 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  
  15. 15. 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  
  16. 16. 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  
  17. 17. Pensando  em  funcionalidades   17   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  18. 18. Arquitetura  do  Java  ME   18   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  19. 19. 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  
  20. 20. 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  
  21. 21. 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  
  22. 22. 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  
  23. 23. MIDP  2.0   23   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  24. 24. Arquitetura  do  Java  ME   24  
  25. 25. 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  
  26. 26. Arquitetura  do  Java  ME   26   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  27. 27. 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  
  28. 28. PráPca   28   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  29. 29. 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  
  30. 30. 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  
  31. 31. 31   Auto-­‐Complete  Paleta   Design  Visual   Configurações   Fluxo  de  Aplicação   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  32. 32. 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  
  33. 33. 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  
  34. 34. 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  
  35. 35. 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  
  36. 36. Executando  a  aplicação   •  Pode-­‐se  usar  o  WTK  3.0;   •  Outros  emuladores   – Nokia   – Motorola;   – ...;   36   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  37. 37. 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  
  38. 38. 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  
  39. 39. 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  
  40. 40. 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  
  41. 41. 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  
  42. 42. 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  
  43. 43. 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  
  44. 44. 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  
  45. 45. Interface  Gráfica   45   Screen   Canvas   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  46. 46. Record  Management  System   46  j2mesalsa.com   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  47. 47. Conexão   47   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  48. 48. LWUIT   48   hups://lwuit.dev.java.net/   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  49. 49. JavaFx   49   hup://www.javafx.com/pt-­‐br/   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  50. 50. Comunidades   50   www.gojava.org   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  51. 51. Comunidades   51   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  52. 52. 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  
  53. 53. Se  você  não  gosta  do  Bill  Gates...   ...  e  gosta  do  Google.   53   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  54. 54. Mas  se  você  gosta  do  Steve  Jobs   iPhone!!   54   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  55. 55. FIM   marceloricardoquinta@gmail.com   55   Criando  aplicações  para  celulares  u3lizando  Java  ME  

×