Este documento fornece uma visão geral da plataforma Java ME, descrevendo suas principais classes e componentes, como Canvas e GameCanvas, além de exemplos práticos de desenvolvimento de aplicativos móveis e integração com a web.
ERISVALDO GADELHA SARAIVAJÚNIOR
Tecnólogo em Sistemas para Internet pelo IFPB
Graduando em Ciência da Computação pela UFPB
Pesquisador do LabTEVE (Laboratório de Tecnologias para o Ensino Virtual e Estatística)
E-mail: erisvaldojunior@gmail.com
Site: http://erisvaldojunior.com
Twitter: http://twitter.com/erisvaldojunior
2.
Objetivo ROTEIRO
A plataforma J2ME
Desenvolver aplicações para
dispositivos móveis
considerando fatores como Exemplos Práticos
portabilidade, uso de
memória e processamento. Interface X Portabilidade
Web / Pacotes Opcionais
Próximos Passos
Perfis do CLDC
•Trata-se da especificação • Revisão da especificação
original (JSR 37); original (JSR 118);
•Provê o núcleo necessário
• Componentes de
para aplicações móveis,
como componentes básicos interface aprimorados,
de interface e conexão de HTTPS, suporte a jogos e
rede. aplicações multimídia.
MIDP 2 .1 . . . MIDP 3.0*
7.
O que vamosusar
Possíveis pacotes opcionais
• Mobile Media API
(MMAPI) – JSR 135;
• Wireless Messaging
API (WMA) – JSR 205;
•É o "padrão de
•File Connection
mercado" atual. Optional Package
(FCOP) – JSR 75.
8.
Ciclo de vidade uma aplicação JavaME
[FONSECA, 2005]
Muita hora nessacalma...
• Os Commands são
• Apesar da grande essenciais. Você pode
quantidade de classes, elas adicionar Commands em
são de muito fácil uso. Em qualquer tela. Eles regem a
geral, basta apenas chamar navegação da sua aplicação.
o construtor da classe, setar Basta implementar o
alguns métodos e depois método commandAction()
informar ao Display para da interface
mostrá-la na tela; CommandListener.
13.
Persistência de Dados
•Através do RMS (Record • Possui recursos
Management Store), um interessantes, como
esquema de navegar pelos registros
armazenamento bastante através de um
RecordEnumeration,
simples do JavaME;
filtrando-os da maneira
• Uma aplicação pode que achar conveniente
acessar múltiplos Record (RecordFilter) e
Stores e cada um poder ordenando-os também
ter N registros. como quiser
(RecordComparator).
Tecnologias utilizadas
• Mobility
•Game Builder(Não)
•Visual Mobile
Designer (Não, é a
baba é?)
17.
NetBeans 6.5 (Fullou Mobility)
•Suporte completo a plataforma
JavaME;
•Ferramenta RAD para navegação
de telas com o Visual Mobile
Designer;
•Ferramenta RAD para o design
dos jogos com o Game Builder.
18.
Emuladores
Sun Java Wireless
Toolkit (JWT)
Nokia S40/S60 SDK
MotoDEV SDK
19.
Emuladores
Sun Java Wireless
Toolkit (JWT)
Nokia S40/S60 SDK
MotoDEV SDK
Mas esses exemplosestão muito feios...
•Vamos melhorá-los!
•SplashScreen herdando de Canvas;
•Uso de
RecordFilter/RecordComparator no
Exemplo 3;
•Trocar os componentes de alto nível
(Alert, Form, List) por telas de baixo
nível herdando de Canvas.
ClasseCanvas
• Classe abstrataque deve • As classes que
ser especializada para a
confecção de uma tela em
herdam de Canvas
baixo nível; podem implementar
• As classes que herdam o método
de Canvas keyPressed(), que
obrigatoriamente devem
implementar o método
verifica se uma
paint(), responsável por determinada tecla foi
desenhar a tela; pressionada.
33.
ClasseCanvas
• Graphics possui
•O método paint()
diversos métodos
recebe como
para desenhar na
argumento uma
tela, tais como:
instância de Graphics,
drawImage(),
com a qual é possível
drawRect(), fillRect(),
desenhar na tela;
drawString(), etc.
34.
ClasseCanvas (Imagens xPortabilidade)
•Todos os desenhos
• A altura e a largura
da tela podem ser devem ser sempre
obtidas pelos posicionados de acordo
métodos getHeight() com as dimensões de
e getWidth(), tela, permitindo a
respectivamente; portabilidade da
aplicação.
35.
ClasseCanvas (Teclas xPortabilidade)
•As "Soft Keys" não
• Qualquer tecla que o possuem constantes
usuário pressionar definidas em Canvas, ou
seja, o keyCode varia de
pode ser tratada pelo aparelho para aparelho.
método Com isso, o uso de
Commands é recomendado,
keyPressed(int visando evitar-se problemas
keyCode); de portabilidade.
GameCanvas x Canvas
• Em GameCanvas, não
• O MIDP 2.0 apresenta
há necessidade de
a classe GameCanvas,
implementar o método
que herda de Canvas e
paint(). Graphics é
possui algumas
obtido com
vantagens em relação a
getGraphics() e o
anterior, sendo
estado das teclas com
bastante útil para
getKeyStates().
jogos;
Integração com aWEB
• J2ME é capaz de realizar
requisições HTTP, do tipo GET ou
POST, bem como tratar suas
respostas. Isso permite:
• Envio de conteúdo para
uma aplicação PhP, RoR
ou um Servlet;
• A aplicação Web pode
integrar o conteúdo a
um banco de dados;
• O cliente JavaME pode
mostrar a resposta da
requisição.
42.
Pacotes Opcionais
•FileConnection andPIM API (JSR 75);
•Java APIs for Bluetooth 1.1 (JSR 82);
•Mobile Media API 1.1 (JSR 135);
•Location API for J2ME 1.1 (JSR 179);
•Mobile 3D Graphics API for J2ME 1.1
(JSR 184);
•Wireless Messaging API 2.0 (JSR 205);
• Advanced Multimedia
Supplements 1.1 (JSR
234);
• Mobile Sensor API (JSR
256);
• Entre outros...