Você está na página 1de 16

Mdulo 5

Desenvolvimento de Aplicaes Mveis

Lio 1
Introduo

Verso 1.0 - Set/2007

JEDITM

Autor
A. Oliver de Guzman
Equipe
Rommel Feria
John Paul Petines

Necessidades para os Exerccios

Sistemas Operacionais Suportados


NetBeans IDE 5.5 para os seguintes sistemas operacionais:

Microsoft Windows XP Profissional SP2 ou superior

Mac OS X 10.4.5 ou superior

Red Hat Fedora Core 3

Solaris 10 Operating System (SPARC e x86/x64 Platform Edition)


NetBeans Enterprise Pack, poder ser executado nas seguintes plataformas:

Microsoft Windows 2000 Profissional SP4

Solaris 8 OS (SPARC e x86/x64 Platform Edition) e Solaris 9 OS (SPARC e


x86/x64 Platform Edition)

Vrias outras distribuies Linux


Configurao Mnima de Hardware
Nota: IDE NetBeans com resoluo de tela em 1024x768 pixel
Sistema Operacional

Processador

Memria

HD Livre

Microsoft Windows

500 MHz Intel Pentium III


workstation ou equivalente

512 MB

850 MB

Linux

500 MHz Intel Pentium III


workstation ou equivalente

512 MB

450 MB

Solaris OS (SPARC)

UltraSPARC II 450 MHz

512 MB

450 MB

Solaris OS (x86/x64
Platform Edition)

AMD Opteron 100 Srie 1.8 GHz

512 MB

450 MB

Mac OS X

PowerPC G4

512 MB

450 MB

Memria

HD Livre

Configurao Recomendada de Hardware


Sistema Operacional

Processador

Microsoft Windows

1.4 GHz Intel Pentium III


workstation ou equivalente

1 GB

1 GB

Linux

1.4 GHz Intel Pentium III


workstation ou equivalente

1 GB

850 MB

Solaris OS (SPARC)

UltraSPARC IIIi 1 GHz

1 GB

850 MB

Solaris OS (x86/x64
Platform Edition)

AMD Opteron 100 Series 1.8 GHz

1 GB

850 MB

Mac OS X

PowerPC G5

1 GB

850 MB

Requerimentos de Software
NetBeans Enterprise Pack 5.5 executando sobre Java 2 Platform Standard Edition
Development Kit 5.0 ou superior (JDK 5.0, verso 1.5.0_01 ou superior), contemplando
a Java Runtime Environment, ferramentas de desenvolvimento para compilar, depurar,
e executar aplicaes escritas em linguagem Java. Sun Java System Application Server
Platform Edition 9.

Para Solaris, Windows, e Linux, os arquivos da JDK podem ser obtidos para
sua plataforma em http://java.sun.com/j2se/1.5.0/download.html

Para Mac OS X, Java 2 Plataform Standard Edition (J2SE) 5.0 Release 4, pode
ser obtida diretamente da Apple's Developer Connection, no endereo: http://
developer.apple.com/java ( necessrio registrar o download da JDK).
Para mais informaes: http://www.netbeans.org/community/releases/55/relnotes.html

Desenvolvimento de Aplicaes Mveis

JEDITM

Colaboradores que auxiliaram no processo de traduo e reviso


Acio Jnior
Alexandre Mori
Alexis da Rocha Silva
Allan Souza Nunes
Allan Wojcik da Silva
Anderson Moreira Paiva
Andre Neves de Amorim
Angelo de Oliveira
Antonio Jose R. Alves Ramos
Aurlio Soares Neto
Bruno da Silva Bonfim
Carlos Fernando Gonalves
Denis Mitsuo Nakasaki

Fbio Bombonato
Fabrcio Ribeiro Brigago
Francisco das Chagas
Frederico Dubiel
Herivelto Gabriel dos Santos
Jacqueline Susann Barbosa
Joo Vianney Barrozo Costa
Kefreen Ryenz Batista Lacerda
Kleberth Bezerra G. dos Santos
Leandro Silva de Morais
Leonardo Ribas Segala
Lucas Vincius Bibiano Thom
Luciana Rocha de Oliveira

