slides de aula java micro edition - j2me

61
Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 Java Micro Edition Programando dispositivos Móveis com Java Micro Edition

Upload: tadeufo

Post on 06-Jun-2015

4.307 views

Category:

Documents


0 download

DESCRIPTION

Slides de aula introdutória de Java Micro Edition utilizando o Netbeans

TRANSCRIPT

Page 1: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1

Java Micro Edition

Programando dispositivos Móveis com Java Micro Edition

Page 2: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2

Conteúdo Programático■ Plataforma JavaME■ Programando em JavaME■ Mais recursos da API■ Deploy da aplicação

Page 3: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3

Plataforma Java ME■ JavaSE X JavaME■ Dispositivos Alvo■ Configurations e Profiles■ Jogos X Aplicativos Comuns ■ Midlets e Midlet Suites■ Arquivos .JAR e .JAD■ Instalação de aplicações■ Execução de aplicação em Sandbox■ Compilação e pré-verificação

Page 4: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4

Programando em Java ME■ Criando um Midlet■ A classe Midlet■ Estrutura básica de um Midlet■ "Hello micro World!"■ Usando componentes de interface ■ Exemplos usando Alert TextField e Gauge

Page 5: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5

Mais recursos da API■ Persistência de dados■ O banco de dados Record Management System■ Gravando dados no RMS■ Lendo dados do RMS

Page 6: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 6

Deploy da aplicação■ Compiler■ Pré-verifier■ Criar arquivo .JAR■ Criar arquivo .JAD■ Uma página simples em WAP■ Transferir a aplicação OTA(Over the Air)

Page 7: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 7

A plataforma Java

JAVA ME

JAVA EE JAVA SE

Page 8: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 8

Java SE X Java ME■ Java Standard Edition

Computadores Pessoais Servidores API com muitos recursos Amplamente utilizada

■ Java Micro Edition Dispositivos com restrições de recursos Celulares, PDAs, embarcados Pequena API Concorrência com outras plataformas:

BREW, C++ etc.

Page 9: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 9

Visão da Plataforma Java

Page 10: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 0

Diferenças na programação■ Preocupação com performance■ Utilização mínima de recursos

Economia de bateria Melhor tempo de resposta

■ Acesso a rede intermitente■ Aplicações não rodam como prioridade do usuário■ Acesso ao dispositivo limitado

Page 11: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 1

KVM - Kilobyte Virtual Machine

■ Projetada para dispositivos embarcados■ Menos bibliotecas■ Menor consumo de memória■ Memória estática na faixa dos 40 a 80 KB■ Abriga os programas

Exevução em Sandbox

Page 12: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 2

Dispositivos Alvo

Page 13: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 3

Configurations e Profiles■ Divisões da Plataforma Java■ Configurations são definições mais gerais■ Ambos são um conjunto de APIs

Profiles

Configurations

Page 14: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 4

Configurations■ CDC

Conected Devices Configuration Executa sobre a JVM

■ CLDC Conected Limited Devices Configuration Usada em Celulares Mais comum Executa sobre a KVM

Page 15: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 5

A CLDC■ 1.0

Sem suporte a ponto flutuante Sem suporte a weak references Associada a MIDP 1.0

■ 1.1 Suporte a ponto flutuante Suporte a weak references Continua suportando tudo da 1.0 com adições Associada a MIDP 1.0 ou MIDP 2.0

Page 16: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 6

Alguns Pacotes da CLDC 1.1

java.langjava.lang.refjava.iojava.utiljavax.microediton.io

Page 17: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 7

Profiles■ São mais específicas■ Definem APIs específicas ao tipo de dispositivo

alvo■ MIDP 1.0■ MIDP 2.0

Page 18: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 8

MIDP 2.0■ Comum em celulares■ Suporte aprimorado a multimídia■ APIs específicas para jogos!■ Algumas APIs do MIDP 2.0

javax.microedition.midlet javax.microedition.lcdui.game javax.microedition.lcdui.media javax.microedition.rms

Page 19: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 1 9

Jogos X Aplicativos Comuns■ Alta necessidade de

performance■ Requisitos de tempo

de resposta■ Algoritmos mais

complexos

■ Performance moderada

■ Tempo de resposta compatível com o ambiente

■ Algoritmos simples■ Regra de negócio

dispersa

Page 20: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 0

MIDlet■ Aplicativo JavaME■ Classe base a ser extendida para se criar

aplicativos JavaME javax.microedition.midlet

■ MIDlet Suítes Conjunto de Midlets Office Suíte Compartilham recursos (armazenamento)

Page 21: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 1

Aplicações em Celulares

Page 22: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 2

Ciclo de Desenvolvimento

Page 23: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 3

Editando código Fonte■ Existem várias IDEs

Eclipse NetBeans JavaME Wireless Toolkit

■ Existe um conjunto mínimo de ferramentas necessárias JDK 1.4 ou superior Sun java Wireless Toolkit

