Upload
benedicta-cruz-alvarenga
View
242
Download
0
Embed Size (px)
Citation preview
Plataforma Java 2 Micro Edition (J2ME)
Divisões do JAVA
J2SE – java standard edition– Desktop
J2EE – Enterprise edition– 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-top-boxes 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-top-
boxes, 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
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)
– Series 80, plataforma de desenvolvimento 2.0, implementa 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
Verificação de bytecodes em duas etapas é definida pelo CLDC e trabalha do seguinte modo:
1. As Class Files são verificadas antes da instalação no dispositivo
2. A segunda etapa de verificação é executada no dispositivo aquando do carregamento das classes e durante a execução dos bytecodesClasses 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– Connector.open(http://...);
Dados locais– 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.