Aplicações Móveis com J2ME

62
Aplicações Móveis com J2ME Claudio Montenegro [email protected] GU Java SUCESU-SC

Transcript of Aplicações Móveis com J2ME

Page 1: Aplicações Móveis com J2ME

Aplicações Móveis com J2ME

Claudio [email protected]

GU Java SUCESU-SC

Page 2: Aplicações Móveis com J2ME

Fabricação de Microprocessadores

- Intel: 100 milhões/ANO

- Motorola: 35 milhões/MÊS

Page 3: Aplicações Móveis com J2ME

Popularização de DispositivosMicroprocessados e Programáveis

Tendência mundial de utilização de Java como a plataforma de desenvolvimento de aplicações para tais dispositos...

Page 4: Aplicações Móveis com J2ME

- Mercado de US$ 6.0 bilhões em 'mobile games' em 2004. fonte: Gartner Group

- Mercado de US$12,9 bilhões em aplicações 'mobile office' em 2005. fonte: Yankee

Porque tanto interesse em Aplicações Móveis?

Page 5: Aplicações Móveis com J2ME

Porque Java para pequenos dispositivos?

- Independência de Plataforma- Orientação a Objetos- Networking- Segurança- Tratamento de Exceções- Multithreads- ...- ... e o mais importante, PADRONIZAÇÃO

Page 6: Aplicações Móveis com J2ME

Porque Java para pequenos dispositivos?

Padronização:

- A tecnologia Java está em 100 % das listas de padrões da empresas 'Fortune 500'. fonte: IBM

Plataforma:

- 78 % dos executivos vêem a tecnologia Java como a melhor plataforma para Web Services. fonte: Giga, Computerworld

Page 7: Aplicações Móveis com J2ME

- Java é a plataforma líder em aplicações móveis, 53 operadoras de telefonia celular no mundo já fazem 'deploy' de aplicações J2ME. Mais 11 estão em testes.

- Já existem mais de 150 dispositivos 'Java Enabled' de 22 fabricantes.

- Serão 841 milhões de celulares Java em 2004 e 1.1 bilhão em 2006. fonte: ARC Group

Dispositivos 'Java Enabled'

Page 8: Aplicações Móveis com J2ME

A Plataforma Java 2

Page 9: Aplicações Móveis com J2ME

A Plataforma JavaJava 2 Runtime Environment

Platforms

Java Virtual Machine

Core APIs

Integration APIs

User Interface Toolkits

Deployment Technologies

Page 10: Aplicações Móveis com J2ME

Como colocar Java em pequenos dispositivos?

Page 11: Aplicações Móveis com J2ME

Como colocar Java em pequenos dispositivos?

Page 12: Aplicações Móveis com J2ME

Subset da API do J2SE

JVM Adequada

API Complementar 

+

+

Resposta:

Criando-se um

JRE apropriado

para as capacidades

do dispositivo.

Como colocar Java em pequenos dispositivos?

Page 13: Aplicações Móveis com J2ME

www.jcp.org

- Organização aberta de abrangência mundial,

focada na padronização da plataforma Java.

- Mais de 660 empresas e participantes

individuais.

JCP é maneira através da qual

a plataforma Java evolui.

Page 14: Aplicações Móveis com J2ME

A Plataforma J2MEJava 2 Micro Edition

J2ME define um padrão para colocar Java dentro de dispositivos que não possuem o poder de processamento de ambientes J2SE completos. Dispositivos como PDAs, celulares, TVs, eletrodomésticos, computadores de bordo e muitos outros.

Page 15: Aplicações Móveis com J2ME

- Com J2ME é possível construir ambientes de execução Java (runtime environments) muito pequenos, menores que 200 Kbytes.

- Possui arquitetura bastante modularizada.

J2ME

Page 16: Aplicações Móveis com J2ME

Atualmente existem 52 JSRs (Java Specification Request)

relacionadas com J2ME

Algumas delas:

JSR 66 – RMI Optional Package

JSR 120 – Wireless Messaging API

JSR 134 – Java Game Profile

JSR 135 – Mobile Media API

JSR 82 – Java APIs for Bluetooth

JSR 184 – Mobile 3D Graphics API

Page 17: Aplicações Móveis com J2ME

Algumas das Empresas que Suportam J2ME

