SlideShare a Scribd company logo
1 of 55
Download to read offline
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	
  

More Related Content

Similar to Minicurso Java Me

Apostila complementar java móvel
Apostila complementar  java móvelApostila complementar  java móvel
Apostila complementar java móvelReuel Lopes
 
Programação para celular em JAVA - Leandro Stachlewski
Programação para celular em JAVA - Leandro StachlewskiProgramação para celular em JAVA - Leandro Stachlewski
Programação para celular em JAVA - Leandro StachlewskiTchelinux
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveisigorpimentel
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 
Apostila Java
Apostila JavaApostila Java
Apostila Javadeilton
 
Apostila Java
Apostila JavaApostila Java
Apostila Javadeilton
 
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
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesWilliam S. Rodriguez
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Java EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeansReuel Lopes
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryValdir Junior
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Appliedmarcelobeckmann
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
la 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gapla 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gapRoberson Alves
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfJoberthSilva
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfJoberthSilva
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileCícero Moura
 

Similar to Minicurso Java Me (20)

Apostila complementar java móvel
Apostila complementar  java móvelApostila complementar  java móvel
Apostila complementar java móvel
 
Programação para celular em JAVA - Leandro Stachlewski
Programação para celular em JAVA - Leandro StachlewskiProgramação para celular em JAVA - Leandro Stachlewski
Programação para celular em JAVA - Leandro Stachlewski
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveis
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
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
 
Java
JavaJava
Java
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Java EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeans
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerry
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Applied
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
la 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gapla 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gap
 
Aula 1 1
Aula 1 1Aula 1 1
Aula 1 1
 
Java -aula_01
Java  -aula_01Java  -aula_01
Java -aula_01
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento Mobile
 

More from Marcelo Quinta

O que há de novo nas Android Support Libraries
O que há de novo nas Android Support LibrariesO que há de novo nas Android Support Libraries
O que há de novo nas Android Support LibrariesMarcelo Quinta
 
Dicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiroDicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiroMarcelo Quinta
 
Bibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóBibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóMarcelo Quinta
 
Arquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextosArquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextosMarcelo Quinta
 
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidConhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidMarcelo Quinta
 
Boas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelBoas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelMarcelo Quinta
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyMarcelo Quinta
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC FlorianópolisMarcelo Quinta
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robóticaMarcelo Quinta
 
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
 

More from Marcelo Quinta (16)

O que há de novo nas Android Support Libraries
O que há de novo nas Android Support LibrariesO que há de novo nas Android Support Libraries
O que há de novo nas Android Support Libraries
 
Dicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiroDicas de otimização e planejamento de apps para o mercado brasileiro
Dicas de otimização e planejamento de apps para o mercado brasileiro
 
Bibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vóBibliotecas Google para iOS: Fanboy é a sua vó
Bibliotecas Google para iOS: Fanboy é a sua vó
 
Arquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextosArquitetura móvel para diferentes contextos
Arquitetura móvel para diferentes contextos
 
Conhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para AndroidConhecendo e utilizando Beacons e a Nearby API para Android
Conhecendo e utilizando Beacons e a Nearby API para Android
 
Boas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento MóvelBoas práticas de desenvolvimento Móvel
Boas práticas de desenvolvimento Móvel
 
iOS libraries
iOS librariesiOS libraries
iOS libraries
 
Android libraries
Android librariesAndroid libraries
Android libraries
 
Android bluetooth
Android bluetoothAndroid bluetooth
Android bluetooth
 
Mobile
MobileMobile
Mobile
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some money
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC Florianópolis
 
Jquery Mobile
Jquery MobileJquery Mobile
Jquery Mobile
 
Introdução ao Arduino e robótica
Introdução ao Arduino e robóticaIntrodução ao Arduino e robótica
Introdução ao Arduino e robótica
 
Ria e Java FX
Ria e Java FXRia e Java FX
Ria e Java FX
 
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
 

Minicurso Java Me

  • 1. Java  Móvel   Marcelo  Quinta   Ins3tuto  de  Informá3ca  -­‐  UFG   Introdução  ao  Java  ME  e  WTK  3.0   GOJAVA  
  • 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. 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. 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   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. Foco  do  Java  ME   6   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 7. O  que  se  pode  fazer  com  Java  ME   7   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 8. O  que  pode-­‐se  fazer  sabendo  Java  ME   8   Programar   para  TV  Digital   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. Arquitetura  do  Java  ME   10   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 11. Arquitetura  do  Java  ME   11   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. Arquitetura  do  Java  ME   13   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. 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. 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. Pensando  em  funcionalidades   17   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 18. Arquitetura  do  Java  ME   18   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. 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. 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. 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. MIDP  2.0   23   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 24. Arquitetura  do  Java  ME   24  
  • 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. Arquitetura  do  Java  ME   26   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. PráPca   28   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. 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   Auto-­‐Complete   Paleta   Design  Visual   Configurações   Fluxo  de  Aplicação   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Interface  Gráfica   45   Screen   Canvas   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 46. Record  Management  System   46   j2mesalsa.com   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 47. Conexão   47   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 48. LWUIT   48   hups://lwuit.dev.java.net/   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 49. JavaFx   49   hup://www.javafx.com/pt-­‐br/   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 50. Comunidades   50   www.gojava.org   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 51. Comunidades   51   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 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. Se  você  não  gosta  do  Bill  Gates...   ...  e  gosta  do  Google.   53   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 54. Mas  se  você  gosta  do  Steve  Jobs   iPhone!!   54   Criando  aplicações  para  celulares  u3lizando  Java  ME  
  • 55. FIM   marceloricardoquinta@gmail.com   55   Criando  aplicações  para  celulares  u3lizando  Java  ME