28
Introdução a Java Micro Edition Bruno de Sousa Monteiro 9ª Reunião do PBJug 9ª Reunião do PBJug Grupo de Usuários Java da Grupo de Usuários Java da Paraíba Paraíba This work is licensed under a Creative Commons Attribution- NonCommercial-NoDerivs 2.5 Brazil License . 2 de setembro de 2006

Introducao ao J2ME

Embed Size (px)

DESCRIPTION

Programaçao para celular usando Java

Citation preview

Page 1: Introducao ao J2ME

Introdução a Java Micro

Edition Bruno de Sousa Monteiro

9ª Reunião do PBJug9ª Reunião do PBJug

Grupo de Usuários Java da ParaíbaGrupo 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

Page 2: Introducao ao J2ME

Roteiro 1. Teoricamente falando...

J2EE x J2SE x J2ME ??? O que é Java ME? Camadas da Java ME Alguns Recursos Importantes O que é um MIDlet? Interface com o usuário

2. Codificando... Ambiente de Desenvolvimento “Alo Mundo”

3. Instalando seu MIDlet Empacotando a aplicação Configurando servidor WEB Criando o site WAP

Page 3: Introducao ao J2ME

1

Teoricamente falando...

Page 4: Introducao ao J2ME

J2EE x J2SE x J2ME ??? Um pouco de história...

1995: Surgimento da linguagem Java

1999: Lançado o Java2 (Java 1.2) Divisão das 3 plataformas:

J2EE (Java2 Enterprise Edition) J2SE (Java2 Standard Edition) J2ME (Java2 Micro Edition)

2006: Nova nomenclatura – Falow “2”:

JEE (Java Enterprise Edition) JSE (Java Standard Edition) JME (Java Micro Edition)

Page 5: Introducao ao J2ME

J2EE x J2SE x J2ME ???

Java EEPlataforma voltada a aplicações coorporativas, no lado do servidor.

Java SEPlataforma para aplicações do lado do cliente e demais aplicativos para computadores pessoais.

Java MEPlataforma Java voltada ao desenvolvimento de aplicações executadas em dispositivos com limitados recursos de hardware.

Page 6: Introducao ao J2ME

O que é a Java ME?MAS ATENÇÃO!!!

JME == Java Micro EditionJME != Java Mobile Edition

Page 7: Introducao ao J2ME

Camadas da Java MEPerfil (profile)

Conjunto de API’s que complementa uma “configuração” para prover funcionalidades para um determinado mercado ou dispositivo.

Configuração (configuration)Define a Máquina Virtual e um conjunto de características básicas.

Page 8: Introducao ao J2ME

Camadas da Java ME (Configuração) CLDC – Connected Limited Device Configuration

Especifica o ambiente Java para telefones celulares, pagers e PDAs.

Versões: CLDC 1.0 CLDC 1.1

CDC – Connected Device Configuration Especifica o ambiente Java para TV Digital,

dispositivos sem fio de alto nível e sistemas automotivos.

Page 9: Introducao ao J2ME

Camadas da Java ME (Perfil/CLDC)

MIDP – Mobile Information Device Profile Ambiente de execução, baseados na

CLDC, para dispositivos sem fio. Versões:

MIDP 1.0 MIDP 2.0

PDAP - PDA Profile Ambiente de execução, baseados na

CLDC, especificamente para PDAs.

Page 10: Introducao ao J2ME

Camadas da Java ME (Perfil/CDC)

Foundation Profile Perfil básico para dispositivos

interconectados em rede, sem interface gráfica baseados na CDC.

Personal Basis Profile e Personal Profile Suporte a gráficos para dispositivos

baseados em CDC e Foundation.

Page 11: Introducao ao J2ME

Alguns Recursos Importantes Alguns recursos disponíveis:

RMS - Record Management System GCF - Generic Connection Framework

Principais pacotes opcionais: JABWT - Java API for Bluetooth WMA - Wireless Messaging API MMAPI - Mobile Media API WSA - J2ME Web Service API Game API Telephony API

Page 12: Introducao ao J2ME

O que é um MIDlet? MIDlet

Aplicação desenvolvida com a utilização do perfil MIDP e conseqüentemente da configuração CLDC.

Page 13: Introducao ao J2ME

O que é um MIDlet? Ciclo de Vida...

Page 14: Introducao ao J2ME

Interface com o usuário Displayable: superclasse da qual derivam duas

