Você está na página 1de 26

Introdução ao J2ME

Conexão Java 2004

14 e 15 de Agosto de 2004
Douglas Alves

dougzilla@uol.com.br
douglas@dis.epm.br
O que é um dispositivo wireless?

ƒ PC
ƒ PDA’s
ƒ Comunicadores
ƒ Telefones
ƒ Pagers
ƒ Carros
ƒ Smart Cards, etc
Por que usar J2ME ?
ƒ Pode ser a única forma de programar em alguns
dispositivos

ƒ Compartilha sua lógica entre servidores e


dispositivos

ƒ Dinamismo na obtenção dos aplicativos

ƒ Programas compactos

ƒ Ambiente de desenvolvimento é rápido e seguro


Por que usar J2ME ?

ƒ Existem aproximadamente 1 bilhão e


500 mil celulares no mundo
Newsweek – 07 de junho de 2004

ƒ Entre 40-50% destes aparelhos devem


estar aptos a acessar internet nos
próximos 2 anos
ƒ Já é 2 vezes mais numeroso que os
PC’s
Como deve parecer uma aplicação em
J2ME ?

SERVIDOR
TCP/IP
TCP/IP
WSP
PC

DISPOSITIVO
Serial
USB
Bluetooth DISPOSITIVO
O que é J2ME?
Configurações e perfis

ƒ J2ME por si, não faz tudo


ƒ Configurações: Bibliotecas básicas e JVM
ƒ Perfis (Profiles): Ferramentas para o dispositivo ou
mercado específico
ƒ Configurações J2ME:
- CDC
- CLDC
ƒ Configurações J2ME:
- MIDP
- Foundation, PDAP, Personal Java, etc...
O que é uma configuração ?

ƒ A configuração, define a capacidade


das bibliotecas básicas e da JVM
ƒ Sujeita a testes de compatibilidade
ƒ Configurações do J2ME:
- Connected Device Configuration (CDC)
- Connected Limited Device Coniguration (CLDC)
Configurações

ƒ CLDC
ƒ Equipamentos com baixíssimos níveis de
ƒ Processamento
ƒ Capacidade de memória
ƒ Máximo 512kb de RAM
ƒ Ex. Celulares 2G; 2,5G

ƒ CDC
ƒ Dispositivos com cerca de 2MB de RAM (alguns
PDA’s, telefones 3G, etc.)
O que é um perfil (profile) ?

ƒ Uma coleção de API’s que


complementam uma configuração
fornecendo ferramentas de interação
para o dispositivo

ƒ O perfil ajuda na portabilidade das


aplicações
Perfis (Profiles)

ƒ Os perfis existentes para o CLDC são


diferentes dos existentes para o CDC

ƒ Um perfil pode depender da


funcionalidade de outro perfil, assim
como uma configuração
Mobile Information Device Profile

ƒ Foi o primeiro perfil do J2ME


ƒ É focado em dispositivos
implementados com o CLDC
ƒ É responsável por:
- ferramentas de tela (Display)
- interação com o usuário
- persistência de dados
- “Messaging” (SMS, email, etc), segurança e comunicação
através da rede wireless
Configuração CLDC

MIDP PDAP

CLDC

JVM
MIDlets

ƒ Tem que conter pelo menos uma classe


derivada do pacote
javax.microedition.midlet.MIDlet
ƒ Obrigatoriamente, um número de métodos
têm que ser implementados para que sua
execução torne-se possível
ƒ Tem que usar somente as API’s do MIDP
para manter sua portabilidade
Suite de MIDlet’s

ƒ Conjunto de MIDlets que fazem parte


de um único grupo que podem dividir
entre si os recursos utilizados.
ƒ Todos MIDlets em uma suite rodam na
mesma VM, dividem as mesmas
instancias de classes e recursos.
Execução de um MIDlet

ƒ Tem que haver, por padrão, um construtor


público (public).
ƒ 3 estados: pausado, ativo, destruido
ƒ Enquanto o MIDlet estiver ativo, ele está
rodando o método startApp()
ƒ O mesmo vale para o método pauseApp()
(para quando estiver pausado) e
destroyApp() para quando o MIDlet for
finalizado.
Exemplo de um MIDlet

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class OlaMidlet extends MIDlet implements


CommandListener {
private Display display; //Referencia para o objeto Display
private TextBox tbMain; //TextBox para mostrar a
mensagem
private Command cmSair; //Botão para sair do MIDlet
Exemplo de um MIDlet

public OlaMidlet() {
display = Display.getDisplay(this);
cmSair = new Command("Sair", Command.SCREEN, 1);
tbMain = new TextBox("Bem Vindo", "Ola Midlet", 50, 0);
tbMain.addCommand(cmSair);
tbMain.setCommandListener(this);
}
Exemplo de um MIDlet

//Chamada do gerenciador de aplicação para iniciar o Midlet.


public void startApp() {
display.setCurrent(tbMain);
}
//Requisição de método
public void pauseApp() { }
//Outra requisição de método
public void destroyApp(boolean unconditional) { }
// Checa se o comando de saída foi selecionado
public void commandAction(Command c, Displayable s) {
if (c == cmSair) {
destroyApp(false);
notifyDestroyed();
}
}
}
Alo Mundo - Compilação

ƒ Linha de comando (MS-DOS)


VANTAGENS
ƒ Maior capacidade de manipulação de memória e outros
recursos
ƒ Conhece-se o processo de compilação em “baixo nível”

DESVANTAGENS
ƒ Digitação
ƒ Complexo o suficiente para desmotivar iniciantes em
segundos
ƒ Depende de configuração bem feita
Linha de comando (MS-DOS)
Linha de comando (MS-DOS)
Alo Mundo - Compilação

ƒ J2ME Wireless Toolkit (Sun Microsystems)


VANTAGENS
ƒ Fácil de usar
ƒ Ambiente Windows
ƒ Um botão faz tudo
ƒ Já dispoõe de emuladores e trabalha com ROMS externos
(PalmOS)

DESVANTAGENS
ƒ Não dá muitas opções de customização do MIDlet
ƒ “Esconde” o processo de compilação e pré-verificação
J2ME Wireless Toolkit
J2ME Wireless Toolkit
J2ME Wireless Toolkit

Você também pode gostar