SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
GOJAVA	
  




       Java	
  Móvel	
  
      Introdução	
  ao	
  Java	
  ME	
  e	
  WTK	
  3.0	
  

              Marcelo	
  Quinta	
  
             Ins3tuto	
  de	
  Informá3ca	
  -­‐	
  UFG	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                           Apresentação	
  
      •  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:	
  
        JavaEE	
   JavaME	
   JavaFX	
   Teste	
  de	
  So@ware	
   Usabilidade	
                 2	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                                     Agenda	
  

                                                                  • 	
  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;	
  



                                                                                                                       3	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                                     Agenda	
  

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

                                                                  • 	
  LWUIT.	
  




                                                                                                                     4	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                     Plataformas	
  Java	
  

          Java	
  SE	
                                 Java	
  EE	
           Java	
  ME	
  
                   JDK	
  6	
                                  SDK	
  5	
         CLDC	
  1.1	
  
                                                                                  CDC	
  	
  1.1	
  




                                                                                                       5	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                      Foco	
  do	
  Java	
  ME	
  




                                                                            6	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


         O	
  que	
  se	
  pode	
  fazer	
  com	
  Java	
  ME	
  




                                                                            7	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


       O	
  que	
  pode-­‐se	
  fazer	
  sabendo	
  Java	
  ME	
  



                            Programar	
  
                          para	
  TV	
  Digital	
  

                                                                            8	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                          Arquitetura	
  do	
  Java	
  ME	
  




                                                                            10	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                          Arquitetura	
  do	
  Java	
  ME	
  




                                                                            11	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                          Arquitetura	
  do	
  Java	
  ME	
  




                                                                            13	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


     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	
  

              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	
  


                Pensando	
  em	
  funcionalidades	
  




                                                                            17	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                          Arquitetura	
  do	
  Java	
  ME	
  




                                                                            18	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                               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	
  


             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	
  


                                                         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	
  


                                                   MIDP	
  2.0	
  




                                                                            23	
  