Luiz Fernandes de Oliveira Junior


Marco Aurlio Martins Bessa
Maria Carolina Ferreira da Silva
Massimiliano Giroldi
Mauro Cardoso Mortoni
Paulo Afonso Corra
Paulo Oliveira Sampaio Reis
Pedro Henrique Pereira de Andrade
Ronie Dotzlaw
Seire Pareja
Sergio Terzella
Vanessa dos Santos Almeida
Robson Alves Macdo

Auxiliadores especiais
Reviso Geral do texto para os seguintes Pases:

Brasil Tiago Flach


Guin Bissau Alfredo C, Bunene Sisse e Buon Olossato Quebi ONG Asas de Socorro

Coordenao do DFJUG

Daniel deOliveira JUGLeader responsvel pelos acordos de parcerias


Luci Campos - Idealizadora do DFJUG responsvel pelo apoio social
Fernando Anselmo - Coordenador responsvel pelo processo de traduo e reviso,
disponibilizao dos materiais e insero de novos mdulos
Rodrigo Nunes - Coordenador responsvel pela parte multimdia
Srgio Gomes Veloso - Coordenador responsvel pelo ambiente JEDITM (Moodle)

Agradecimento Especial
John Paul Petines Criador da Iniciativa JEDITM
Rommel Feria Criador da Iniciativa JEDITM

Desenvolvimento de Aplicaes Mveis

JEDITM

1. Objetivos
Nesta lio, discutiremos as caractersticas dos dispositivos mveis e a forma de iniciar o
desenvolvimento de aplicaes para estes dispositivos. Realizaremos uma introduo Java
Platform, Micro Edition (Java ME) incluindo a importncia das configuraes e perfis.
Ao final desta lio, o estudante ser capaz de:

Identificar as caractersticas dos dispositivos mveis

Descrever a arquitetura JME

Conhecer a personalizao das configuraes e perfis (CLDC e CDC)

Identificar as bibliotecas fornecidas pelo MIDP

Descrever o ciclo de vida de um MIDlet

Desenvolvimento de Aplicaes Mveis

JEDITM

2. Dispositivos Mveis
Dispositivos mveis podem variar em tamanho, projeto e layout, mas eles possuem algumas
caractersticas em comum que so totalmente diferentes de sistemas desktop.

Pequenos em tamanho
Dispositivos mveis so pequenos em tamanho. Consumidores desejam dispositivos pequenos
pela mobilidade e convenincia.

Memria Limitada
Dispositivos mveis tambm possuem pouca memria, tanto primria (RAM) quanto
secundria (disco). Esta limitao um dos fatores que afetam a escrita de classes para estes
tipos de dispositivos. Com quantidade limitada de memria, devemos fazer consideraes
especiais acerca da conservao no uso de recursos preciosos.

Poder de processamento limitado


Sistemas mveis no so poderosos como so os sistemas desktop quanto a sua organizao.
Tamanho, tecnologia e oramento so alguns dos fatores que influenciam a condio desses
recursos. Como o disco de armazenamento e RAM, apenas pequenos pacotes se adequam a
estes recursos.

Baixo consumo de energia


Dispositivos mveis possuem baixo consumo de energia em relao s mquinas desktop.
Estes dispositivos necessitam poupar o uso de energia, pois possuem um limitado
abastecimento atravs de baterias.

Robusto e confivel
Por serem dispositivos mveis provavelmente sero carregados. Precisam ser robustos o
suficiente para suportarem a fora de impacto, movimento e ocasionalmente quedas.

Conectividade limitada
Dispositivos mveis tm baixa largura de banda, alguns deles no suportam conexo. Outros
destes usam conexes de rede sem fio.

Curto tempo de inicializao


