Fabricação de Microprocessadores
- Intel: 100 milhões/ANO
- Motorola: 35 milhões/MÊS
Popularização de DispositivosMicroprocessados e Programáveis
Tendência mundial de utilização de Java como a plataforma de desenvolvimento de aplicações para tais dispositos...
- Mercado de US$ 6.0 bilhões em 'mobile games' em 2004. fonte: Gartner Group
- Mercado de US$12,9 bilhões em aplicações 'mobile office' em 2005. fonte: Yankee
Porque tanto interesse em Aplicações Móveis?
Porque Java para pequenos dispositivos?
- Independência de Plataforma- Orientação a Objetos- Networking- Segurança- Tratamento de Exceções- Multithreads- ...- ... e o mais importante, PADRONIZAÇÃO
Porque Java para pequenos dispositivos?
Padronização:
- A tecnologia Java está em 100 % das listas de padrões da empresas 'Fortune 500'. fonte: IBM
Plataforma:
- 78 % dos executivos vêem a tecnologia Java como a melhor plataforma para Web Services. fonte: Giga, Computerworld
- Java é a plataforma líder em aplicações móveis, 53 operadoras de telefonia celular no mundo já fazem 'deploy' de aplicações J2ME. Mais 11 estão em testes.
- Já existem mais de 150 dispositivos 'Java Enabled' de 22 fabricantes.
- Serão 841 milhões de celulares Java em 2004 e 1.1 bilhão em 2006. fonte: ARC Group
Dispositivos 'Java Enabled'
A Plataforma Java 2
A Plataforma JavaJava 2 Runtime Environment
Platforms
Java Virtual Machine
Core APIs
Integration APIs
User Interface Toolkits
Deployment Technologies
Como colocar Java em pequenos dispositivos?
Como colocar Java em pequenos dispositivos?
Subset da API do J2SE
JVM Adequada
API Complementar
+
+
Resposta:
Criando-se um
JRE apropriado
para as capacidades
do dispositivo.
Como colocar Java em pequenos dispositivos?
www.jcp.org
- Organização aberta de abrangência mundial,
focada na padronização da plataforma Java.
- Mais de 660 empresas e participantes
individuais.
JCP é maneira através da qual
a plataforma Java evolui.
A Plataforma J2MEJava 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, celulares, TVs, eletrodomésticos, computadores de bordo e muitos outros.
- Com J2ME é possível construir ambientes de execução Java (runtime environments) muito pequenos, menores que 200 Kbytes.
- Possui arquitetura bastante modularizada.
J2ME
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
- Connected Device Configuration (CDC) . Web Phones . Computadores de Bordo . Network-capable devices
- Connected Limited Device Configuration (CLDC) . Celulares . PDAs . Pagers CDC 1.0 – JSR 36
CDC 1.1 – JSR 218CLDC 1.0 – JSR 30CLDC 1.1 – JSR 139
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
MIDP - Mobile Information Device Profile
Pacotes:- java.lang- java.io- java.util- javax.microedition.io- javax.microedition.lcd- javax.microedition.midlet- javax.microedition.rms
MIDlet – aplicação móvel desenvolvida para MIDP
MIDP 1.0 – JSR 37
MIDP 2.0 – JSR 118
Algumas Melhorias no MIDP 2.0
- HTTPS
- Multimídia: suporte para áudio/vídeo
- Itens de tela customizados (GUI)
- Game API
- “Push Registry - incoming network connections”
arquivo.jad
arquivo.jar
http://www...../arquivo.jad
arquivo.jad
http://www...../arquivo.jad
arquivo.jad
http://www...../arquivo.jar
arquivo.jar
Web Server
Instalação de MIDlets
Exemplos de Aplicações Móveis com J2ME
- Entretenimento
- Internet
- Educação
- Produtividade
- Utilitários
- e-commerce
- Empresarial
Entretenimento
ChessBuddy
Commics
Spruce GO Metris
Foto Fun PopStar
Dragon Island Prince of Persia
Desailly Pro Soccer
Entretenimento
Racing Fever
Internet
jBrowser e-mail Viewer
MiMessager Azure
Produtividade/Educação
Micro Reader Jtask - ToDo Periodic Table
Utilitários
QuickShop Fly Cam
CroWeather First Aid Guide
e-commerce
Piranha Pricecheck - http://mpowers.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
Onde obter MIDLETS:
- www.midlet.org
- www.microjava.com
- www.handango.com
- www.zgroup-mobile.com
Onde obter informações sobre aparelhos com suporte a J2ME
- wireless.java.sun.com
- www.jbenchmark.com
- site do fabricante
Ferramentas para o Desenvolvimento de Aplicações J2ME/MIDP
Nokia Developers Suite for J2ME
Motorola SDK for J2ME
http://java.sun.com/products/j2mewtoolkit/
J2ME Wireless Toolkit
IDEs para o Desenvolvimento de Aplicações J2ME/MIDP
- WebSphere Studio Device Developer
- Sun ONE Studio, Mobile Edition
- JBuilder MobileSet
- Simplicity for Java
- JDeveloper J2ME Extension
Etapas no Desenvolvimento de uma Aplicação MIDP
Código Fonte
(arquivos .java)
Binários
(arquivos .class)
Arquivo .jar
(.class + .png)
javac
preverify
jar
Arquivo .jad
Binários Pré-verificados
(arquivos .class)
Exemplo de Códigopackage exemplo;
import javax.microedition.midlet.*;import javax.microedition.lcdui.*;
public class Contador extends MIDlet implements CommandListener {
private Command cmdAdd;private Command cmdReset;private Command cmdExit;private Form frm;private StringItem strTotal;private int counter;
public Contador() {
// Cria e inicializa a tela principal frm = new Form("Contador");
strTotal = new StringItem("Total: ", "0");frm.append(strTotal);
// Cria e adiciona os Commands(botoes)cmdAdd = new Command("+", Command.SCREEN, 0);cmdReset = new Command("Reset", Command.SCREEN, 1);cmdExit = new Command("Sair", Command.SCREEN, 0);frm.addCommand(cmdAdd);frm.addCommand(cmdReset);frm.addCommand(cmdExit);
frm.setCommandListener(this); }
Exemplo de Código (cont.)
public void startApp() { Display.getDisplay(this).setCurrent(frm); }
public void pauseApp() { }
public void destroyApp(boolean b) { }
public void commandAction(Command cmd, Displayable disp) {
// Incrementa o contadorif (cmd == cmdAdd) { strTotal.setText(String.valueOf(++counter));
// Reseta o contador} else if (cmd == cmdReset) { counter = 0;
strTotal.setText("0");
// Sai da aplicacao} else {
destroyApp(false);notifyDestroyed();
} }
}
Exemplo de Arquivo JAD
MIDlet-Name: ContadorMIDlet-Jar-URL: contador.jarMIDlet-Jar-Size: 2509MIDlet-Version: 1.0MIDlet-1: Contador, /images/logo.png , exemplo.ContadorMIDlet-Description: Exemplo de MIDletMIDlet-Vendor: My CompanyMIDlet-Info-URL: http://www.mycompany.com
MIDlets em Palm OS
MIDP for PalmOShttp://java.sun.com/products/midp4palm/
Palm OS > 3.5
WebSphere Micro EnvironmentParceria Palm e IBMhttp://pluggedin.palm.com
Palm Tungsten
Virá de Fábrica
Exemplo de Celular como Ferramenta de Controle Remoto
App Server
Internet
Servlet
x,y x,y
HTTPHTTP
Referências
Java(tm) 2 Platform, Micro Editionhttp://java.sun.com/j2me
Wireless Developerhttp://wireless.java.sun.com/
Micro Java Networkhttp://www.microjava.com
Java(tm) 2 Platform Micro Edition, Wireless Toolkithttp://java.sun.com/products/j2mewtoolkit/
www.forum.nokia.com.br
www.motocoder.com.br
Top Related