plataforma java 2 micro edition (j2me). divisões do java j2se – java standard edition – desktop...

38
Plataforma Java 2 Micro Edition (J2ME)

Upload: benedicta-cruz-alvarenga

Post on 07-Apr-2016

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Plataforma Java 2 Micro Edition (J2ME)

Page 2: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Divisões do JAVA

J2SE – java standard edition– Desktop

J2EE – Enterprise edition– Servidores

J2ME – Micro edition– Dispositivos com recursos limitados– Introduzida em 1999

Page 3: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 4: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 5: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 6: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Plataforma Java Micro Edition (J2ME)

Plataformas de desenvolvimento para a Nokia:

Page 7: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Pilha Tecnológica do J2ME

Java Application Profile

Configuration

Native OS

Device

Page 8: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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)

Page 9: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Connected Device Configuration (CDC)

Sem GUI Reuso de código J2SE com esforço mínimo Ambientes com recursos limitados

Page 10: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Connected Device Configuration (CDC)

Categorias de dispositivos endereçados

Page 11: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Java SE versus Java CDC

Java SE Java CDC

Page 12: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 13: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 14: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 15: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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)

Page 16: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 17: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition
Page 18: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Introdução às MIDlets

Aplicações Java para serem executadas no contexto MIDP

Page 19: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

MIDlet

“Aplicação Java em concordância com as especificações do CLDC e do MIDP.”

Page 20: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 21: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Desenvolvendo MIDlets

Page 22: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 23: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 24: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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) { } }

Page 25: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Bibliotecas: APIs

CLDC java.lang java.io java.util javax.microedition.io

MIDP javax.microedition.lcdui javax.microedition.midlet javax.microedition.rms

Page 26: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Diagrama

Page 27: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 28: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 29: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 30: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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

Page 31: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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()

Page 32: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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);

Page 33: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

Processo de carregamento de uma MIDlet

Page 34: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

MIDlets

A tendência é para que sejam cada vez mais inovadoras, de maior complexidade computacional

Page 35: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

J2ME Wireless Development Kit

Page 36: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

J2ME Wireless Development Kit

Ambiente de desenvolvimento de MIDlets

– Compilador, ofuscador– Emuladores– Profiling e monitorização de memória

Page 37: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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)

Page 38: Plataforma Java 2 Micro Edition (J2ME). Divisões do JAVA J2SE – java standard edition – Desktop J2EE – Enterprise edition – Servidores J2ME – Micro edition

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.