Minicurso Java Me

Preview:

DESCRIPTION

Slides do minicurso Java ME.

Citation preview

Java  Móvel  

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

Introdução  ao  Java  ME  e  WTK  3.0  

GOJAVA  

•  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  

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  

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  

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  

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  

8  

Programar  para  TV  Digital  

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  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Arquitetura  do  Java  ME  

24  

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

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  Auto-­‐Complete  Paleta  

Design  Visual   Configurações  

Fluxo  de  Aplicação  

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

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  

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  

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  

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

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;    

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  

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...  

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  

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  

45  

Screen   Canvas  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Record  Management  System  

46  j2mesalsa.com  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Conexão  

47  

Criando  aplicações  para  celulares  u3lizando  Java  ME  

LWUIT  

48  

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

Criando  aplicações  para  celulares  u3lizando  Java  ME  

JavaFx  

49  

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

Criando  aplicações  para  celulares  u3lizando  Java  ME  

Comunidades  

50  

www.gojava.org  

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  

Criando  aplicações  para  celulares  u3lizando  Java  ME