Introducao ao J2ME

5.096 visualizações

Publicada em

Programaçao para celular usando Java

1 comentário
2 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
5.096
No SlideShare
0
A partir de incorporações
0
Número de incorporações
70
Ações
Compartilhamentos
0
Downloads
263
Comentários
1
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introducao ao J2ME

  1. 1. Introdução a Java Micro Edition Bruno de Sousa Monteiro 9ª Reunião do PBJug Grupo de Usuários Java da Paraíba This work is licensed under a Creative Commons Attribution- NonCommercial-NoDerivs 2.5 Brazil License . 2 de setembro de 2006
  2. 2. Roteiro <ul><li>1. Teoricamente falando... </li></ul><ul><ul><li>J2EE x J2SE x J2ME ??? </li></ul></ul><ul><ul><li>O que é Java ME? </li></ul></ul><ul><ul><li>Camadas da Java ME </li></ul></ul><ul><ul><li>Alguns Recursos Importantes </li></ul></ul><ul><ul><li>O que é um MIDlet? </li></ul></ul><ul><ul><li>Interface com o usuário </li></ul></ul><ul><li>2. Codificando... </li></ul><ul><ul><li>Ambiente de Desenvolvimento </li></ul></ul><ul><ul><li>“ Alo Mundo” </li></ul></ul><ul><li>3. Instalando seu MIDlet </li></ul><ul><ul><li>Empacotando a aplicação </li></ul></ul><ul><ul><li>Configurando servidor WEB </li></ul></ul><ul><ul><li>Criando o site WAP </li></ul></ul>
  3. 3. 1 Teoricamente falando...
  4. 4. J2EE x J2SE x J2ME ??? <ul><li>Um pouco de história... </li></ul><ul><ul><li>1995: Surgimento da linguagem Java </li></ul></ul><ul><ul><li>1999: </li></ul></ul><ul><ul><ul><li>Lançado o Java2 (Java 1.2) </li></ul></ul></ul><ul><ul><ul><li>Divisão das 3 plataformas: </li></ul></ul></ul><ul><ul><ul><ul><li>J2EE ( Java2 Enterprise Edition ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>J2SE ( Java2 Standard Edition ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>J2ME ( Java2 Micro Edition ) </li></ul></ul></ul></ul><ul><ul><li>2006: </li></ul></ul><ul><ul><ul><li>Nova nomenclatura – Falow “2”: </li></ul></ul></ul><ul><ul><ul><ul><li>JEE ( Java Enterprise Edition ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>JSE ( Java Standard Edition ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>JME ( Java Micro Edition ) </li></ul></ul></ul></ul>
  5. 5. J2EE x J2SE x J2ME ??? <ul><li>Java EE </li></ul><ul><li>Plataforma voltada a aplicações coorporativas, no lado do servidor. </li></ul><ul><li>Java SE </li></ul><ul><li>Plataforma para aplicações do lado do cliente e demais aplicativos para computadores pessoais. </li></ul><ul><li>Java ME </li></ul><ul><li>Plataforma Java voltada ao desenvolvimento de aplicações executadas em dispositivos com limitados recursos de hardware. </li></ul>
  6. 6. O que é a Java ME? <ul><li>MAS ATENÇÃO!!! </li></ul><ul><ul><li>JME == Java Micro Edition </li></ul></ul><ul><ul><li>JME != Java Mobile Edition </li></ul></ul>
  7. 7. Camadas da Java ME <ul><li>Perfil ( profile ) </li></ul><ul><li>Conjunto de API’s que complementa uma “configuração” para prover funcionalidades para um determinado mercado ou dispositivo. </li></ul><ul><li>Configuração ( configuration ) </li></ul><ul><li>Define a Máquina Virtual e um conjunto de características básicas. </li></ul>
  8. 8. Camadas da Java ME (Configuração) <ul><li>CLDC – Connected Limited Device Configuration </li></ul><ul><ul><li>Especifica o ambiente Java para telefones celulares, pagers e PDAs. </li></ul></ul><ul><ul><li>Versões: </li></ul></ul><ul><ul><ul><li>CLDC 1.0 </li></ul></ul></ul><ul><ul><ul><li>CLDC 1.1 </li></ul></ul></ul><ul><li>CDC – Connected Device Configuration </li></ul><ul><ul><li>Especifica o ambiente Java para TV Digital, dispositivos sem fio de alto nível e sistemas automotivos. </li></ul></ul>
  9. 9. Camadas da Java ME (Perfil/CLDC) <ul><li>MIDP – Mobile Information Device Profile </li></ul><ul><ul><li>Ambiente de execução, baseados na CLDC , para dispositivos sem fio. </li></ul></ul><ul><ul><li>Versões: </li></ul></ul><ul><ul><ul><li>MIDP 1.0 </li></ul></ul></ul><ul><ul><ul><li>MIDP 2.0 </li></ul></ul></ul><ul><li>PDAP - PDA Profile </li></ul><ul><ul><li>Ambiente de execução, baseados na CLDC , especificamente para PDAs. </li></ul></ul>
  10. 10. Camadas da Java ME (Perfil/CDC) <ul><li>Foundation Profile </li></ul><ul><ul><li>Perfil básico para dispositivos interconectados em rede, sem interface gráfica baseados na CDC . </li></ul></ul><ul><li>Personal Basis Profile e Personal Profile </li></ul><ul><ul><li>Suporte a gráficos para dispositivos baseados em CDC e Foundation. </li></ul></ul>
  11. 11. Alguns Recursos Importantes <ul><li>Alguns recursos disponíveis: </li></ul><ul><ul><li>RMS - Record Management System </li></ul></ul><ul><ul><li>GCF - Generic Connection Framework </li></ul></ul><ul><li>Principais pacotes opcionais: </li></ul><ul><ul><li>JABWT - Java API for Bluetooth </li></ul></ul><ul><ul><li>WMA - Wireless Messaging API </li></ul></ul><ul><ul><li>MMAPI - Mobile Media API </li></ul></ul><ul><ul><li>WSA - J2ME Web Service API </li></ul></ul><ul><ul><li>Game API </li></ul></ul><ul><ul><li>Telephony API </li></ul></ul>
  12. 12. O que é um MIDlet? <ul><li>MIDlet </li></ul><ul><li>Aplicação desenvolvida com a utilização do perfil MIDP e conseqüentemente da configuração CLDC. </li></ul>
  13. 13. O que é um MIDlet? <ul><li>Ciclo de Vida... </li></ul>
  14. 14. Interface com o usuário <ul><li>Displayable : superclasse da qual derivam duas subclasses, Screen e Canvas , refletindo dois níveis de abstração: </li></ul><ul><ul><li>Alto Nível ( High-level API's) </li></ul></ul><ul><ul><li>Refere-se à classe Screen e suas subclasses: Form , List , TextBox and Alert . </li></ul></ul><ul><ul><li>Baixo Nível ( Low-level API's) </li></ul></ul><ul><ul><li>Engloba a classe Canvas e suas heranças. Proporcionam maior liberdade na implementação dos gráficos e eventos. </li></ul></ul><ul><li>Display: classe que recebe os Displayables . </li></ul><ul><li>Command : comandos associados aos Displayables. Usados na interação entre usuário e aplicação. </li></ul>
  15. 15. Interface com o usuário <ul><li>Hierarquia dos principais componentes gráficos </li></ul>
  16. 16. 2 Codificando...
  17. 17. Ambiente de Desenvolvimento <ul><li>JDK </li></ul><ul><ul><li>http:// java . sun . com/javase/downloads/index . jsp </li></ul></ul><ul><li>JWT (Java Wireless Toolkit) </li></ul><ul><ul><li>http:// java . sun . com/products/sjwtoolkit/download -2_2. html </li></ul></ul><ul><li>Eclipse </li></ul><ul><ul><li>http://www.eclipse.org/downloads/ </li></ul></ul><ul><li>EclipseMe </li></ul><ul><ul><li>http://www. eclipseme . org/updates / </li></ul></ul><ul><li>NetBeans </li></ul><ul><ul><li>http://www. netbeans . org/downloads/index . html </li></ul></ul>
  18. 18. “ Alo Mundo” (1/2) <ul><li>// Bibliotecas Básicas: </li></ul><ul><li>import javax.microedition.lcdui.*; </li></ul><ul><li>import javax.microedition.midlet.*; </li></ul><ul><li>public class AloMundo extends MIDlet implements CommandListener </li></ul><ul><li>{ </li></ul><ul><li>private Display display; </li></ul><ul><li>private Form formPrincipal; </li></ul><ul><li>private Command cmdSair; </li></ul><ul><li>// Construtor: </li></ul><ul><li>public AloMundo() { </li></ul><ul><li>display = Display.getDisplay(this); </li></ul><ul><li>formPrincipal = new Form(&quot;Titulo formPrincipal&quot;); </li></ul><ul><li>cmdSair = new Command(&quot;Sair&quot;, Command.EXIT, 1); </li></ul><ul><li>formPrincipal.append(&quot;Alo mundo cruel&quot;); </li></ul><ul><li>formPrincipal.addCommand(cmdSair); </li></ul><ul><li>formPrincipal.setCommandListener(this); </li></ul><ul><li>} </li></ul>
  19. 19. “ Alo Mundo” (2/2) <ul><li>// Método chamado na inicialização do MIDlet </li></ul><ul><li>public void startApp() { </li></ul><ul><li>display.setCurrent(formPrincipal); </li></ul><ul><li>} </li></ul><ul><li>// Método chamado quando o MIDlet é pausado </li></ul><ul><li>public void pauseApp() {} </li></ul><ul><li>// Método chamado quando o MIDlet é fechado </li></ul><ul><li>public void destroyApp(boolean unconditional) {} </li></ul><ul><li>// Método chamado quando algum command é ativado </li></ul><ul><li>public void commandAction(Command cmd, Displayable dis) { </li></ul><ul><li>if (cmd == cmdSair) { </li></ul><ul><li>destroyApp(false); </li></ul><ul><li>notifyDestroyed(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  20. 20. “ Alo Mundo”
  21. 21. 3 Instalando seu MIDlet... (OTA – Over The Air)
  22. 22. 1º) Empacotar aplicação <ul><li>Geração dos arquivos... </li></ul><ul><ul><li>JAR ( Java Archive ) </li></ul></ul><ul><ul><li>Arquivo compactado onde o MIDlet ficará armazenado, junto com outros arquivos adicionais. </li></ul></ul><ul><ul><li>JAD ( Java Application Descriptor ) </li></ul></ul><ul><ul><li>Utilizado pelo Java Application Manager para verificar se o arquivo JAR pode ser instalado no dispositivo. </li></ul></ul><ul><ul><li>OBS: </li></ul></ul><ul><ul><li>Application Manager = Software que controla os aplicativos a serem instalados, onde e como serão armazenados e como serão executados no dispositivo. </li></ul></ul>
  23. 23. 1º) Empacotar aplicação <ul><li>Conteúdo do arquivo JAD: </li></ul><ul><li>MIDlet-1: AloMundo, AloMundo.png, AloMundo </li></ul><ul><li>MIDlet-Jar-Size: 1205 </li></ul><ul><li>MIDlet-Jar-URL: http://localhost/AloMundo.jar </li></ul><ul><li>MIDlet-Name: AloMundo </li></ul><ul><li>MIDlet-Vendor: Bruno </li></ul><ul><li>MIDlet-Version: 1.0 </li></ul><ul><li>MicroEdition-Configuration: CLDC-1.0 </li></ul><ul><li>MicroEdition-Profile: MIDP-1.0 </li></ul>
  24. 24. 1º) Empacotar aplicação
  25. 25. 2º) Criando o site WAP <ul><li>Criando “index.wml” </li></ul><ul><li><wml> </li></ul><ul><li><card> </li></ul><ul><li>Alo Mundo </li></ul><ul><li><a href=&quot;http://localhost/AloMundo.jad&quot;> DOWNLOAD </a> </li></ul><ul><li></card> </li></ul><ul><li></wml> </li></ul>
  26. 26. 3º) Configurando Servidor Web (Apache) <ul><li>Adicionando ao arquivo “ httpd.conf” do Apache: </li></ul><ul><li>AddType text/vnd.sun.j2me.app-descriptor .jad AddType application/java-archive .jar </li></ul>
  27. 28. Obrigado! <ul><li>Livros: </li></ul><ul><li>Core j2Me Technology & Midp; Prentice Hall. </li></ul><ul><li>Programming Wireless Devices With The Java 2 Platform Micro Edition; Addison Wesley. </li></ul><ul><li>J2ME: The Complete Reference; McGraw-Hill. </li></ul><ul><li>Beginning J2ME: From Novice to Professional; Apress. </li></ul><ul><li>Bruno de Sousa Monteiro </li></ul><ul><ul><li>www.brunomonteiro.com </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>

×