Intro javame

  • 601 views
Uploaded on

Introdução a plataforma Java ME

Introdução a plataforma Java ME

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
601
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
14
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 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...
  • 2. Computação Móvel Redes: Wi Fi Internet Wi Max Bluetooth ServiçosDispositivos Telefonia OperadorasPortáteis ou CelularEmbarcados
  • 3. Computação MóvelPrincipais 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
  • 4. Por que Java?●O JavaME (MicroEdition) é um retorno do Javaas origens, comunicação de pequenosdispositivos 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...
  • 5. JavaME – as 2 DivisõesPadrão de arquitetura Arquitetura CDC Arquitetura CLDC Programa JavaME Programa JavaME Programa JavaME Perfil FP / PBP / PP MIDP Configuração CDC CLDC Máquina Virtual JVM-CDC KVM Hardware Bons Recursos Muito Simples Palm, Embarcados, SetupBox Celulares, Palm
  • 6. JavaME - siglas Configurações●CLDC: Conected Limited Device Configuration–Poucos recursos e conexão fraca -> Celulares● CDC: Conected Device Configuration–Bons recursos computacionais e de conexão Perfis●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
  • 7. JavaME – API´s MIDPCLDC java.lang java.io MIDP java.util java.microedition.lcdui java.microedition.io java.microedition.lcdui.game java.microedition.midlet java.microedition.rms java.microedition.pki java.microedition.media java.microedition.media.control
  • 8. 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 econfigurar o .jar. Ex: Jogo.jar – aplicativo - 45kb Jogo.jad – descritor - 150bytes
  • 9. 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 MIDletdentro da suite.
  • 10. MIDP – exemplo MANIFEST.MFManifest-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
  • 11. MIDP – Descritor “.jad”●Arquivo externo ao “.jar”, usado na instalação●Semelhante ao MANIFEST.MF e comprecedê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”
  • 12. MIDP – exemplo JogosDemo.jadMIDlet-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
  • 13. MIDlet – Ciclo de Vida Construtor Pausado pauseApp destroyAppstartApp Rodando Destruido destroyApp
  • 14. 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
  • 15. Interface Gráfica Características:Tela pequena – pouca resolução e coresInterface pobre – sem apontadorPor 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
  • 16. API javax.microedition.lcdui Object Display Displayable Command Item Graphics Canvas Screen ChoiceGroup DateField Font CustomItem TextField ImageAlert ImageItem Gauge Form Ticker StringItem Spacer TextBox List AlertType
  • 17. Classes para Exibição de TelasDisplay Representa a tela do dispositivo Existe apenas uma para todo o MIDlet Obtida por: tela = Display.getDisplay(this) “tela” é um Display e “this” é um MIDletDisplayable São as telas configuradas São alternadas no Display atraves de: tela.setCurrent(menu) “tela” é um Display e “menu” é um Displayable
  • 18. Classes “Displayable” Displayable Canvas - classe para telas de baixo nível, desenhos e eventos Canvas Screen Screen - classe para telas de alto nível, específicas, dos tipos: Alert: mensagens de avisoAlert TextBox: apenas textos Form List: lista de opções, menus TextBox Form: permite agrupar itens, List campos de entrada, seletores, medidores, imagens e textos
  • 19. Classes “Item” Componentes gráficos usados Item em Displayable Form TextField – entrada textoChoiceGroup DateField DateField – entrada data StringItem – etiqueta “label”CustomItem TextField ChoiceGroup – seleção ImageItem Gauge ImageItem – imagem StringItem Spacer Gauge – medidor Spacer – espaçador CustomItem – crie o seu...
  • 20. 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.
  • 21. CommandListenerInterface para tratamento dos eventos de Command.Deve ser implementado pela classe que vai tratar os comandosMé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
  • 22. Por enquanto é só!