JavaME

Post on 18-Nov-2014

2.897 views 0 download

description

 

Transcript of JavaME

ERISVALDO GADELHA SARAIVA JÚ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

Objetivo ROTEIRO

Desenvolver aplicações para

dispositivos móveis

considerando fatores como

portabilidade, uso de

memória e processamento.

A plataforma J2ME

Exemplos Práticos

Interface X Portabilidade

Próximos Passos

Web / Pacotes Opcionais

Visão geral da plataforma Java

[SUN, 2008]

Configurações do JavaME

CLDC 1.0 / CLDC 1.1

Perfis do CLDC

MIDP 2 .1 . . . MIDP 3.0*

•Trata-se da especificaçãooriginal (JSR 37);

•Provê o núcleo necessáriopara aplicações móveis,como componentes básicosde interface e conexão derede.

• Revisão da especificaçãooriginal (JSR 118);

•Componentes deinterface aprimorados,HTTPS, suporte a jogos eaplicações multimídia.

O que vamos usar

Possíveis pacotes opcionais

• É o "padrão de

mercado" atual.

• Mobile Media API(MMAPI) – JSR 135;

•Wireless MessagingAPI (WMA) – JSR 205;

•File ConnectionOptional Package(FCOP) – JSR 75.

Ciclo de vida de uma aplicação JavaME

[FONSECA, 2005]

Estrutura básica de classes

[FONSECA, 2005]

Estrutura expandida de classes

MIDP 2.0 ou superiorComum a todas as versões do MIDP

Expandindo mais ainda...

Muita hora nessa calma...

•Apesar da grandequantidade de classes, elassão de muito fácil uso. Emgeral, basta apenas chamaro construtor da classe, setaralguns métodos e depoisinformar ao Display paramostrá-la na tela;

•Os Commands sãoessenciais. Você podeadicionar Commands emqualquer tela. Eles regem anavegação da sua aplicação.Basta implementar ométodo commandAction()da interfaceCommandListener.

Persistência de Dados

•Através do RMS (RecordManagement Store), umesquema dearmazenamento bastantesimples do JavaME;

•Uma aplicação podeacessar múltiplos RecordStores e cada um poderter N registros.

• Possui recursosinteressantes, comonavegar pelos registrosatravés de umRecordEnumeration,filtrando-os da maneiraque achar conveniente(RecordFilter) eordenando-os tambémcomo quiser(RecordComparator).

Persistência de Dados

Forma de armazenamento dos Record Stores

Tecnologias utilizadas

•Game Builder(Não)

• Mobility

•Visual Mobile

Designer (Não, é a

baba é?)

NetBeans 6.5 (Full ou 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 oGame Builder.

Emuladores

Sun Java Wireless Toolkit (JWT)

MotoDEV SDK

Nokia S40/S60 SDK

Emuladores

Sun Java Wireless Toolkit (JWT)

MotoDEV SDK

Nokia S40/S60 SDK

Exemplo 1:Olá Mundo!

Exemplo 2: FuelMIDlet (Parte 1/3)

Exemplo 2: FuelMIDlet (Parte 2/3)

Exemplo 2: FuelMIDlet (Parte 3/3)

Exemplo 3: PhoneBookMIDlet (Parte 1/3)

Exemplo 3: PhoneBookMIDlet(Parte 2/3)

Exemplo 3: PhoneBookMIDlet (Parte 3/3)

Mas esses exemplos estão muito feios...

•Vamosmelhorá-los!

•SplashScreen herdando deCanvas;

•Uso deRecordFilter/RecordComparator noExemplo 3;

•Trocar os componentes de alto nível(Alert, Form, List) por telas de baixonível herdando deCanvas.

Exemplo 3: NameComparator

Exemplo 3: NameFilter

Principais classes do JavaME

MIDP 2.0 ou superiorComum a todas as versões do MIDP

ClasseCanvas

•Classe abstrata que deveser especializada para aconfecção de uma tela embaixo nível;

•As classes que herdamde Canvasobrigatoriamente devemimplementar o métodopaint(), responsável pordesenhar a tela;

•As classes queherdam de Canvaspodem implementaro métodokeyPressed(), queverifica se umadeterminada tecla foipressionada.

ClasseCanvas

•O método paint()recebe comoargumento umainstância de Graphics,com a qual é possíveldesenhar na tela;

•Graphics possuidiversos métodospara desenhar natela, tais como:drawImage(),drawRect(), fillRect(),drawString(), etc.

ClasseCanvas (Imagens x Portabilidade)

•A altura e a largurada tela podem serobtidas pelosmétodos getHeight()e getWidth(),respectivamente;

•Todos os desenhos

devem ser sempre

posicionados de acordo

com as dimensões de

tela, permitindo a

portabilidade da

aplicação.

ClasseCanvas (Teclas x Portabilidade)

•Qualquer tecla que ousuário pressionarpode ser tratada pelométodokeyPressed(intkeyCode);

•As "Soft Keys" nãopossuem constantesdefinidas em Canvas, ouseja, o keyCode varia deaparelho para aparelho.Com isso, o uso deCommands é recomendado,visando evitar-se problemasde portabilidade.

Exemplo de Splash Screen com Canvas

Constantes de teclas emCanvas

GameCanvas x Canvas

•O MIDP 2.0 apresentaa classe GameCanvas,que herda de Canvas epossui algumasvantagens em relação aanterior, sendobastante útil parajogos;

• Em GameCanvas, nãohá necessidade deimplementar o métodopaint(). Graphics éobtido comgetGraphics() e oestado das teclas comgetKeyStates().

Constantes de teclas emGameCanvas

Integração com a WEB

• J2ME é capaz de realizarrequisições HTTP, do tipo GET ouPOST, bem como tratar suasrespostas. Isso permite:

• Envio de conteúdo parauma aplicação PhP, RoRou umServlet;

• A aplicação Web podeintegrar o conteúdo aum banco de dados;

• O cliente JavaME podemostrar a resposta darequisição.

Pacotes Opcionais•FileConnection and PIMAPI (JSR 75);

•JavaAPIs for Bluetooth 1.1 (JSR 82);

•Mobile Media API 1.1 (JSR 135);

•LocationAPI for J2ME 1.1 (JSR 179);

•Mobile 3D Graphics API for J2ME 1.1

(JSR 184);

•Wireless MessagingAPI 2.0 (JSR 205);

• Advanced Multimedia

Supplements 1.1 (JSR

234);

• Mobile Sensor API (JSR

256);

• Entre outros...