■ No caso do Netbeans Além da IDE é necessário baixar o Netbeans Mobilty

Pack

Page 24: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 4

Compilando Código JavaME■ Usar apenas JDK e Sun Wireless Toolkit

Exige conhecimento do funcionamento Complexo

■ Recomenda-se utilizar uma IDE Netbeans + Mobility pack Eclipse + EMF + MTJ + plugin EclipseME

Page 25: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 5

Pré-Verificar■ Por quê?■ O que o pre-verifier faz?

Page 26: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 6

Empacotando■ Criar um pacote pronto para execução■ Arquivo JAR

Velho conhecido da plataforma Java Compactado diminui tráfego de rede

■ Arquivo JAD Java Application Descriptor É usado antes do JAR para exibir informações do

MIDlet Suíte que será instalado Inclui informações de inicialização do MIDlet Não é obrigatório

Page 27: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 7

Testes■ Emuladores

Distribuídos gratuitamente pelo fabricante Fácil instalação de aplicações Rápido Deploy Permite testar vários dispositivos de várias marcas e

modelos■ O teste no dispositivo real é importantíssimo

Page 28: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 8

Instalação de aplicações■ Quem realiza a instalação?■ O JAM (Java Application Manager)■ Instalação OTA

Over the Air Servidor configurado corretamente

Tipos MIME■ Via Cabo

Mais rápido mais barato Mais complicado para o usuário final

Page 29: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 2 9

A Sandbox do JAM■ Sandbox significa maior segurança■ Limita acesso a recursos Nativos■ Não tem acesso direto ao Sistema Operacional

Page 30: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 0

Cinto de Utilidades JavaME■ Sun JDK

