Introducao ao J2ME

Preview:

DESCRIPTION

Programaçao para celular usando Java

Citation preview

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

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

1

Teoricamente falando...

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)

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.

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

JME == Java Micro EditionJME != Java Mobile Edition

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.

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.

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.

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.

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

O que é um MIDlet? MIDlet

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

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

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.

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

2

Codificando...

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

“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. }

“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. }

“Alo Mundo”

3

Instalando seu MIDlet...

(OTA – Over The Air)

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.

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

1º) Empacotar aplicação

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

<wml><card>

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

</card></wml>

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

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 bruno84@gmail.com