Intro javame
-
Upload
chicao-obao -
Category
Documents
-
view
1.006 -
download
2
description
Transcript of Intro javame
![Page 1: Intro javame](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/1.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/2.jpg)
Computação Móvel
ServiçosTelefoniaCelular
Redes:Wi Fi
Wi MaxBluetooth
Internet
OperadorasDispositivos Portáteis ouEmbarcados
![Page 3: Intro javame](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/3.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/4.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/5.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/6.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/7.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/8.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/9.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/10.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/11.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/12.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/13.jpg)
MIDlet – Ciclo de Vida
Pausado
Rodando Destruido
startApppauseApp destroyApp
destroyApp
Construtor
![Page 14: Intro javame](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/14.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/15.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/16.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/17.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/18.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/19.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/20.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/21.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050801/547d2099b4af9fda158b52f7/html5/thumbnails/22.jpg)
Por enquanto é só!