Aplicações Móveis

com J2ME
Claudio Montenegro
claudio.montenegro@datasul.com.br
GU Java SUCESU-SC

Fabricação de
Microprocessadores
- Intel: 100 milhões/ANO
- Motorola: 35 milhões/MÊS

Popularização de
Dispositivos
Microprocessados e
Programáveis

Tendência mundial de utilização de
Java como a plataforma de
desenvolvimento de aplicações
para tais dispositos...

Porque tanto interesse em Aplicações Móveis? .Mercado de US$12. fonte: Gartner Group .Mercado de US$ 6. fonte: Yankee .0 bilhões em 'mobile games' em 2004.9 bilhões em aplicações 'mobile office' em 2005.

.Porque Java para pequenos dispositivos? ...Multithreads .Orientação a Objetos .Networking ..Independência de Plataforma .Segurança .Tratamento de Exceções .. . e o mais importante. PADRONIZAÇÃO ..

fonte: Giga.78 % dos executivos vêem a tecnologia Java como a melhor plataforma para Web Services. fonte: IBM Plataforma: .Porque Java para pequenos dispositivos? Padronização: . Computerworld .A tecnologia Java está em 100 % das listas de padrões da empresas 'Fortune 500'.

53 operadoras de telefonia celular no mundo já fazem 'deploy' de aplicações J2ME.Serão 841 milhões de celulares Java em 2004 e 1.Já existem mais de 150 dispositivos 'Java Enabled' de 22 fabricantes. . Mais 11 estão em testes. .Java é a plataforma líder em aplicações móveis.1 bilhão em 2006.Dispositivos 'Java Enabled' . fonte: ARC Group .

A Plataforma Java 2 .

A Plataforma Java Java 2 Runtime Environment Deployment Technologies User Interface Toolkits Integration APIs Core APIs Java Virtual Machine Platforms .

Como colocar Java em pequenos dispositivos? .

Como colocar Java em pequenos dispositivos? .

Como colocar Java em pequenos dispositivos? Subset da API  do J2SE + API Complementar  + JVM Adequada Resposta: Criando-se um JRE apropriado para as capacidades do dispositivo. .

Mais de 660 empresas e participantes individuais. JCP é maneira através da qual a plataforma Java evolui. focada na padronização da plataforma Java. . .www.org .Organização aberta de abrangência mundial.jcp.

computadores de bordo e muitos outros. TVs. celulares. .A Plataforma J2ME Java 2 Micro Edition J2ME define um padrão para colocar Java dentro de dispositivos que não possuem o poder de processamento de ambientes J2SE completos. Dispositivos como PDAs. eletrodomésticos.

Com J2ME é possível construir ambientes de execução Java (runtime environments) muito pequenos.Possui arquitetura bastante modularizada. .J2ME . menores que 200 Kbytes. .

Atualmente existem 52 JSRs (Java Specification Request) relacionadas com J2ME Algumas delas: JSR 66 – RMI Optional Package JSR 120 – Wireless Messaging API JSR 134 – Java Game Profile JSR 135 – Mobile Media API JSR 82 – Java APIs for Bluetooth JSR 184 – Mobile 3D Graphics API .

Algumas das Empresas que Suportam J2ME .

Arquitetura Modular .

Define a mínima plataforma Java para um conjunto de dispositivos comuns. .Suporta um ou mais 'profile' .Definido através do Java Comunity Process(JCP) .Configurations .

Configurações Atuais .1 – JSR 218 CLDC 1.1 – JSR 139 .0 – JSR 30 CLDC 1.Connected Device Configuration (CDC) . Computadores de Bordo .Connected Limited Device Configuration (CLDC) . Pagers CDC 1. Web Phones . Celulares .0 – JSR 36 . PDAs CDC 1. Network-capable devices .

Relação entre as Configurações J2SE CDC CLDC                          .

Profiles

- Complementam a Configuração para
prover capacidades para uma família
específica de dispositivos ou segmento
da indústria.
- Provê flexibilidade e optimiza portabilidade.
- Frequentemente provê UI, tratamento de
evento e mecanismos de persistência.

CLDC + MIDP

Pacotes do CLDC
- java.lang
- java.io
- java.util
- javax.microedition.io

lcd .microedition.midlet .microedition.java.java.javax.microedition.java.javax.MIDP .rms MIDlet – aplicação móvel desenvolvida para MIDP .Mobile Information Device Profile Pacotes: .io .javax.microedition.io .lang .javax.util .

Itens de tela customizados (GUI) .0 – JSR 118 Algumas Melhorias no MIDP 2.incoming network connections” .Game API .“Push Registry .MIDP 1.HTTPS .0 .Multimídia: suporte para áudio/vídeo .0 – JSR 37 MIDP 2.