Page 18: Aplicações Móveis com J2ME

Arquitetura Modular

Page 19: Aplicações Móveis com J2ME

- Define a mínima plataforma Java para um conjunto de dispositivos comuns.

- Suporta um ou mais 'profile'

- Definido através do Java Comunity Process(JCP)

Configurations

Page 20: Aplicações Móveis com J2ME

Configurações Atuais

- Connected Device Configuration (CDC) . Web Phones . Computadores de Bordo . Network-capable devices

- Connected Limited Device Configuration (CLDC) . Celulares . PDAs . Pagers CDC 1.0 – JSR 36

CDC 1.1 – JSR 218CLDC 1.0 – JSR 30CLDC 1.1 – JSR 139

Page 21: Aplicações Móveis com J2ME

Relação entre as Configurações

J2SE CDC                         CLDC

Page 22: Aplicações Móveis com J2ME

Profiles

- Complementam a Configuração para prover capacidades para uma família específica de dispositivos ou segmento da indústria.

- Provê flexibilidade e optimiza portabilidade.

- Frequentemente provê UI, tratamento de evento e mecanismos de persistência.

Page 23: Aplicações Móveis com J2ME

CLDC + MIDP

Page 24: Aplicações Móveis com J2ME

Pacotes do CLDC

- java.lang

- java.io

- java.util

- javax.microedition.io

Page 25: Aplicações Móveis com J2ME

MIDP - Mobile Information Device Profile

Pacotes:- java.lang- java.io- java.util- javax.microedition.io- javax.microedition.lcd- javax.microedition.midlet- javax.microedition.rms

MIDlet – aplicação móvel desenvolvida para MIDP

Page 26: Aplicações Móveis com J2ME

MIDP 1.0 – JSR 37

MIDP 2.0 – JSR 118

Algumas Melhorias no MIDP 2.0

- HTTPS

- Multimídia: suporte para áudio/vídeo

- Itens de tela customizados (GUI)

- Game API

- “Push Registry - incoming network connections”

Page 27: Aplicações Móveis com J2ME

arquivo.jad

arquivo.jar

http://www...../arquivo.jad

arquivo.jad

http://www...../arquivo.jad

arquivo.jad

http://www...../arquivo.jar

arquivo.jar

Web Server

Instalação de MIDlets

Page 28: Aplicações Móveis com J2ME

Exemplos de Aplicações Móveis com J2ME

- Entretenimento

- Internet

- Educação

- Produtividade

- Utilitários

- e-commerce

- Empresarial

Page 29: Aplicações Móveis com J2ME

Entretenimento

ChessBuddy

Commics

Spruce GO Metris

Foto Fun PopStar

Page 30: Aplicações Móveis com J2ME

Dragon Island Prince of Persia

Desailly Pro Soccer

Entretenimento

Racing Fever

Page 31: Aplicações Móveis com J2ME
Page 32: Aplicações Móveis com J2ME
Page 33: Aplicações Móveis com J2ME

Internet

jBrowser e-mail Viewer

MiMessager Azure

Page 34: Aplicações Móveis com J2ME

Produtividade/Educação

Micro Reader Jtask - ToDo Periodic Table

Page 35: Aplicações Móveis com J2ME

Utilitários

QuickShop Fly Cam

CroWeather First Aid Guide

Page 36: Aplicações Móveis com J2ME

e-commerce

Piranha Pricecheck - http://mpowers.net/piranha

Page 37: Aplicações Móveis com J2ME

e-commerce

Page 38: Aplicações Móveis com J2ME

e-commerce

Page 39: Aplicações Móveis com J2ME

e-commerce

Page 40: Aplicações Móveis com J2ME

e-commerce

Page 41: Aplicações Móveis com J2ME

e-commerce

Page 42: Aplicações Móveis com J2ME

e-commerce

Page 43: Aplicações Móveis com J2ME

e-commerce

Page 44: Aplicações Móveis com J2ME

e-commerce

Page 45: Aplicações Móveis com J2ME

Empresariais

Datasul CRM SFA

Page 46: Aplicações Móveis com J2ME

Empresariais

Datasul CRM SFA

Page 47: Aplicações Móveis com J2ME

Onde obter MIDLETS:

- www.midlet.org

- www.microjava.com

- www.handango.com

- www.zgroup-mobile.com