Arquitetura	
  do	
  Java	
  ME	
  




                                      24	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                          Arquitetura	
  do	
  Java	
  ME	
  




                                                                            26	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                                                       PráPca	
  




                                                                            28	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                 Wireless	
  Toolkit	
  3.0	
                                          GRATUITO	
  


      •    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	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                            NetBeans	
  6.9	
               GRATUITO	
  



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




                                                                                    30	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  
 Design	
  Visual	
                                                         Configurações	
  




                                                                   Fluxo	
  de	
  Aplicação	
  




                                                                                                            31	
  
                                  Paleta	
                                            Auto-­‐Complete	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  

            Como	
  funciona	
  uma	
  aplicação	
  Java	
  
                             ME?	
  	
  
      •  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.	
  


                                                                                        32	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                                       MIDlet	
  




    • 	
  int	
  checkPermission(String	
  permission);	
  	
     • void	
  destroyApp(boolean	
  uncondiPonal);	
  
    • 	
  String	
  getAppProperty(String	
  key);	
              • void	
  no3fyDestroyed()	
  ;	
  
    • 	
  boolean	
  plawormRequest(String	
  URL);	
             • void	
  no3fyPaused()	
  ;	
  
                                                                  • 	
  void	
  pauseApp()	
  ;	
  
                                                                  • 	
  void	
  resumeRequest();	
  
                                                                  • void	
  startApp();	
  
                                                                                                                  33	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


         Como	
  funciona	
  uma	
  aplicação	
  Java	
  ME?	
  

                   APLICACAO.JAR	
  




                        Tela	
  Atual	
  
                        Entrada	
  de	
  comandos	
  
                        Iniciar	
  
                        Pausar	
  
                        Terminar	
  




                                                                            34	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                           Executando	
  a	
  aplicação	
  
      •  Pode-­‐se	
  usar	
  o	
  WTK	
  3.0;	
  
      •  Outros	
  emuladores	
  
             –  Nokia	
  
             –  Motorola;	
  
             –  ...;	
  




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


                        Instalando	
  a	
  Aplicação...	
  
      •  Arquivo	
  “.jar”	
  da	
  aplicação	
  
             –  Classes;	
  
             –  Recursos;	
  
             –  Manifest;	
  
             –  Bibliotecas	
  adicionais	
  
      •  Arquivo	
  “.jad”	
  descritor	
  da	
  aplicação;	
  



                                                                          37	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                         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	
  


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

                                                                          Ciclo	
  de	
  vida	
  
                                                                                                    Fluxo	
  de	
  dados	
  

           Interface	
  gráfica	
  


                                                       Persistência	
                                   Core	
  




                                                                                                      UPlidades	
  

                    Conexão	
  Web	
  
                                                                                    Segurança	
  
                                                        Mídia	
                                                            40	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                             Voltando	
  ao	
  MIDlet...	
  




    • 	
  int	
  checkPermission(String	
  permission);	
  	
   • void	
  destroyApp(boolean	
  uncondi3onal);	
  
    • 	
  String	
  getAppProperty(String	
  key);	
            • void	
  no3fyDestroyed()	
  ;	
  
    • 	
  boolean	
  pla^ormRequest(String	
  URL);	
           • void	
  no3fyPaused()	
  ;	
  
                                                                • 	
  void	
  pauseApp()	
  ;	
  
                                                                • 	
  void	
  resumeRequest();	
  
                                                                • void	
  startApp();	
  
                                                                                                                 42	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


                                 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	
  


                                      Interface	
  Gráfica	
  




            Screen	
                                                        Canvas	
  




                                                                                         45	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                 Record	
  Management	
  System	
  




                                                                            j2mesalsa.com	
     46	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                                    Conexão	
  




                                                                            47	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                                       LWUIT	
  




                                  hups://lwuit.dev.java.net/	
  
                                                                            48	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                                       JavaFx	
  




                         hup://www.javafx.com/pt-­‐br/	
  
                                                                            49	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                           Comunidades	
  




                            www.gojava.org	
  
                                                                            50	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


                                           Comunidades	
  




                                                                            51	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  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	
  


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




                               ...	
  e	
  gosta	
  do	
  Google.	
         53	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  


            Mas	
  se	
  você	
  gosta	
  do	
  Steve	
  Jobs	
  




                                                    iPhone!!	
              54	
  
Criando	
  aplicações	
  para	
  celulares	
  u3lizando	
  Java	
  ME	
  




                                                     FIM	
  



                        marceloricardoquinta@gmail.com	
                    55	
  

Mais conteúdo relacionado

Semelhante a Apostila complementar java móvel

Java EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeansReuel Lopes
 
Apostila Java
Apostila JavaApostila Java
Apostila Javadeilton
 
Apostila Java
Apostila JavaApostila Java
Apostila Javadeilton
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Capacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitosCapacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitosEliete Regina Souza
 
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.Cristofer Sousa
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaAlex Braz
 
Java para dispositivos móveis
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveisJoão Gabriel Lima
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenLeandro Costa
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEJoão Longo
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisMarcelo Quinta
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 

Semelhante a Apostila complementar java móvel (20)

Java EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeans
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Java
JavaJava
Java
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Capacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitosCapacitacao java aula-01-01-conceitos
Capacitacao java aula-01-01-conceitos
 
Aula 1 1
Aula 1 1Aula 1 1
Aula 1 1
 
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
Plataformas Monolíticas, redescobrindo o Desktop e sendo Ágil para Web.
 
Mobile Dev - Aplicativos
Mobile Dev - AplicativosMobile Dev - Aplicativos
Mobile Dev - Aplicativos
 
WRT Widgets - M3DD LA
WRT Widgets - M3DD LAWRT Widgets - M3DD LA
WRT Widgets - M3DD LA
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação java
 
JavaFX Mobile
JavaFX MobileJavaFX Mobile
JavaFX Mobile
 
Java para dispositivos móveis
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveis
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 

Mais de Reuel Lopes