subclasses, Screen e Canvas, refletindo dois níveis de abstração: Alto Nível (High-level API's)

Refere-se à classe Screen e suas subclasses: Form, List, TextBox and Alert.

Baixo Nível (Low-level API's)Engloba a classe Canvas e suas heranças. Proporcionam maior liberdade na implementação dos gráficos e eventos.

Display: classe que recebe os Displayables.

Command: comandos associados aos Displayables. Usados na interação entre usuário e aplicação.

Page 15: Introducao ao J2ME

Interface com o usuário Hierarquia dos principais componentes gráficos

Page 16: Introducao ao J2ME

2

Codificando...

Page 17: Introducao ao J2ME

Ambiente de Desenvolvimento JDK

http://java.sun.com/javase/downloads/index.jsp

JWT (Java Wireless Toolkit) http://java.sun.com/products/sjwtoolkit/download-2_2.html

Eclipse http://www.eclipse.org/downloads/

EclipseMe http://www.eclipseme.org/updates/

NetBeans http://www.netbeans.org/downloads/index.html

Page 18: Introducao ao J2ME

“Alo Mundo” (1/2)1. // Bibliotecas Básicas:2. import javax.microedition.lcdui.*;3. import javax.microedition.midlet.*;4. 5. public class AloMundo extends MIDlet implements CommandListener 6. {7. private Display display;8. private Form formPrincipal;9. private Command cmdSair;10.

11. // Construtor:12. public AloMundo() {13. display = Display.getDisplay(this);14. formPrincipal = new Form("Titulo formPrincipal");15. cmdSair = new Command("Sair", Command.EXIT, 1);16. 17. formPrincipal.append("Alo mundo cruel"); 18. formPrincipal.addCommand(cmdSair);19. formPrincipal.setCommandListener(this);20. }

Page 19: Introducao ao J2ME

“Alo Mundo” (2/2)21. // Método chamado na inicialização do MIDlet22. public void startApp() {23. display.setCurrent(formPrincipal);24. }25. 26. // Método chamado quando o MIDlet é pausado27. public void pauseApp() {}28. 29. // Método chamado quando o MIDlet é fechado30. public void destroyApp(boolean unconditional) {}31. 32. // Método chamado quando algum command é ativado33. public void commandAction(Command cmd, Displayable dis)

{34. if (cmd == cmdSair) {35. destroyApp(false);36. notifyDestroyed(); 37. }38. }39. }

Page 20: Introducao ao J2ME

“Alo Mundo”

Page 21: Introducao ao J2ME

3

Instalando seu MIDlet...

(OTA – Over The Air)

Page 22: Introducao ao J2ME

1º) Empacotar aplicação Geração dos arquivos...

JAR (Java Archive)Arquivo compactado onde o MIDlet ficará armazenado, junto com outros arquivos adicionais.

JAD (Java Application Descriptor) Utilizado pelo Java Application Manager para verificar se o arquivo JAR pode ser instalado no dispositivo.

OBS: Application Manager = Software que controla os aplicativos a serem instalados, onde e como serão armazenados e como serão executados no dispositivo.

Page 23: Introducao ao J2ME

1º) Empacotar aplicação Conteúdo do arquivo JAD:

MIDlet-1: AloMundo, AloMundo.png, AloMundoMIDlet-Jar-Size: 1205MIDlet-Jar-URL: http://localhost/AloMundo.jarMIDlet-Name: AloMundoMIDlet-Vendor: BrunoMIDlet-Version: 1.0MicroEdition-Configuration: CLDC-1.0MicroEdition-Profile: MIDP-1.0

Page 24: Introducao ao J2ME

1º) Empacotar aplicação

Page 25: Introducao ao J2ME

2º) Criando o site WAP Criando “index.wml”

<wml><card>

Alo Mundo<a href="http://localhost/AloMundo.jad"> DOWNLOAD </a>

</card></wml>

Page 26: Introducao ao J2ME

3º) Configurando Servidor Web (Apache)

Adicionando ao arquivo “httpd.conf” do Apache:

AddType text/vnd.sun.j2me.app-descriptor .jad AddType application/java-archive .jar

Page 27: Introducao ao J2ME
Page 28: Introducao ao J2ME

Obrigado!Livros:

Core j2Me Technology & Midp; Prentice Hall.

Programming Wireless Devices With The Java 2 Platform Micro Edition; Addison Wesley.

J2ME: The Complete Reference; McGraw-Hill.

Beginning J2ME: From Novice to Professional; Apress.

Bruno de Sousa Monteiro www.brunomonteiro.com [email protected]