Plataforma Java 2 Micro Edition
(J2ME)
Divisões do JAVA

J2SE – java standard edition
–

J2EE – Enterprise edition
–

Desktop
Servidores
J2ME – Micro edition
–
–
Dispositivos com recursos limitados
Introduzida em 1999
Vantagens do J2ME





Programe uma vez, rode em todo lugar
Linguagem de alto nível para dispositivos
móveis
Portabilidade
Navegue pela rede seguro
Alta escalabilidade com J2SE e J2EE
Plataforma Java Micro Edition
(J2ME)


Tecnologia Java para dispositivos embebidos e de
consumo (PDA’s, telemóveis, impressoras, set-topboxes de TV digital, etc.)
Específica as características da máquina virtual
(JVM) e
–
–

APIs nucleares em configurações e
APIs para aplicações ou mercados específicos em profiles
Página web: http://java.sun.com/j2me
J2ME Comité Executivo








BEA Systems
Cisco Systems
Ericsson
IBM
Insignia
Matsushita (Panasonic)
Motorola
Nokia








Palm
Philips
Research In Motion
Siemens
Sony
Sun Microsystems
Texas Instruments
Zucotto Wireless
Plataforma Java Micro Edition
(J2ME)

Plataformas de desenvolvimento para a Nokia:
Pilha Tecnológica do J2ME
Java Application
Profile
Configuration
Native OS
Device
Connected Device Configuration (CDC)

Define um ambiente de execução Java
para dispositivos conectados
–
–
–

PDAs, Telemóveis, impressoras, set-topboxes, etc.
Profiles
Pacotes opcionais
Objectivo primordial:
–
Adaptar a tecnologia Java SE a dispositivos
embebidos (conectados)
Connected Device Configuration (CDC)



Sem GUI
Reuso de código J2SE com esforço mínimo
Ambientes com recursos limitados
Connected Device Configuration (CDC)

Categorias de dispositivos endereçados
Java SE versus Java CDC

Java SE

Java CDC
Plataforma Java J2ME

Connected, Limited Device Configuration (CLDC)
–
–
–
–
Específica as propriedades do core da VM e os APIs para
os dispositivos com desempenho limitado, conectividade à
Internet limitada e intermitente, e interfaces com o utilizador
restritos
Empresas podem utilizar qualquer VM CLDC compatível
que quiserem
Exemplo: CLDC é implementado na Series 40, Series 60 e
Series 80 de dispositivos da Nokia
CLDC homepage: http://java.sun.com/products/cldc
Plataforma Java J2ME

Mobile Information Device Profile (MIDP)
–
–
–
–
Tem como alvo dispositivos de comunicação two-way que
implementem o J2ME CLDC
Endereça display e interface com o utilizador (UI),
persistência de dados, e redes (HTTP, etc.)
Exemplos: MIDP é também implementada nas Series 40,
Series 60 e Series 80 de dispositivos da Nokia
MIDP homepage: http://java.sun.com/products/midp
Plataforma Java J2ME

Connected Device Configuration (CDC) e Personal Profile
–
Series 80, plataforma de desenvolvimento 2.0, também
implementa


–
Series 80, plataforma de desenvolvimento 2.0, implementa


J2ME CDC em adição ao J2ME MIDP
CDC/Personal Profile permite o desenvolvimento de aplicações mais
do tipo desktop, incluindo o acesso a métodos nativos via Java Native
Interface (JNI)
CDC/Personal Profile com a Máquina Virtual IBM J9
CDC/Personal Profile
–
homepage: http://java.sun.com/products/cdc
Configurações J2ME

Connected Device Configuration (CDC)
–
–
–
–

2 a 16 MB
dispositivos CDC podem ser ligados por fios
set-top boxes para TV digital, dispositivos wireless mais sofisticados
Compact Virtual Machine (CVM)
Connected Limited Device Configuration (CLDC)
–
–
–
–
–
160 kB a 512 kB de memória total
Processador de 16- ou de 32-bits
Dispositivos CLDC são normalmente wireless com largura de banda
limitada (normalmente 9600 bits ou menos)
Telemóveis, Pagers, PDAs, etc.
Kilo Virtual Machine (KVM)
Mobile Information Device Profile 1.0 (MIDP
1.0)

Características:
–
–
–
–
–
128 KB de memória não-volátil para a
implementação MIDP
32 KB de memória volátil para o heap
8 KB de memória não-volátil para dados
persistentes
Um ecrã de pelo menos 96 x 54 píxeis
Alguma capacidade para introdução de dados

–
Teclado, ecrã táctil,…
Conexão em rede two-way, possivelmente
intermitente
Introdução às MIDlets
Aplicações Java para
serem executadas no
contexto MIDP
MIDlet

“Aplicação Java em concordância com as
especificações do CLDC e do MIDP.”
Desenvolvendo MIDlets



São executadas sempre do lado do cliente
As MIDlets têm um interface com o utilizador
bastante sofisticado, permitem o armazenamento
local de dados, e o acesso a dados remotamente
Todas as MIDlets têm de extender a classe:
–