.jar ..jad arquivo...jar arquivo.Instalação de MIDlets http://www..jar arquivo../arquivo.jad Web Server arquivo.jad http://www./arquivo...

Educação .Empresarial .Entretenimento .Utilitários .Internet .Produtividade .e-commerce .Exemplos de Aplicações Móveis com J2ME .

Entretenimento ChessBuddy Commics Spruce GO Metris Foto Fun PopStar .

Entretenimento Dragon Island Racing Fever Prince of Persia Desailly Pro Soccer .

.

.

Internet jBrowser e-mail Viewer MiMessager Azure .

ToDo Periodic Table .Produtividade/Educação Micro Reader Jtask .

Utilitários QuickShop Fly Cam CroWeather First Aid Guide .

http://mpowers.e-commerce Piranha Pricecheck .net/piranha .

e-commerce .

e-commerce .

e-commerce .

e-commerce .

e-commerce .

e-commerce .

e-commerce .

e-commerce .

Empresariais Datasul CRM SFA .

Empresariais Datasul CRM SFA .

www.www.www.microjava.org .www.handango.com .com .zgroup-mobile.Onde obter MIDLETS: .com .midlet.

.

.

com .site do fabricante .java.sun.Onde obter informações sobre aparelhos com suporte a J2ME .www.jbenchmark.com .wireless.

.

.

Ferramentas para o Desenvolvimento de Aplicações J2ME/MIDP Nokia Developers Suite for J2ME Motorola SDK for J2ME .

com/products/j2mewtoolkit/ .J2ME Wireless Toolkit http://java.sun.

WebSphere Studio Device Developer .Sun ONE Studio.JDeveloper J2ME Extension . Mobile Edition .IDEs para o Desenvolvimento de Aplicações J2ME/MIDP .Simplicity for Java .JBuilder MobileSet .

Etapas no Desenvolvimento de uma Aplicação MIDP Código Fonte (arquivos .jar (.jad .png) Arquivo .class) jar Arquivo .class + .class) preverify Binários Préverificados (arquivos .java) javac Binários (arquivos .

Exemplo de Código package exemplo. import javax.midlet. Command cmdExit.setCommandListener(this). "0").append(strTotal).SCREEN. StringItem strTotal.addCommand(cmdReset). public class Contador extends MIDlet implements CommandListener { private private private private private private Command cmdAdd.addCommand(cmdExit). 1). frm. public Contador() { // Cria e inicializa a tela principal frm = new Form("Contador"). int counter. 0).*. cmdReset = new Command("Reset".addCommand(cmdAdd). } . Command.microedition. 0). frm. frm. Command. Form frm.microedition. strTotal = new StringItem("Total: ". frm.lcdui. cmdExit = new Command("Sair". import javax.SCREEN. // Cria e adiciona os Commands(botoes) cmdAdd = new Command("+".*. Command. frm.SCREEN. Command cmdReset.

setText(String. Displayable disp) { // Incrementa o contador if (cmd == cmdAdd) { strTotal. } } } . // Sai da aplicacao } else { destroyApp(false). strTotal. notifyDestroyed().) public void startApp() { Display. } public void pauseApp() { } public void destroyApp(boolean b) { } public void commandAction(Command cmd.valueOf(++counter)). // Reseta o contador } else if (cmd == cmdReset) { counter = 0.Exemplo de Código (cont.getDisplay(this).setText("0").setCurrent(frm).

/images/logo.0 MIDlet-1: Contador.com .jar MIDlet-Jar-Size: 2509 MIDlet-Version: 1.png .mycompany.Exemplo de Arquivo JAD MIDlet-Name: Contador MIDlet-Jar-URL: contador. exemplo.Contador MIDlet-Description: Exemplo de MIDlet MIDlet-Vendor: My Company MIDlet-Info-URL: http://www.

MIDlets em Palm OS MIDP for PalmOS http://java.palm.sun.com Palm Tungsten Virá de Fábrica .com/products/midp4palm/ Palm OS > 3.5 WebSphere Micro Environment Parceria Palm e IBM http://pluggedin.

y HTTP .y HTTP x.Exemplo de Celular como Ferramenta de Controle Remoto Internet App Server Servlet x.

br .motocoder.sun. Micro Edition http://java.com/ Micro Java Network http://www.com Java(tm) 2 Platform Micro Edition.com.microjava.com/products/j2mewtoolkit/ www. Wireless Toolkit http://java.forum.sun.br www.nokia.com/j2me Wireless Developer http://wireless.sun.java.Referências Java(tm) 2 Platform.com.