22
Computação Móvel Veio para resolver um grande problema desta “Era da Informação” (ou excesso de Informação, segundo alguns) Necessidade de acesso à informação (qualquer lugar e a qualquer momento) Aumentar a eficiência do trabalho Facilidade no transporte de dispositivos Cada vez mais dispositivos Cada vez mais recursos Custos caindo...

Intro javame

Embed Size (px)

DESCRIPTION

Introdução a plataforma Java ME

Citation preview

Page 1: Intro javame

Computação Móvel

Veio para resolver um grande problema desta “Era da Informação”

(ou excesso de Informação, segundo alguns)Necessidade de acesso à informação (qualquer lugar e a qualquer momento) –Aumentar a eficiência do trabalho–Facilidade no transporte de dispositivos–Cada vez mais dispositivos–Cada vez mais recursos–Custos caindo...

Page 2: Intro javame

Computação Móvel

ServiçosTelefoniaCelular

Redes:Wi Fi

Wi MaxBluetooth

Internet

OperadorasDispositivos Portáteis ouEmbarcados

Page 3: Intro javame

Computação Móvel

Principais problemasConectividade–Perda de conexão–Qualidade variável do enlace – sem QoS–Regiões sem Cobertura–Largura de Banda estreitaDispositivos–Possuem poucos recursos–Energia limitada–Interface pobre–Grandes diferenças entre eles

Page 4: Intro javame

Por que Java?

●O JavaME (MicroEdition) é um retorno do Java as origens, comunicação de pequenos dispositivos heterogêneos. ●Foi criada pois o Java cresceu muito●Diferentes Dispositivos:–Multiplataforma => Máquina Virtual●Quantidade de desenvolvedores●Suporte dos maiores fabricantes: –Nokia, Siemens, Motorola, Sony/Ericson, LG...

Page 5: Intro javame

JavaME – as 2 Divisões

Hardware

Máquina Virtual

Configuração

Perfil

Programa JavaME

Bons Recursos

JVM-CDC

CDC

FP / PBP / PP

Programa JavaME

Muito Simples

KVM

CLDC

MIDP

Programa JavaME

Padrão de arquitetura Arquitetura CDC Arquitetura CLDC

Celulares, PalmPalm, Embarcados, SetupBox

Page 6: Intro javame

JavaME - siglasConfigurações

●CLDC: Conected Limited Device Configuration–Poucos recursos e conexão fraca -> Celulares●CDC: Conected Device Configuration–Bons recursos computacionais e de conexãoPerfis

●MIDP: Mobile Information Device Profile–Perfil usado para desenvolvimento para celulares●FP: Foundation Profile – sem GUI●PBP: Personal Basis Profile – gráficos limitados●PP: Personal Profile – quase Java padrão–Este 3 perfis são utilizados com o CDC

Page 7: Intro javame

JavaME – API´s MIDP

CLDCjava.langjava.iojava.utiljava.microedition.io

MIDPjava.microedition.lcduijava.microedition.lcdui.gamejava.microedition.midletjava.microedition.rmsjava.microedition.pkijava.microedition.mediajava.microedition.media.control

Page 8: Intro javame

MIDlet Suite

●Pacote que segue os padrões de MIDP●“.jar” da aplicação para celular, inclui:–Inclui o arquivo “MANIFEST.MF” –Inclui recursos (imagens, sons) –Inclui uma ou mais MIDlets (aplicações MIDP)●Acompanha arquivo “.jad“ (java descriptor), normalmente usado para baixar, instalar e configurar o .jar.

Ex: Jogo.jar – aplicativo - 45kbJogo.jad – descritor - 150bytes

Page 9: Intro javame

MIDP – arquivo MANIFEST.MF

●Arquivo de propriedades, incluído no “.jar”●Descreve o conteúdo e configura a Suite●Campos obrigatórios:–MIDlet-<n>:info MIDlet n - Nome,Icone,Classe –MIDlet-Vendor: autor–MIDlet-Name: nome da Suite MIDlet–MIDlet-Version: versão do aplicativo–MicroEdition-Configuration: versão do CLDC–MicroEdition-Profile: versão do MIDP●A linha MIDlet-<n> se repete para cada MIDlet dentro da suite.

Page 10: Intro javame

MIDP – exemplo MANIFEST.MF