javax.microedition.midlet.MIDlet
O grupo de MIDlets que constituem uma MIDlet suite
(incluindo outros recursos) é distribuída segundo um
arquivo JAR
Java Application Descriptor (JAD): descreve o
arquivo JAR
Desenvolvendo MIDlets
Java Application Manager (JAM)

O JAM é responsável por:
–
–
–


carregar o código através de uma conexão sem-fios, por
exemplo
Indicar o local no dispositivo onde esse código deve ser
guardado
Definir o modo como o utilizador pode lançar a aplicação
O JAM guarda a aplicação no dispositivo e em seguida
apresenta as MIDlets dessa aplicação selecionáveis
para execução
A especificação do MIDP define vagamente que o
dispositivo tem de incluir um gestor de aplicações JAM
Ciclo de Vida de uma MIDlet



Estado Paused: quando a MIDlet é
seleccionada para execução
Estado Active: a MIDlet entra
neste estado depois do gestor de
aplicações invocar o método
startApp()
Estado Destroyed: o gestor de
aplicações pode terminar a
execução da MIDlet invocando o
método destroyApp(), neste ponto
a MIDlet é “destruída” e é
esperado o GC
Ciclo de Vida de uma MIDlet
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class myFirstMIDlet extends MIDlet {
//obrigatorio
public void startApp() {
}
//obrigatorio
public void pauseApp() {
}
//obrigatorio
public void destroyApp(boolean unconditional) {
}
}
Bibliotecas: APIs

CLDC
java.lang
java.io
java.util
javax.microedition.io

MIDP
javax.microedition.lcdui
javax.microedition.midlet
javax.microedition.rms
Diagrama
MIDlet Passos de Desenvolvimento







Escrever o código da MIDlet
Compilar a MIDlet
Pré-verificação das classes da MIDlet
Ofuscação das classes da MIDlet (se necessário)
Empacotamento num arquivo JAR
Criação da JAD (Java Application Descriptor)
Carregar e executar a aplicação no emulador ou no dispositivo
Verificação das Class Files



Verificação dos bytecodes é um dos conceitos
fundamentais do modelo de segurança do Java
Antes do carregamento de uma class (pelo class
loader), o verificador de bytecodes analisa a classe de
modo a verificar que a estrutura e comportamento estão
de acordo com o esperado.
Exemplo:
–
–
o verificador no J2SE precisa de um mínimo de 50 KB de
espaço para o código binário, e pelo menos 30-100 KB de RAM
dinâmica na execução
Em adição, o desempenho do CPU necessário para as
verificações em tempo-real pode ser significativo
Verificação das Class Files

Para agilizar a etapa de verificação das MIDlets
–
–
Existe uma etapa de pré-verificação
Nesta etapa são realizadas as verificações possíveis
de efetuar estaticamente
Verificação das Class Files

1.
2.

Verificação de bytecodes em duas etapas é definida
pelo CLDC e trabalha do seguinte modo:
As Class Files são verificadas antes da instalação no
dispositivo
A segunda etapa de verificação é executada no
dispositivo aquando do carregamento das classes e
durante a execução dos bytecodes
Classes não verificadas em (2) são rejeitadas.
Este novo verificador requer cerca de 10 KB de
código binário e menos de 100 bytes de RAM
dinâmica em tempo-real
MIDlets

Acesso ao Display da MIDlet
–

Display.getDisplay(this)
Comandos de Interacção com o utilizador
–
–
–
Associar um gestor de eventos ao Display
Gestor deve implementar a interface
CommandListener
Acções relacionadas com a gestão de eventos:
commandAction()
MIDlets

Dados remotos
–

Dados locais
–
–
–

Connector.open(http://...);
store = RecordStore.openRecordStore("DataStore",
true);
store.closeRecordStore();
RecordStore.deleteRecordStore("DataStore");
Dados em arquivos (e.g., cartão de memória do
dispositivos)
–
Connector.open("file:///E:/rcs/file.txt",
Connector.WRITE);
Processo de carregamento de uma MIDlet
MIDlets

A tendência é para que sejam cada vez mais
inovadoras, de maior complexidade
computacional
J2ME Wireless Development Kit
J2ME Wireless Development Kit

Ambiente de desenvolvimento de
MIDlets
–
–
–
Compilador, ofuscador
Emuladores
Profiling e monitorização de memória
J2ME Wireless Development Kit




Instale o Eclipse
Coloque os plugins do EclipseME na pasta
do eclipse
Instale o Sun Java Wireless Toolkit
Siga os procedimentos do Tutorial
(www/~mbaj/IM/Tutorial J2ME.pdf)
Exercícios


Altere o código exemplo1 para que ao
pressionar o softkey esquerdo, apareca uma
mensagem na tela e ao pressionar o softkey
direito o aplicativo feche.
Altere o código exemplo2 para que uma
firgura primitiva da classe Canvas (triangulo,
circulo etc) mova nas direcionais do
dispositivo.
Download

J2ME