Trabalhando com EVA 2017
Trabalhando com EVA 2017Trabalhando com EVA 2017
Trabalhando com EVA 2017Reuel Lopes
 
Panorama da aula semi-presencial: desafios, vantagens e dificuldades
Panorama da aula semi-presencial: desafios, vantagens e dificuldadesPanorama da aula semi-presencial: desafios, vantagens e dificuldades
Panorama da aula semi-presencial: desafios, vantagens e dificuldadesReuel Lopes
 
[PROFOCO] Slideshare
[PROFOCO] Slideshare[PROFOCO] Slideshare
[PROFOCO] SlideshareReuel Lopes
 
Trabalhando na Plataforma EVA
Trabalhando na Plataforma EVATrabalhando na Plataforma EVA
Trabalhando na Plataforma EVAReuel Lopes
 
GLOBALIZAÇÃO E IN-FORMAÇÃO
GLOBALIZAÇÃO E IN-FORMAÇÃOGLOBALIZAÇÃO E IN-FORMAÇÃO
GLOBALIZAÇÃO E IN-FORMAÇÃOReuel Lopes
 
Formação de Professores - EVA 2015
Formação de Professores - EVA 2015Formação de Professores - EVA 2015
Formação de Professores - EVA 2015Reuel Lopes
 
EVA - Espaço Virtual de Aprendizagem
EVA - Espaço Virtual de AprendizagemEVA - Espaço Virtual de Aprendizagem
EVA - Espaço Virtual de AprendizagemReuel Lopes
 
Palestra sobre android
Palestra sobre androidPalestra sobre android
Palestra sobre androidReuel Lopes
 
Design para a internet - projetando a experêincia perfeita 1º bim
Design para a internet - projetando a experêincia perfeita 1º bimDesign para a internet - projetando a experêincia perfeita 1º bim
Design para a internet - projetando a experêincia perfeita 1º bimReuel Lopes
 
Pesquisas em usabilidade de interfaces e interação - 2 bim
Pesquisas em usabilidade de interfaces e interação -  2 bimPesquisas em usabilidade de interfaces e interação -  2 bim
Pesquisas em usabilidade de interfaces e interação - 2 bimReuel Lopes
 
Pesquisas em usabilidade de interfaces e interação - 1 bim
Pesquisas em usabilidade de interfaces e interação -  1 bimPesquisas em usabilidade de interfaces e interação -  1 bim
Pesquisas em usabilidade de interfaces e interação - 1 bimReuel Lopes
 
Inserção da pesquisa no contexto de ihc - 1 bim
Inserção da pesquisa no contexto de ihc -  1 bimInserção da pesquisa no contexto de ihc -  1 bim
Inserção da pesquisa no contexto de ihc - 1 bimReuel Lopes
 
Avaliação heuristica - 1 bim
Avaliação heuristica - 1 bimAvaliação heuristica - 1 bim
Avaliação heuristica - 1 bimReuel Lopes
 
Arquitetura de informação - Case G1
Arquitetura de informação - Case G1Arquitetura de informação - Case G1
Arquitetura de informação - Case G1Reuel Lopes
 
Project mobility net_beans
Project mobility net_beansProject mobility net_beans
Project mobility net_beansReuel Lopes
 
Cases Hipermídia 2010
Cases Hipermídia 2010Cases Hipermídia 2010
Cases Hipermídia 2010Reuel Lopes
 
08 carregando textos de um arquivo txt - Flash 8
08 carregando textos de um arquivo txt - Flash 808 carregando textos de um arquivo txt - Flash 8
08 carregando textos de um arquivo txt - Flash 8Reuel Lopes
 
07 formulários com validação - Flash 8
07 formulários com validação - Flash 807 formulários com validação - Flash 8
07 formulários com validação - Flash 8Reuel Lopes
 

Mais de Reuel Lopes (20)

Trabalhando com EVA 2017
Trabalhando com EVA 2017Trabalhando com EVA 2017
Trabalhando com EVA 2017
 