Manifest-Version: 1.0MIDlet-1: Xadrez, torre.png , demo.XadrezMIDlet-2: Dama, disco.png , demo.DamaMIDlet-3: Gamão, gamao.png, demo.GamaoMIDlet-Vendor: Chicao SA.MIDlet-Name: Jogos DemoMIDlet-Description: Exemplo de Jogos JavaMEMIDlet-Version: 1.0.0MicroEdition-Configuration: CLDC-1.1MicroEdition-Profile: MIDP-2.1

Page 11: Intro javame

MIDP – Descritor “.jad”

●Arquivo externo ao “.jar”, usado na instalação●Semelhante ao MANIFEST.MF e com precedência sobre ele●Tem o mesmo nome do pacote “.jar”●Outros campos utilizados:–MIDlet-Jar-Size: tamanho em bytes do “.jar”–MIDlet-Jar-URL: localização do “.jar”

Page 12: Intro javame

MIDP – exemplo JogosDemo.jad

MIDlet-Jar-Size: 15516MIDlet-Jar-URL: JogosDemo.jarMIDlet-Name: Jogos DemoMIDlet-Vendor: Chicao SA.MIDlet-Version: 1.0MicroEdition-Configuration: CLDC-1.1MicroEdition-Profile: MIDP-2.1

Page 13: Intro javame

MIDlet – Ciclo de Vida

Pausado

Rodando Destruido

startApppauseApp destroyApp

destroyApp

Construtor

Page 14: Intro javame

Criando um MIDlet

●Basta criar uma classe que estenda MIDlet–javax.microedition.midlet.MIDlet

●Implementar os métodos:–Construtor()–public void startApp()–public void pauseApp()–public void destroyApp(boolean b)

Para executar ou instalar, deve estar empacotada como MIDlet Suite, com o MANIFEST.MF

Page 15: Intro javame

Interface Gráfica

Características:Tela pequena – pouca resolução e coresInterface pobre – sem apontador

Por isso não possui alguns objetos gráficos comuns, como botões, e deve haver uma grande preocupação com a navegação e troca de telas no projeto.

A API javax.microedition.lcdui é a responsável pelos recursos gráficos do MIDP

Page 16: Intro javame

API javax.microedition.lcdui

Object

Display Displayable Command Item Graphics

Font

Image

Ticker

AlertType

Canvas Screen

AlertForm

TextBox

List

DateField

TextField

Gauge

Spacer

ChoiceGroup

CustomItem

ImageItem

StringItem

Page 17: Intro javame

Classes para Exibição de Telas

DisplayRepresenta a tela do dispositivoExiste apenas uma para todo o MIDletObtida por: tela = Display.getDisplay(this)

“tela” é um Display e “this” é um MIDlet

DisplayableSão as telas configuradasSão alternadas no Display atraves de:

tela.setCurrent(menu)“tela” é um Display e “menu” é um Displayable

Page 18: Intro javame

Classes “Displayable”

Canvas - classe para telas de baixo nível, desenhos e eventos

Screen - classe para telas de alto nível, específicas, dos tipos:Alert: mensagens de avisoTextBox: apenas textosList: lista de opções, menusForm: permite agrupar itens,

campos de entrada, seletores, medidores, imagens e textos

Displayable

Canvas Screen

AlertForm

TextBox

List

Page 19: Intro javame

Classes “Item”

Componentes gráficos usados em Displayable Form

TextField – entrada textoDateField – entrada dataStringItem – etiqueta “label”ChoiceGroup – seleçãoImageItem – imagem Gauge – medidor Spacer – espaçador CustomItem – crie o seu...

Item

DateField

TextField

Gauge

Spacer

ChoiceGroup

CustomItem

ImageItem

StringItem

Page 20: Intro javame

Comandos – Classe CommandProblema: “Não há padronização de botões em celulares!”Solução:São atribuídos a tipos: OK, CANCEL, SCREEN, STOP,

BACK, EXIT, HELP e ITEM O Celular se encarrega de colocar o

comando na posição “padrão do aparelho” pelo tipo.

Caso haja vários comandos na mesma posição, mostra um menu com as várias opções.

Page 21: Intro javame

CommandListener

Interface para tratamento dos eventos de Command.

Deve ser implementado pela classe que vai tratar os comandos

Método a ser implementado: public void commandAction(Command c, Displayable d) onde: “c” recebe o objeto que gerou o comando “d” recebe a tela onde foi dado o comandoEste método pode ser o mesmo para tratar

diversos comandos, por isso é hábito testá-los

Page 22: Intro javame

Por enquanto é só!