Estes dispositivos inicializam-se em segundos. Tomemos o caso de telefones mveis: eles se
iniciam em segundos e as pessoas no ficam com estes desligados mesmo noite. PDAs
inicializam no segundo em que pressionado o boto de ligar.

Desenvolvimento de Aplicaes Mveis

JEDITM

3. Viso sobre a Java ME


3.1. Plataforma Java
Java foi criado em 1991 por James Gosling, da Sun Microsystems. Inicialmente chamada de OAK,
em homenagem a rvore que ficava do lado de fora vista da janela de Gosling, este nome foi
modificado para Java porque j existia uma linguagem chamada OAK.
A motivao original para Java estava na necessidade para uma linguagem independente de
plataforma que fosse embarcada em vrios produtos eletrnicos de consumo como torradeiras e
refrigeradores. Um dos primeiros projetos desenvolvidos usando Java foi um controle remoto
pessoal chamado de Star 7.
Nessa mesma direo, e ao mesmo tempo, a World Wide Web e a Internet estavam ganhando
popularidade. Gosling tornava Java capaz de ser usada para a programao para Internet.
Com o lanamento da verso 1.2, a plataforma Java foi classificada em vrias plataformas: Java
Standard Edition (Java SE), Java Enterprise Edition (Java EE), Java Micro Edition (Java ME) e Java
Card API.
Java SE Java Platform, Standard Edition

aplicaes desktop

Java EE Java Platform, Enterprise Edition aplicaes corporativas com nfase no modelo de
desenvolvimento server-side incluindo servlets, JSP,
EJB e XML
Java ME Java Platform, Micro Edition

mveis e dispositivos de mo

JavaCard

Cartes com chip

Servidores
Servers
Mquinas
desktop
Dispositivos
de alto
consumo

Pacotes
Opcionais
Pacotes
Opcionais

Dispositivos
de baixo
consumo
Cartes
com chip

Java EE

Personal Profile

Java SE

Foundation Profile

MIDP

CDC

CLDC

Java
Card

KVM

Card VM

Mquina Virtual Java

Java Micro Edition (Java ME)


Figura
Desenvolvimento de Aplicaes Mveis

1: A plataforma

Java
6

JEDITM

3.2 Viso Geral do JME


A Plataforma Java Micro Edition (Java ME) um conjunto de especificaes e tecnologias que tm
o foco em dispositivos pessoais. Estes dispositivos tm uma quantidade limitada de memria,
menor poder de processamento, pequenas telas e baixa velocidade de conexo.
Com a proliferao dos dispositivos pessoais, desde telefones, PDAs, videogames portteis a
aplicaes domsticas, Java fornece um nico ambiente porttil de desenvolvimento e execuo
destes dispositivos.
Classes JME, assim como todas as classes Java, so interpretadas. Elas so compiladas em byte
codes e interpretadas por uma Mquina Virtual Java (JVM). Isto significa que estas classes no
so afetadas pelas peculiaridades de cada dispositivo. O JME fornece uma interface consistente
com os dispositivos. As aplicaes no tm que ser recompiladas para poderem ser executadas
em diferentes aparelhos.
No ncleo do JME esto uma configurao e perfis. Uma configurao define um ambiente de
execuo bsico para um sistema JME. Isto define as caractersticas das bibliotecas principais, da
mquina virtual, segurana e comunicao em rede.

Aplicaes
Pacotes
Opcionais

Perfis
Configurao

OEM
APIs

Bibliotecas
Mquina Virtual Java

Sistema Operacional do Dispositivo


Figura

2: Arquitetura do JME

Um perfil adiciona uma biblioteca para certas classes de dispositivos. Os perfis fornecem
bibliotecas da API de interface com o usurio, persistncia e mensagens, entre outras.
Um conjunto ou pacote opcional de bibliotecas que fornecem classes funcionais adicionais. A
incluso destes pacotes no JME pode variar porque depende da capacidade do dispositivo. Por
exemplo, alguns dispositivos MIDP no possuem Bluetooth, logo as APIs de Bluetooth no so
includas nestes dispositivos.