(http://java.sun.com)■ Java Wireless Toolkit

(http://java.sun.com/javame/)■ NetBeans com Mobility Pack

(http://www.netbeans.org)■ Emuladores

http://developer.motorola.com/ http://forum.nokia.com/ http://developer.sonyericsson.com

Page 31: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 1

Instalando o JDK■ Acesse:

http://java.sun.com/javase/downloads/index.jsp■ Faça o download do Java Standard Development

Kit■ Atualmente está na versão 6 update 1 JDK 6u1

Page 32: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 2

E o Sun Wireless Toolkit■ Acesse:

http://java.sun.com/javame/■ Faça o download do Sun Wireless Toolkit

atualmente (maio/2007) está na versão 2.5■ Instale-o

Page 33: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 3

Netbeans com Mobility pack■ Acesse

http://www.netbeans.org■ Faça o download do Netbeans 5.5■ Faça o download do Mobility Pack■ Instale o Netbeans e após o Mobility Pack

Page 34: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 4

Programando em JavaME

Um bom e velho Hello world!

Page 35: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 5

Hello World no NetBeans■ Clique em Novo

Em Categorias Selecione: Mobile Em Projetos Selecione: Mobile Application

Page 36: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 6

Hello World no NetBeans■ Dê um nome ao seu MIDlet

Page 37: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 7

Hello World no NetBeans■ Selecione e configure a plataforma alvo

Versão da CLDC e MIDP Tipo do aparelho

Page 38: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 8

Hello World no NetBeans■ Alguma outra plataforma?

Page 39: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 3 9

Hello World no NetBeans■ Projeto Básico criado pelo NetBeans

FlowDesign

Page 40: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 0

Hello World no NetBeans■ Projeto Básico criado pelo NetBeans

Screen Design

Page 41: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 1

Hello World no NetBeans■ O emulador padrão da SUN

Page 42: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 2

Entendendo um MIDlet■ A classe base de uma aplicação JavaME

javax.microedition.midlet■ Não tem o método

public static void main(String args[]) A aplicação começa no startApp()

Page 43: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 3

A Classe MIDlet■ É a classe principal de um MIDlet

javax.microedition.MIDlet■ Deve ser extendida para se criar um MIDlet■ O construtor é executado no início da

aplicação■ Métodos abstratos para acompanhamento do

estado da aplicação startApp()

Executado sempre que se sai do estado de pausa para ativo

destroyApp() Executado sempre que a aplicação terminar

pauseApp() Executado sempre que a aplicação entra em pausa

Page 44: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 4

Outros métodos da classe MIDlet■ getAppProperty()

Obtém informações do arquivo .JAD ou do arquivo MANIFEST do .JAR

■ notifyDestroyed() Avisa ao JAM para recolher os recursos alocados ao

MIDlet■ notifyPaused()

Avisa que entrou em estado de pausa■ resumeRequest()

Pede para sair do estado de pausa

Page 45: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 5

A classe Displayable■ É uma superclasse que define métodos básicos

para qualquer classe que possa ser exibida na tela

■ Métodos Importantes addCommand(Command c)

Adiciona um comando à tela Ex.: Sair, Abrir, Próxima Janela etc.

setCommandListener(CommandListener l) informa um objeto responsável por receber os eventos

gerados por comandos na tela atual boolean isShown()

informa se o componente está sendo visto na tela no momento

Page 46: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 6

Respondendo ao Usuário■ A classe Command

javax.microedition.lcdui.Command label tipo Prioridade

■ É usado para mapear as opções do usuário em uma tela

■ A prioridade informa o quanto o aparelho deve tentar exibir este comando em relação aos outros caso não caibam todos na tela

Quanto menor o valor maior a prioridade Prioridade 0 (zero) terá preferência sobre prioridade 1.

Page 47: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 7

Tipos de Commands■ O tipo pode ser:

BACK CANCEL EXIT HELP ITEM OK SCREEN STOP

Page 48: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 8

Interface CommandListener■ Permite receber eventos■ Tem apenas um método que responde a

acionamento de comandos commandAction(Command c, Displayable d)

■ O primeiro argumento identifica o comando que foi acionado o segundo indica em que item de tela ele ocorreu

Page 49: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 4 9

Formulário■ A classe Form

javax.microedition.lcdui.form Exibição dependente do aparelho Flexível em relação a tamanho e formato Dificuldades para posicionamento de itens

Page 50: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 0

Itens da tela■ Herdam de

javax.microedition.lcdui.item■ São adicionados a um Form■ Podem receber comandos■ Exemplos

A classe TextField Entrada de texto

A classe Gauge Pode ser usado para selecionar um nivel de algo Pode ser usado para demonstrar a evolução de um

processamento ou download A classe StringItem

Um label não editável pelo usuário

Page 51: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 1

Persistência de dados■ Pequeno espaço■ Compartilhado■ Todos os MIDlets em uma mesma MIDlet Suíte

acessam os registros■ Leitura e escrita usando streams

Page 52: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 2

O banco de dados RMS■ Baseado em registros■ Nada de SQL ou tipos definidos■ A MIDlet suite tem um Record Store

javax.microedition.rms.recordStore■ Dentro do recordStore existem records

Um record é um array de bytes Todo record tem um ID gerado na hora da inserção

■ Obtêm-se um recordStore através do método openRecordStore RecordStore.openRecordStore(String nome, boolean criarSeNãoExiste)

Page 53: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 3

Gravando dados no RMS■ Depois de obter um RecordStore com o

openRecordStore pode-se ler e gravar records■ addRecord – Novo Registro ■ setRecord – Atualizar um registro existente■ Para listar os registros pode-se usar

RecordEnumeration

RecordStore rs = null;rs = RecordStore.openRecordStore("BD", true);rs.addRecord(dados,0,dados.length);rs.closeRecordStore();

Page 54: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 4

Lendo dados do RMS■ Para a leitura pode-se usar os métodos■ getRecord(id,buffer,offset)■ Ou usar um recordEnumeration com o método

nextRecord()

RecordStore rs = null;rs = RecordStore.openRecordStore("BD", true);rs.getRecord(1,dados,0);rs.closeRecordStore();

Page 55: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 5

Deploy da Aplicação■ Via WEB

OTA Mais comumente utilizado pelas operadoras Requer Servidor WEB adequado Tipos MIME

text/vnd.sun.j2me.app-descriptor .jad application/java-archive .jar

■ Via Cabo ou transferência serial BlueTooth Infravermelho etc

Page 56: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 6

Criar arquivo .JAR■ Um arquivo .JAR comum do JAVA■ A IDE criará um para você

Page 57: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 7

Criar arquivo .JAD■ Criando no NetBeans

Page 58: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 8

Criar arquivo .JAD■ Neste arquivo encontra-se a lista dos midlets da

suíte■ Permissões especiais■ Atributos que podem ser configurações■ Os atributos são somente leitura■ Exemplo de arquivo .JAD

MIDlet-1: MidletGame, , MidletGameMIDlet-Jar-Size: 2442MIDlet-Jar-URL: MobileApplication2.jarMIDlet-Name: MobileApplication2MIDlet-Vendor: VendorMIDlet-Version: 1.0MicroEdition-Configuration: CLDC-1.1MicroEdition-Profile: MIDP-2.0

Page 59: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 5 9

Instalar o MIDlet OTA(Over the Air)■ Utiliza-se uma página WAP para efetuar o

download do Arquivo .JAD■ O Aparelho é responsável por fazer o download

do arquivo .JAR

Page 60: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 6 0

Uma página simples em WAP<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><head><meta http-equiv="Cache-Control" content="max-age=0"/></head><card id="inicial" title="Página WAP"><p align="center"><b>Funciona</b></p><p align="center">

<b><a href="JMinesMIDlet.jad"> Campo Minado </a></b></p></card></wml>

Page 61: Slides de Aula Java Micro Edition - J2ME

Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007 6 1

Obrigado

www.notnet.blogspot.com.br

[email protected]!