Aplicações Móveis com J2ME

Post on 06-Jun-2015

5.829 views 4 download

Transcript of Aplicações Móveis com J2ME

Aplicações Móveis com J2ME

Claudio Montenegroclaudio.montenegro@datasul.com.br

GU Java SUCESU-SC

Fabricação de Microprocessadores

- Intel: 100 milhões/ANO

- Motorola: 35 milhões/MÊS

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

- 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?

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

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

- 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'

A Plataforma Java 2

A Plataforma JavaJava 2 Runtime Environment

Platforms

Java Virtual Machine

Core APIs

Integration APIs

User Interface Toolkits

Deployment Technologies

Como colocar Java em pequenos dispositivos?

Como colocar Java em pequenos dispositivos?

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?

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.

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.

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

- Possui arquitetura bastante modularizada.

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

Algumas das Empresas que Suportam J2ME

Arquitetura Modular

- 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

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

Relação entre as Configurações

J2SE CDC                         CLDC

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.

CLDC + MIDP

Pacotes do CLDC

- java.lang

- java.io

- java.util

- javax.microedition.io

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

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”

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

Exemplos de Aplicações Móveis com J2ME

- Entretenimento

- Internet

- Educação

- Produtividade

- Utilitários

- e-commerce

- Empresarial

Entretenimento

ChessBuddy

Commics

Spruce GO Metris

Foto Fun PopStar

Dragon Island Prince of Persia

Desailly Pro Soccer

Entretenimento

Racing Fever

Internet

jBrowser e-mail Viewer

MiMessager Azure

Produtividade/Educação

Micro Reader Jtask - ToDo Periodic Table

Utilitários

QuickShop Fly Cam

CroWeather First Aid Guide

e-commerce

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

e-commerce

e-commerce

e-commerce

e-commerce

e-commerce

e-commerce

e-commerce

e-commerce

Empresariais

Datasul CRM SFA

Empresariais

Datasul CRM SFA

Onde obter MIDLETS:

- www.midlet.org

- www.microjava.com

- www.handango.com

- www.zgroup-mobile.com

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

- wireless.java.sun.com

- www.jbenchmark.com

- site do fabricante

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

Nokia Developers Suite for J2ME

Motorola SDK for J2ME

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

­ 

J2ME Wireless Toolkit

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

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)

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); }

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();

} }

}

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

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

Exemplo de Celular como Ferramenta de Controle Remoto

App Server

Internet

Servlet

x,y x,y

HTTPHTTP

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