3.3 Configurao
Uma configurao define caractersticas mnimas de um ambiente de execuo Java completo.
Para garantir tima portabilidade e interoperabilidade entre vrios tipos de requisitos de recursos
de dispositivos (restries de memria, processador e conexo), as configuraes no contm as
mesmas caractersticas opcionais. Uma configurao JME define um complemento mnimo da
tecnologia Java. Ela baseia-se nos perfis para definir bibliotecas adicionais (opes possveis) para
uma determinada categoria de dispositivo.
Uma configurao define:

o subconjunto da linguagem de programao Java

a funcionalidade da Mquina Virtual Java (JVM)

bibliotecas do ncleo da plataforma

caractersticas de segurana e comunicao em rede

Desenvolvimento de Aplicaes Mveis

JEDITM

3.4 Perfis
Um perfil define um conjunto adicional de bibliotecas e caractersticas de empresas, de categoria,
de dispositivo ou de indstria. Enquanto uma configurao define uma base de bibliotecas, perfis
definem as bibliotecas que so importantes para construir aplicaes efetivas. Estas bibliotecas
incluem a interface com o usurio, comunicao em rede e classes de armazenamento.

Desenvolvimento de Aplicaes Mveis

JEDITM

4. CLDC
A Configurao de Dispositivos de Conexo Limitada (Connected Limited Device Configuration
CLDC) define e enderea as seguintes reas:

Caractersticas da linguagem Java e Mquina Virtual (JVM)

Bibliotecas de ncleo (java.lang.*, java.util.*)

Input/Output (java.io.*)

Segurana

Comunicao em rede

Internacionalizao

4.1. Caractersticas Removidas


Algumas caractersticas do JSE que foram removidas do CLDC:

finalizao de instncias de classes

excees assncronas

algumas classes de erros

carregadores de classes definidas pelo usurio

reflexo

Java Native Interface (JNI)

grupos de processos e processos daemon

Reflexo, Java Native Interface (JNI) e carregadores de classes definidas pelo usurio so
potenciais falhas de segurana. JNI exigem muita memria e pode no ser suportada por
dispositivos mveis de pouca memria.

4.2. Caractersticas dos Dispositivos CLDC


Os dispositivos atingidos pelo CLDC possuem estas caractersticas:

no mnimo 192kb de memria para a plataforma Java (160kb de memria no-voltil para
Mquina Virtual e bibliotecas e 32kb de memria voltil para execuo da Mquina Virtual)

processador de 16 ou 32 bits

baixo consumo de energia (normalmente os que utilizam baterias)

conexo limitada ou intermitente com velocidade tambm limitada (normalmente wireless)

A CLDC no define instalao da aplicao e ciclo de vida, interfaces com o usurio e tratamento
de eventos. Est para os perfis abaixo da CLDC definir estas reas. Em particular, a especificao
MIDP que define uma aplicao de MIDP (MIDlet) que possui um ciclo de vida, biblioteca Grfica
e controle de eventos (classes javax.microedition.lcdui.*).

4.3. Verificao de Classe


A especificao CLDC exige que todas as classes passem por um processo de verificao de duas
fases. A primeira verificao (pr-verificao) dever est terminada antes da instalao no
dispositivo. A segunda verificao ocorre no dispositivo durante a execuo, realizada pela
Mquina Virtual Java (JVM).

Desenvolvimento de Aplicaes Mveis

JEDITM

File.java

Instalao

compilar (javac)

verificar
(execuo)

File.class

interpretar

pr-verificar

File.class

Mquina de
Desenvolvimento
Figura

3: Processo

Dispositivo

de Verificao em duas fases

4.4. O Framework Genrico de Conexo (GCF)


O Framework Genrico de Conexo fornece as APIs bsicas para conexo em CLDC. Este
framework fornece uma base comum para conexes como HTTP, Sockets e Datagramas. O GCF
fornece um conjunto genrico e comum de APIs que abstraem todos os tipos de conexo. Note-se
que nem todos os tipos de conexes so exigidas para serem implementados em dispositivos
MIDP.
A hierarquia de interface extensvel do GCF torna a generalizao possvel. Novos tipos de
conexes podem ser adicionados neste framework atravs de extenses desta hierarquia.

