Java Micro Edition

Programando dispositivos Móveis com Java Micro Edition

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

1

Conteúdo Programático
■ ■ ■ ■

Plataforma JavaME Programando em JavaME Mais recursos da API Deploy da aplicação

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

2

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

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

3

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

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

4

Mais recursos da API
■ ■ ■ ■

Persistência de dados O banco de dados Record Management System Gravando dados no RMS Lendo dados do RMS

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

5

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)

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

6

A plataforma Java

JAVA EE

JAVA SE

JAVA ME

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

7

Java SE X Java ME

Java Standard Edition
   

Computadores Pessoais Servidores API com muitos recursos Amplamente utilizada Dispositivos com restrições de recursos Celulares, PDAs, embarcados Pequena API Concorrência com outras plataformas:

Java Micro Edition
   

BREW, C++ etc.

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

8

Visão da Plataforma Java

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

9

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

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

10

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

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

11

Dispositivos Alvo

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

12

Configurations e Profiles
■ ■ ■

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

Profiles Configurations

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

13

Configurations

CDC
 

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

CLDC
   

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

14

A CLDC

1.0
  

Sem suporte a ponto flutuante Sem suporte a weak references Associada a MIDP 1.0 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

1.1
   

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

15

Alguns Pacotes da CLDC 1.1
java.lang java.lang.ref java.io java.util javax.microediton.io

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

16

Profiles
São mais específicas Definem APIs específicas ao tipo de dispositivo alvo ■ MIDP 1.0 ■ MIDP 2.0
■ ■

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

17

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

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

18

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

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

19

MIDlet
■ ■

Aplicativo JavaME Classe base a ser extendida para se criar aplicativos JavaME

MIDlet Suítes
  

javax.microedition.midlet Conjunto de Midlets Office Suíte Compartilham recursos (armazenamento)

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

20

Aplicações em Celulares

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

21

Ciclo de Desenvolvimento

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

22

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

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

23

Compilando Código JavaME

Usar apenas JDK e Sun Wireless Toolkit
 

Exige conhecimento do funcionamento Complexo Netbeans + Mobility pack Eclipse + EMF + MTJ + plugin EclipseME

Recomenda-se utilizar uma IDE
 

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

24

Pré-Verificar
■ ■

Por quê? O que o pre-verifier faz?

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

25

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

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

26

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

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

27

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

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

28

A Sandbox do JAM
■ ■ ■

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

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

29

Cinto de Utilidades JavaME
■ ■ ■ ■

Sun JDK

Java Wireless Toolkit

(http://java.sun.com)

(http://java.sun.com/javame/) (http://www.netbeans.org)

NetBeans com Mobility Pack

Emuladores
  

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

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

30

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

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

31

E o Sun Wireless Toolkit
■ ■

Acesse:

Faça o download do Sun Wireless Toolkit atualmente (maio/2007) está na versão 2.5 ■ Instale-o

http://java.sun.com/javame/

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

32

Netbeans com Mobility pack
■ ■ ■ ■

Acesse

Faça o download do Netbeans 5.5 Faça o download do Mobility Pack Instale o Netbeans e após o Mobility Pack

http://www.netbeans.org

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

33

Programando em JavaME

Um bom e velho Hello world!

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

34

Hello World no NetBeans

Clique em Novo

Em Categorias Selecione: Mobile

Em Projetos Selecione: Mobile Application

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

35

Hello World no NetBeans

Dê um nome ao seu MIDlet

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

36

Hello World no NetBeans

Selecione e configure a plataforma alvo
 

Versão da CLDC e MIDP Tipo do aparelho

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

37

Hello World no NetBeans

Alguma outra plataforma?

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

38

Hello World no NetBeans

Projeto Básico criado pelo NetBeans

FlowDesign

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

39

Hello World no NetBeans

Projeto Básico criado pelo NetBeans

Screen Design

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

40

Hello World no NetBeans

O emulador padrão da SUN

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

41

Entendendo um MIDlet
■ ■

A classe base de uma aplicação JavaME

Não tem o método
 

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

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

42

A Classe MIDlet
■ ■ ■

É a classe principal de um 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

javax.microedition.MIDlet

startApp()

Executado sempre que se sai do estado de pausa para ativo Executado sempre que a aplicação terminar Executado sempre que a aplicação entra em pausa
43

destroyApp()

pauseApp()

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

Outros métodos da classe MIDlet

getAppProperty()

Obtém informações do arquivo .JAD ou do arquivo MANIFEST do .JAR Avisa ao JAM para recolher os recursos alocados ao MIDlet Avisa que entrou em estado de pausa Pede para sair do estado de pausa

notifyDestroyed()

■ ■

notifyPaused()
 

resumeRequest()

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

44

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. informa um objeto responsável por receber os eventos gerados por comandos na tela atual informa se o componente está sendo visto na tela no momento

setCommandListener(CommandListener l)

boolean isShown()

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

45

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.

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

46

Tipos de Commands

O tipo pode ser:
       

BACK CANCEL EXIT HELP ITEM OK SCREEN STOP

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

47

Interface CommandListener
■ ■

Permite receber eventos Tem apenas um método que responde a acionamento de comandos

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

commandAction(Command c, Displayable d)

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

48

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

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

49

Itens da tela
■ ■ ■ ■

Herdam de

São adicionados a um Form Podem receber comandos Exemplos

javax.microedition.lcdui.item

A classe TextField

Entrada de texto

A classe Gauge

A classe StringItem

Pode ser usado para selecionar um nivel de algo  Pode ser usado para demonstrar a evolução de um processamento ou download Um label não editável pelo usuário

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

50

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
■ ■ ■

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

51

O banco de dados RMS
■ ■ ■ ■

Baseado em registros Nada de SQL ou tipos definidos A MIDlet suite tem um Record Store

Dentro do recordStore existem records
 

javax.microedition.rms.recordStore 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)

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

52

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

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

53

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

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

54

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

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

55

Criar arquivo .JAR
■ ■

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

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

56

Criar arquivo .JAD

Criando no NetBeans

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

57

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, , MidletGame MIDlet-Jar-Size: 2442 MIDlet-Jar-URL: MobileApplication2.jar MIDlet-Name: MobileApplication2 MIDlet-Vendor: Vendor MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0
Desenvolvimento de Aplicações com JavaME - Tadeu Ferreira Oliveira - 2007

58

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

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

59

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="maxage=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>
60

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

Obrigado
www.notnet.blogspot.com.br

Obrigado!
tadeu_fo@yahoo.com.br

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

61

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.