O documento discute conceitos básicos sobre J2ME, incluindo: (1) O que é J2ME e para que serve; (2) As configurações e perfis da plataforma Java para dispositivos móveis; (3) Exemplos de capacidades habilitadas por J2ME como gráficos, armazenamento de dados e comunicação.
2. J2ME
Tópicos
•
•
•
Dispositivos móveis e o mercado
O que é J2ME?
O que ela é capaz de fazer?
• A plataforma Java™
• Conceitos
– Configurations
– Profiles
– Profiles da CDC
– Profiles da CLDC
– Profile MIDP
– Conceitos da interface do J2ME
• Links interessantes
3. J2ME
Dispositivos móveis e o mercado
• Mercado de dispositivos móveis (celulares e
handheld) cresce e evolui constantemente.
• Os celulares estão cada vez com mais cores,
memória, velocidade e melhor usabilidade.
• Empresas como Nokia, Motorola, Samsung, LG e
Qualcomm investem milhões de US$ em software
• Brasil ocupa 5ª posição entre os países com mais
celulares no mundo (89 milhões)
• Japoneses usam celular para fazer compras,
alugar filmes, fazer reservas em teatro, etc.
(http://idgnow.uol.com.br/telecom/2007/03/14/idgnoticia.2007-03-13.2864066803)
4. J2ME
O que é J2ME?
• Uma edição do Java™ projetada para dispositivos
com memória, vídeo e poder de processamento
limitados (versão reduzida do J2SE com algumas
limitações).
• Plataforma de desenvolvimento de software para
celulares e dispositivos da Palm®.
• Tecnologia que tornou possível instalar novos
softwares (escritos em Java™) em celulares.
Observação: Chama-se J2ME devido ao nome Java 1.2 Micro
Edition, pois essa tecnologia nasceu quando a versão do
Java™ era 1.2 Esse termo está sendo substituído por JME,
assim como JSE e JEE.
5. J2ME
O que ela é capaz de fazer?
• Renderizar gráficos/imagens “pixel-art”, 2D e 3D.
• Armazenar dados no dispositivo (como um BD).
• Comunicar-se através de vários protocolos (HTTP,
HTTPS, FTP, SOCKET, SOAP...)
• Comunicar-se com outros dispositivos via Bluetooth.
• Enviar e receber mensagens SMS/MMS.
• Controlar câmera e sintonizador de rádio do celular.
• Manipular transmissões de conteúdo por difusão,
como TV digital.
• Manipular WebServices.
• Reconhecer e sintetizar voz...
6. J2ME
A plataforma Java™
• Standard Edition (JSE): projetada para execução
em estações de trabalho e máquinas simples de
computadores pessoais.
• Enterprise Edition (JEE): suporta servlets, JSP,
XML, Struts MVC... Essa edição é destinada a
aplicativos baseados no servidor.
• Micro Edition (JME): projetada para dispositivos
com memória, vídeo e poder de processamento
limitados.
9. J2ME
Conceitos
Configurations
• Uma configuração é uma especificação de
capacidades da plataforma subjacente (a JVM, e
indiretamente, o hardware).
• Define os recursos da linguagem Java e as
bibliotecas Java básicas da Máquina Virtual para
uma configuração em particular.
• É baseada na memória, no vídeo, na
conectividade de rede (ou limitações disto) e no
poder de processamento do dispositivo.
• O JME possui duas principais Configurations: CDC
e CLDC.
10. J2ME
Conceitos
Configurations
• Connected Limited Device Configuration (CLDC)
– JSR 30 (v1.0) e JSR 139 (v1.1)
– CPU de 16 ou 32 bits
– 160KB a 512KB (128KB para executar a VM)
– Conexões de rede lenta
– Baixo energia, normalmente, alimentado por bateria
(celulares)
– CLDC 1.0 x 1.1 (versão 1.0 não suporta ponto flutuante)
• Connected Device Configuration (CDC)
– JSR 36 (v1.0) e JSR 218 (v1.1.2)
– CPU de 32 bits
– Mínimo de 2MB de memória para executar a VM
– Conexões de rede um pouco melhores que as da CLDC
– Dispositivos um pouco “maiores” que os CLDC
(smartphones, PDAs, pontos de terminal, sistemas de
navegação de carro, etc.)
11. J2ME
Conceitos
Profiles
• Extensão de uma Configuration
• Cada Configuration possui uma “divisão
horizontal” que diferencia os dispositivos pela sua
aplicabilidade
– Dispositivos de capacidade semelhantes, mas de
utilização distinta, implementarão Profiles diferentes.
• Especificações definidas nas respectivas JSR (Java
Specification Request)
– Documentos formais que descrevem as tecnologias e
as especificações propostas a serem adicionadas na
Java™.
12. J2ME
Conceitos
Profiles da CDC
Profile Especificação Descrição
Foundation v1.0: JSR 46 Dispositivos sem nenhuma capacidade
Profile v1.1: JSR 219 gráfica.
v1.0: JSR 129 Dispositivos com display simples, com
Personal Basis
suporte à AWT e parte da Java2D. É uma
Profile v1.1: JSR 217 versão light do Personal Profile.
v1.0: JSR 62 Suporte quase total às APIs do JSE 1.3 e
Personal Profile
v1.1: JSR 216 alguns da JSE 1.4.
13. J2ME
Conceitos
Profiles da CLDC
Profile Especificação Descrição
Mobile Dispositivos móveis, com display de
v1.0: JSR 37 tamanho limitado. Suporta APIs de GUI
Information
v2.0: JSR 118 (LCDUI), I/O e persistência (RMS). Prevê
Device Profile
v3.0: JSR 271 (new) o suporte a aplicações de voz e telefonia
(MIDP) em geral (SMS, etc.)
Dispositivos sem nenhuma capacidade de
Information display. É um subconjunto da MIDP, que
v1.0: JSR 195
Module Profile basicamente não tem sues pacotes de
GUI (LCDUI).
Para PDAs. Inclui APIs para acesso a
Personal Digital
v1.0: JSR 75 dados de informação pessoal (PIM) e para
Assistant Profile
acesso a sistemas de arquivos.
API pré-J2ME JavaTV. Tem capacidades
Digital Set Top
v1.0: JSR 242 como controle de sintonia ou manipulação
Box Profile
de dados de streams MPEG.
14. J2ME
Conceitos
Profile MIDP
• MIDP 1.0
– Não suporta ponto flutuante.
– Manipula conexões HTTP (sem criptografia).
– Tamanho mínimo do heap é de 32kb....
• MIDP 2.0
– MIDP 1.0 + junção de várias outras APIs.
– Display: no mínimo 96x54 preto-e-branco.
– 128kb de memória para executar os componentes MID.
– Suporta ponto flutuante.
– Manipula conexões HTTP e HTTPS (HTTP sobre SSL).
– Conectividade de rede sem fio (Bluetooth).
– Muitas melhorias na API de interface com o usuário.
– Novas classes para tratamento de jogos e sons....
15. J2ME
Links interessantes
•
•
•
Site oficial do J2ME - http://java.sun.com/javame/
Diversos aplicativos J2ME – http://www.getjar.com/
Livro J2ME - http://www.jasonlam604.com/books.php
• Nokia – http://www.forum.nokia.com
• Motorola – http://www.motocoder.com