Connection

StreamConnectionNotifier

DatagramConnection

InputConnection

OutputConnection

StreamConnection

ContentConnection

Figura 4: A Hierarquia de Conexo GCF

Desenvolvimento de Aplicaes Mveis

10

JEDITM

5. CDC
A Configurao de Dispositivo Conectada (CDC - Connected Device Configuration) um superconjunto da CLDC. Ela prov um ambiente de execuo Java mais amplo que o da CLDC e um
ambiente mais prximo do da JSE.

Figura 5: Viso da CDC

A Mquina Virtual Java CDC (ou CVM) uma Mquina Virtual Java completa. A CDC contm todas
as APIs da CLDC. Ela prov um subconjunto maior das classes da JSE.
Como a CLDC, a CDC no define nenhuma classe de interface com o usurio. As bibliotecas de
interface com o usurio so definidas pelos perfis desta configurao.
As classes includas na CDC vm dos seguintes pacotes:

java.io
java.lang
java.lang.ref
java.lang.math
java.net
java.security
java.security.cert
java.text
java.util
java.util.jar
java.util.zip

CDC tambm inclui o Framework de Conexo Genrica. Ela requer tipos de conexo adicionais
como suporte para arquivo e datagrama.

Desenvolvimento de Aplicaes Mveis

11

JEDITM

6. JWTI
A Tecnologia Java Para a Indstria Sem Fio (JWTI - Java Technology for the Wireless Industry)
especifica um conjunto de servios e especificaes padro. De acordo com a especificao JWTI,
seu principal objetivo "minimizar a fragmentao de APIs no mercado de telefones celulares, e
entregar uma especificao clara e previsvel para os fabricantes de dispositivos, operadores e
desenvolvedores de aplicao".
Por atenderem JWTI, as aplicaes rodaro em um conjunto maior de dispositivos. Os
fabricantes de dispositivos iro se beneficiar tambm porque um conjunto maior de aplicaes
estar disponveis para seus dispositivos.

MIDlets
MIDP 2.0

WMA
1.1

MMAPI Pacotes
1.1
Opcionais

OEM
APIs

CLDC 1.0 or 1.1


Sistema Operacional do Dispositivo
Figura 6: Componentes JWTI

Desenvolvimento de Aplicaes Mveis

12

JEDITM

7. MIDP
O Perfil de Dispositivo de Informao Mvel (MIDP - Mobile Information Device Profile) contrudo
sobre a CLDC. No se deve escrever aplicaes mveis teis apenas usando as APIs CLDC. na
MIDP que as APIs de interface com o usurio so definidas.
A especificao MIDP, assim como a CLDC e outras APIs, foi definida atravs do Java Community
Process (JCP). Foi envolvido um grupo de profissionais de mais de 50 empresas, composta de
fabricantes de dispositivos mveis, operadoras e desenvolvedores de software. A MIDP est
continuamente evoluindo, com futuras verses passando pelo mesmo rigor do processo do JCP.
Verses futuras do MIDP tero compatibilidade com as verses anteriores, como no caso do
MIDP1 e MIDP 2.0.
A especificao MIDP define que um dispositivo MID deve ter as seguintes caractersticas, no
mnimo:

Visor:
Tamanho da Tela: 96x54
Profundidade do Visor: 1-bit
Pixel aspect ratio: aproximadamente 1:1
Entrada:
Um ou mais dos seguintes mecanismos de entrada: teclado de uma mo, teclado de duas
mos ou tela de toque

Memria:
256 kilobytes de memria no voltil para a implementao MIDP, mais o que for requerido
pela CLDC
8 kilobytes de memria no voltil para os dados persistentes criados pela aplicao
128 kilobytes de memria voltil para o ambiente Java (ex. Java heap)