Panorama da aula semi-presencial: desafios, vantagens e dificuldades
Panorama da aula semi-presencial: desafios, vantagens e dificuldadesPanorama da aula semi-presencial: desafios, vantagens e dificuldades
Panorama da aula semi-presencial: desafios, vantagens e dificuldades
 
[PROFOCO] Slideshare
[PROFOCO] Slideshare[PROFOCO] Slideshare
[PROFOCO] Slideshare
 
Trabalhando na Plataforma EVA
Trabalhando na Plataforma EVATrabalhando na Plataforma EVA
Trabalhando na Plataforma EVA
 
GLOBALIZAÇÃO E IN-FORMAÇÃO
GLOBALIZAÇÃO E IN-FORMAÇÃOGLOBALIZAÇÃO E IN-FORMAÇÃO
GLOBALIZAÇÃO E IN-FORMAÇÃO
 
Formação de Professores - EVA 2015
Formação de Professores - EVA 2015Formação de Professores - EVA 2015
Formação de Professores - EVA 2015
 
EVA - Espaço Virtual de Aprendizagem
EVA - Espaço Virtual de AprendizagemEVA - Espaço Virtual de Aprendizagem
EVA - Espaço Virtual de Aprendizagem
 
Palestra sobre android
Palestra sobre androidPalestra sobre android
Palestra sobre android
 
O futuro da web
O futuro da webO futuro da web
O futuro da web
 
Design para a internet - projetando a experêincia perfeita 1º bim
Design para a internet - projetando a experêincia perfeita 1º bimDesign para a internet - projetando a experêincia perfeita 1º bim
Design para a internet - projetando a experêincia perfeita 1º bim
 
Pesquisas em usabilidade de interfaces e interação - 2 bim
Pesquisas em usabilidade de interfaces e interação -  2 bimPesquisas em usabilidade de interfaces e interação -  2 bim
Pesquisas em usabilidade de interfaces e interação - 2 bim
 
Pesquisas em usabilidade de interfaces e interação - 1 bim
Pesquisas em usabilidade de interfaces e interação -  1 bimPesquisas em usabilidade de interfaces e interação -  1 bim
Pesquisas em usabilidade de interfaces e interação - 1 bim
 
Inserção da pesquisa no contexto de ihc - 1 bim
Inserção da pesquisa no contexto de ihc -  1 bimInserção da pesquisa no contexto de ihc -  1 bim
Inserção da pesquisa no contexto de ihc - 1 bim
 
Avaliação heuristica - 1 bim
Avaliação heuristica - 1 bimAvaliação heuristica - 1 bim
Avaliação heuristica - 1 bim
 
Arquitetura de informação - Case G1
Arquitetura de informação - Case G1Arquitetura de informação - Case G1
Arquitetura de informação - Case G1
 
Project mobility net_beans
Project mobility net_beansProject mobility net_beans
Project mobility net_beans
 
Netbeans slides
Netbeans slidesNetbeans slides
Netbeans slides
 
Cases Hipermídia 2010
Cases Hipermídia 2010Cases Hipermídia 2010
Cases Hipermídia 2010
 
08 carregando textos de um arquivo txt - Flash 8
08 carregando textos de um arquivo txt - Flash 808 carregando textos de um arquivo txt - Flash 8
08 carregando textos de um arquivo txt - Flash 8
 
07 formulários com validação - Flash 8
07 formulários com validação - Flash 807 formulários com validação - Flash 8
07 formulários com validação - Flash 8
 

