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