Rede:
Sem fio, duas vias, possivelmente intermitente, com largura de banda ilimitada

Som:
A habilidade de tocar sons, via hardware dedicado ou via software

MIDP define o modelo de aplicao, a API de interface com o usurio, o armazenamento


persistente e a rede, API de mdia e jogos, polticas de segurana, entrega da aplicao e
provisionamento over-the-air.

Desenvolvimento de Aplicaes Mveis

13

JEDITM

8. MIDlet
Uma aplicao MIDP chamada de MIDlet. O software de gerenciamento da aplicao (AMS Application Management Software) do dispositivo interage diretamente com o MIDlet com os
mtodos de criar, iniciar, pausar e destruir o MIDlet.
O MIDlet parte do pacote javax.microedition.midlet. Necessita estender a classe MIDlet. E pode
requisitar parmetros do AMS conforme definido no descritor da aplicao (JAD Java Application
Descriptor).
Um MIDlet no utiliza o mtodo public static void main(String[] args). Caso possua, este no ser
reconhecido pelo AMS como o ponto de incio do programa.

8.1. Ciclo de Vida do MIDlet


A vida de um MIDlet comea quando ele instanciado pelo AMS. Ele inicialmente entra no estado
pausado aps ser criado com comando new. O AMS chama o construtor pblico sem argumento
do MIDlet. Se uma exceo ocorrer no construtor, o MIDlet colocado no estado destrudo e
descartado imediatamente.
O MIDlet entra no estado ativo depois de se chamar o mtodo startApp() pelo AMS.
O MIDlet entra no estado destrudo quando o AMS chama o mtodo destroyApp(). Este estado
tambm atingido quando o mtodo notifyDestroyed() retorna com sucesso para a aplicao.
Observe que o MIDlet entra no estado destrudo somente uma vez no seu tempo de vida.

new
destroyApp()

startApp()

Pausado
Destrudo
Ativo

pauseApp()

destroyApp()

Figura 7: Ciclo de Vida do MIDlet

8.2 MIDlet Suites


As aplicaes de MIDP so empacotadas e entregues aos dispositivos como MIDlet suites. Um
MIDlet suite consiste em um Arquivo Java (JAR) e, opcionalmente, um descritor de aplicao Java
(JAD).
Um arquivo JAD um arquivo texto contendo um conjunto de atributos, alguns dos quais so
requeridos.

Desenvolvimento de Aplicaes Mveis

14

JEDITM

9. Exerccios
9.1. Quais so as vantagens do uso de Java como plataforma de
desenvolvimento e execuo para os dispositivos mveis?

aplicaes altamente portteis


interfaces ricas, bem definidas para o dispositivo
espao de memria baixa (KVM)
ambiente execuo seguro
aplicaes dinmicas (podem carregar aplicaes para um dispositivo)

9.2. O que o motivaria


dispositivos mveis?

para

escrever

o desafio de escrever aplicaes otimizadas

novos conhecimentos

fator diverso

Desenvolvimento de Aplicaes Mveis

para

programas

para

15

os

JEDITM

Parceiros que tornaram JEDITM possvel

Instituto CTS
Patrocinador do DFJUG.
Sun Microsystems
Fornecimento de servidor de dados para o armazenamento dos vdeo-aulas.
Java Research and Development Center da Universidade das Filipinas
Criador da Iniciativa JEDITM.
DFJUG
Detentor dos direitos do JEDITM nos pases de lngua portuguesa.
Banco do Brasil
Disponibilizao de seus telecentros para abrigar e difundir a Iniciativa JEDITM.
Politec
Suporte e apoio financeiro e logstico a todo o processo.
Borland
Apoio internacional para que possamos alcanar os outros pases de lngua
portuguesa.
Instituto Gaudium/CNBB
Fornecimento da sua infra-estrutura de hardware de seus servidores para que os
milhares de alunos possam acessar o material do curso simultaneamente.

Desenvolvimento de Aplicaes Mveis

16