Apostila complementar java móvel

  • 1. GOJAVA   Java  Móvel   Introdução  ao  Java  ME  e  WTK  3.0   Marcelo  Quinta   Ins3tuto  de  Informá3ca  -­‐  UFG  
  • 2. Criando  aplicações  para  celulares  u3lizando  Java  ME   Apresentação   •  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:   JavaEE   JavaME   JavaFX   Teste  de  So@ware   Usabilidade   2  
  • 3. Criando  aplicações  para  celulares  u3lizando  Java  ME   Agenda   •   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;   3  
  • 4. Criando  aplicações  para  celulares  u3lizando  Java  ME   Agenda   •   Introdução  à  API  MIDP  2.0;   •   Noções  de  interface  gráfica;   •   Tratamento  de  eventos;   •   Persistência;   •   Comunicação  Web;   •   LWUIT.   4  
  • 5. Criando  aplicações  para  celulares  u3lizando  Java  ME   Plataformas  Java   Java  SE   Java  EE   Java  ME   JDK  6   SDK  5   CLDC  1.1   CDC    1.1   5  
  • 6. Criando  aplicações  para  celulares  u3lizando  Java  ME   Foco  do  Java  ME   6  
  • 7. Criando  aplicações  para  celulares  u3lizando  Java  ME   O  que  se  pode  fazer  com  Java  ME   7  
  • 8. Criando  aplicações  para  celulares  u3lizando  Java  ME   O  que  pode-­‐se  fazer  sabendo  Java  ME   Programar   para  TV  Digital   8  
  • 9. Criando  aplicações  para  celulares  u3lizando  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  
  • 10. Criando  aplicações  para  celulares  u3lizando  Java  ME   Arquitetura  do  Java  ME   10  
  • 11. Criando  aplicações  para  celulares  u3lizando  Java  ME   Arquitetura  do  Java  ME   11  
  • 12. Criando  aplicações  para  celulares  u3lizando  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  
  • 13. Criando  aplicações  para  celulares  u3lizando  Java  ME   Arquitetura  do  Java  ME   13  
  • 14. Criando  aplicações  para  celulares  u3lizando  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  
  • 15. Criando  aplicações  para  celulares  u3lizando  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  
  • 16. Criando  aplicações  para  celulares  u3lizando  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  
  • 17. Criando  aplicações  para  celulares  u3lizando  Java  ME   Pensando  em  funcionalidades   17  
  • 18. Criando  aplicações  para  celulares  u3lizando  Java  ME   Arquitetura  do  Java  ME   18  
  • 19. Criando  aplicações  para  celulares  u3lizando  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  
  • 20. Criando  aplicações  para  celulares  u3lizando  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  
  • 21. Criando  aplicações  para  celulares  u3lizando  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  
  • 22. Criando  aplicações  para  celulares  u3lizando  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  
  • 23. Criando  aplicações  para  celulares  u3lizando  Java  ME   MIDP  2.0   23  
  • 24. Arquitetura  do  Java  ME   24  
  • 25. Criando  aplicações  para  celulares  u3lizando  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  
  • 26. Criando  aplicações  para  celulares  u3lizando  Java  ME   Arquitetura  do  Java  ME   26  
  • 27. Criando  aplicações  para  celulares  u3lizando  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  
  • 28. Criando  aplicações  para  celulares  u3lizando  Java  ME   PráPca   28  
  • 29. Criando  aplicações  para  celulares  u3lizando  Java  ME   Wireless  Toolkit  3.0   GRATUITO   •  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  
  • 30. Criando  aplicações  para  celulares  u3lizando  Java  ME   NetBeans  6.9   GRATUITO   •  A  versão  Java  e  completa  vem  com  Mobility   Pack:   –  WTK  3.0;   –  Adicionais  para  depuração  /  produ3vidade;   30  
  • 31. Criando  aplicações  para  celulares  u3lizando  Java  ME   Design  Visual   Configurações   Fluxo  de  Aplicação   31   Paleta   Auto-­‐Complete  
  • 32. Criando  aplicações  para  celulares  u3lizando  Java  ME   Como  funciona  uma  aplicação  Java   ME?     •  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.   32  
  • 33. Criando  aplicações  para  celulares  u3lizando  Java  ME   MIDlet   •   int  checkPermission(String  permission);     • void  destroyApp(boolean  uncondiPonal);   •   String  getAppProperty(String  key);   • void  no3fyDestroyed()  ;   •   boolean  plawormRequest(String  URL);   • void  no3fyPaused()  ;   •   void  pauseApp()  ;   •   void  resumeRequest();   • void  startApp();   33  
  • 34. Criando  aplicações  para  celulares  u3lizando  Java  ME   Como  funciona  uma  aplicação  Java  ME?   APLICACAO.JAR   Tela  Atual   Entrada  de  comandos   Iniciar   Pausar   Terminar   34  
  • 35. Criando  aplicações  para  celulares  u3lizando  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    }    
  • 36. Criando  aplicações  para  celulares  u3lizando  Java  ME   Executando  a  aplicação   •  Pode-­‐se  usar  o  WTK  3.0;   •  Outros  emuladores   –  Nokia   –  Motorola;   –  ...;   36  
  • 37. SEMINFO  2009  –  INTRODUÇÃO  AO  J2ME  E  WTK  3.0   Instalando  a  Aplicação...   •  Arquivo  “.jar”  da  aplicação   –  Classes;   –  Recursos;   –  Manifest;   –  Bibliotecas  adicionais   •  Arquivo  “.jad”  descritor  da  aplicação;   37  
  • 38. Criando  aplicações  para  celulares  u3lizando  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  
  • 39. Criando  aplicações  para  celulares  u3lizando  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  
  • 40. Criando  aplicações  para  celulares  u3lizando  Java  ME   API  MIDP  2.0   •  Sintaxe  é  extremamente  parecida  com  Java  SE   e  tem  API  com  configuração  muito  parecida;     Ciclo  de  vida   Fluxo  de  dados   Interface  gráfica   Persistência   Core   UPlidades   Conexão  Web   Segurança   Mídia   40  
  • 41. Criando  aplicações  para  celulares  u3lizando  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!!!  
  • 42. Criando  aplicações  para  celulares  u3lizando  Java  ME   Voltando  ao  MIDlet...   •   int  checkPermission(String  permission);     • void  destroyApp(boolean  uncondi3onal);   •   String  getAppProperty(String  key);   • void  no3fyDestroyed()  ;   •   boolean  pla^ormRequest(String  URL);   • void  no3fyPaused()  ;   •   void  pauseApp()  ;   •   void  resumeRequest();   • void  startApp();   42  
  • 43. Criando  aplicações  para  celulares  u3lizando  Java  ME   Mãos  à  obra     hup://exemplos.googlecode.com   Referência   hup://java.sun.com/javame/reference/apis/jsr118/   43  
  • 44. Criando  aplicações  para  celulares  u3lizando  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  
  • 45. Criando  aplicações  para  celulares  u3lizando  Java  ME   Interface  Gráfica   Screen   Canvas   45  
  • 46. Criando  aplicações  para  celulares  u3lizando  Java  ME   Record  Management  System   j2mesalsa.com   46  
  • 47. Criando  aplicações  para  celulares  u3lizando  Java  ME   Conexão   47  
  • 48. Criando  aplicações  para  celulares  u3lizando  Java  ME   LWUIT   hups://lwuit.dev.java.net/   48  
  • 49. Criando  aplicações  para  celulares  u3lizando  Java  ME   JavaFx   hup://www.javafx.com/pt-­‐br/   49  
  • 50. Criando  aplicações  para  celulares  u3lizando  Java  ME   Comunidades   www.gojava.org   50  
  • 51. Criando  aplicações  para  celulares  u3lizando  Java  ME   Comunidades   51  
  • 52. Criando  aplicações  para  celulares  u3lizando  Java  ME   Se  não  gostou  do  J2ME...   Programar  para  Windows  Mobile  é   uma  alterna3va.   O  Visual  Studio  ajuda  bastante.   Acesse  www.devgoias.net   52  
  • 53. Criando  aplicações  para  celulares  u3lizando  Java  ME   Se  você  não  gosta  do  Bill  Gates...   ...  e  gosta  do  Google.   53  
  • 54. Criando  aplicações  para  celulares  u3lizando  Java  ME   Mas  se  você  gosta  do  Steve  Jobs   iPhone!!   54  
  • 55. Criando  aplicações  para  celulares  u3lizando  Java  ME   FIM   marceloricardoquinta@gmail.com   55