Page 48: Aplicações Móveis com J2ME
Page 49: Aplicações Móveis com J2ME
Page 50: Aplicações Móveis com J2ME

Onde obter informações sobre aparelhos com suporte a J2ME

- wireless.java.sun.com

- www.jbenchmark.com

- site do fabricante

Page 51: Aplicações Móveis com J2ME
Page 52: Aplicações Móveis com J2ME
Page 53: Aplicações Móveis com J2ME

Ferramentas para o Desenvolvimento de Aplicações J2ME/MIDP

Nokia Developers Suite for J2ME

Motorola SDK for J2ME

Page 54: Aplicações Móveis com J2ME

http://java.sun.com/products/j2mewtoolkit/

­ 

J2ME Wireless Toolkit

Page 55: Aplicações Móveis com J2ME

IDEs para o Desenvolvimento de Aplicações J2ME/MIDP

- WebSphere Studio Device Developer

- Sun ONE Studio, Mobile Edition

- JBuilder MobileSet

- Simplicity for Java

- JDeveloper J2ME Extension

Page 56: Aplicações Móveis com J2ME

Etapas no Desenvolvimento de uma Aplicação MIDP

Código Fonte

(arquivos .java)

Binários

(arquivos .class)

Arquivo .jar

(.class + .png)

javac

preverify

jar

Arquivo .jad

Binários Pré-verificados

(arquivos .class)

Page 57: Aplicações Móveis com J2ME

Exemplo de Códigopackage exemplo;

import javax.microedition.midlet.*;import javax.microedition.lcdui.*;

public class Contador extends MIDlet implements CommandListener {

private Command cmdAdd;private Command cmdReset;private Command cmdExit;private Form frm;private StringItem strTotal;private int counter;

public Contador() {

// Cria e inicializa a tela principal frm = new Form("Contador");

strTotal = new StringItem("Total: ", "0");frm.append(strTotal);

// Cria e adiciona os Commands(botoes)cmdAdd = new Command("+", Command.SCREEN, 0);cmdReset = new Command("Reset", Command.SCREEN, 1);cmdExit = new Command("Sair", Command.SCREEN, 0);frm.addCommand(cmdAdd);frm.addCommand(cmdReset);frm.addCommand(cmdExit);

frm.setCommandListener(this); }

Page 58: Aplicações Móveis com J2ME

Exemplo de Código (cont.)

public void startApp() { Display.getDisplay(this).setCurrent(frm); }

public void pauseApp() { }

public void destroyApp(boolean b) { }

public void commandAction(Command cmd, Displayable disp) {

// Incrementa o contadorif (cmd == cmdAdd) { strTotal.setText(String.valueOf(++counter));

// Reseta o contador} else if (cmd == cmdReset) { counter = 0;

strTotal.setText("0");

// Sai da aplicacao} else {

destroyApp(false);notifyDestroyed();

} }

}

Page 59: Aplicações Móveis com J2ME

Exemplo de Arquivo JAD

MIDlet-Name: ContadorMIDlet-Jar-URL: contador.jarMIDlet-Jar-Size: 2509MIDlet-Version: 1.0MIDlet-1: Contador, /images/logo.png , exemplo.ContadorMIDlet-Description: Exemplo de MIDletMIDlet-Vendor: My CompanyMIDlet-Info-URL: http://www.mycompany.com

Page 60: Aplicações Móveis com J2ME

MIDlets em Palm OS

MIDP for PalmOShttp://java.sun.com/products/midp4palm/

Palm OS > 3.5

WebSphere Micro EnvironmentParceria Palm e IBMhttp://pluggedin.palm.com

Palm Tungsten

Virá de Fábrica

Page 61: Aplicações Móveis com J2ME

Exemplo de Celular como Ferramenta de Controle Remoto

App Server

Internet

Servlet

x,y x,y

HTTPHTTP

Page 62: Aplicações Móveis com J2ME

Referências

Java(tm) 2 Platform, Micro Editionhttp://java.sun.com/j2me

Wireless Developerhttp://wireless.java.sun.com/

Micro Java Networkhttp://www.microjava.com

Java(tm) 2 Platform Micro Edition, Wireless Toolkithttp://java.sun.com/products/j2mewtoolkit/

www.forum.nokia.com.br

www.motocoder.com.br