Você está na página 1de 78

INTRODUO A J2ME

Prof. Dany Sanchez Dominguez y@ dany@labbi.uesc.br NBCGIB Sala 01 Semana de Informtica da UESC Setembro - 2010

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 1

Tema 1 Introduo. Introduo Arquitetura J2ME. J2ME Ambiente de desenvolvimento.


Semana de Informtica da UESC Setembro - 2010

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 2

Sumrio - 1
Introduo ao J2ME Tecnologias JAVA Arquitetura J2ME Configurations profiles e APIs Configurations, Configuraes: CDC e CLDC Profile: MDIP Plataformas JTWI e MSA J2ME vs J2SE
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 3

O Que J2ME?
Uma tecnologia Java mveis e sem fio. para dispositivos

Um dispositivo mvel aquele que pode ser transportado pelo usurio durante a sua p p operao. Um dispositivo sem fio aquele capaz de se comunicar com outro dispositivo ou uma rede de dispositivos sem o uso de cabos.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 4

Ciclo do JAVA
Inicio dos 90s, desenvolvimento dos eletroeletrnicos, g g p Necessidade de uma linguagem independente do dispositivo (portable), Linguagem simples e leve orientada a leve, sistemas embarcados, Oak/JAVA Aparece a JVM

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 5

Ciclo do JAVA
Meados dos 90s, surgimento da internet (www), Necessidade de incorporar recursos avanados p g , as pginas web estticas, Aparecem os JAVA/Applets,
Oak/JAVA

Applets

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 6

Ciclo do JAVA
Finais dos 90s, consolidao da internet (www), Necessidade de criar pginas web dinmicas, Dif so Difuso de aplicaes na arquitetura arq itet ra cliente/servidor de duas camadas, Aparecem as servlets.
Oak/JAVA

Applets

Servlets
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 7

Ciclo do JAVA
Ano 2000, expanso das TICs e as PCs, Necessidade de desenvolver aplicaes de p p propsito geral, g , Consolidao das aplicaes webs (internet/intranet), (internet/intranet) Aplicaes cliente/servidor multicamadas.
Oak/JAVA

J2SE/J2EE

Applets pp

Servlets
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 8

Ciclo do JAVA
Meados 00s, ampliao no uso de dispositivos moveis (celulares, pdas, GPS), fio, Surgimento e consolidao das redes sem fio Retorno as origens J2ME, Simplificao da JVM, Apenas os recursos indispensveis a API JAVA.
Oak/JAVA J2ME J2SE/J2EE Applets

Servlets

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 9

Tecnologias JAVA g
J2SE ncleo da linguagem JAVA e APIs orientadas a criao de aplicaes c/s desktop e applets c/s, applets, J2EE uma verso ampliada do J2SE com recursos orientados a redes, internet e intranets. APIs para desenvolver aplicaes webs e c/s multi-camada. p J2ME Inclui algumas caractersticas do ncleo t ti d l de JAVA, API para desenvolver aplicaes d l li em dispositivos pequenos.
Prof. Dany S. Dominguez/dany@labbi.uesc.br

J2EE

J2SE

J2ME

Tema 1 Slide 10

Plataforma alvo do J2ME


Caractersticas dos dispositivos (cliente-leve): Memria d id M i reduzida, Baixo poder de processamento, Comunicao com estreita largura de banda, Interface de usurio limitada,
Smart card Pages P Telefones celulares Assistentes A i t t pessoais i digitais (PDAs) P t de venda Pontos d d Comunicadores de bolso Si t Sistemas d navegao de de vehiculos Internet TV Set-top boxes
Tema 1 Slide 11

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Arquitetura J2ME
Precisamos um especificao para dispositivos leves que no apresentam um padro de hardware. Obj i Objetivos: Suportar uma variedade de dispositivos com diferente nveis de recursos recursos. Suportar funcionalidades especficas dos diversos dispositivos dispositivos. Manter uma arquitetura comum.
2. 2 Portabilidade

1. Flexibilidade
Prof. Dany S. Dominguez/dany@labbi.uesc.br

3. Uniformidade
Tema 1 Slide 12

Arquitetura J2ME q
Como obter portabilidade, uniformidade? if id d ? flexibilidade e
O padro foi definido em vrios nveis, p , J2ME formado por Configurations, Profiles e API opcionais p Configuration Especificao para uma famlia de dispositivos p p p baseada na restries de memria e poder de p ocessa e o processamento. Define o ambiente de execuo (JRE) e as classes do ncleo JAVA disponveis no dispositivo.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 13

Arquitetura J2ME q
Profiles Prov uma API especfica para um grupo de dispositivos ou um nico dispositivo. p p Consiste em um grupo de classes que implementam as funcionalidades encontradas em um dispositivo. Profiles so baseados em um determinada configuration. g

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 14

Arquitetura J2ME q
API Opcionais Prov funcionalidades adicionais (especficas para uma certa tecnologia) que podem ser usadas em conjunto com um ou mais profiles. d j t i fil
J2ME = Configuraton + Profile + APIs Opcionais Aplicao J2ME p
API Profile Configuration C fi ti
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 15

JAVA COMMUNITY PROCESS (JCP)


JCP o forum para desenvolvimento da tecnologia J2ME, J2ME Propostas de configurations, profiles e APIs opcionais so enviadas ao forum, As propostas so avaliadas para obter o concenso da comunidade e da industria de dispositivos, Um dos objetivos evitar a fragmentao, j g , Configurations, profiles e APIs opcionais aparecem primeiro como uma requisio ou Java Specification Request (JSR), Consultar o site www jcp org (visitar) www.jcp.org (visitar).
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 16

Configurations
Configurations so especificaes da arquitetura J2ME que d fi definem: Caracteristicas da Linguagem Java Biblioteca de Classes de Baixo Nvel Caracteristicas da Mquina Virtual Atualmente duas configurations so suportadas em J2ME: CDC - Connected Device Configuration CLDC - Connected Limited Device Configuration
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 17

CDC - Configuration
Requisitos de hardware: e a O a5 b ( dea b) Memria ROM mnima 512 Kb (ideal >2 Mb) Memria RAM mnima 256 Kb (ideal >1 Mb) Algum tipo de conexo em rede (ideal banda larga) Mquina Virtual: CVM - C Virtual Machine Compatvel com a JVM mas a sua implementao otimizada para dispositivos em rede Garbage Collector separado da VM
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 18

CLDC - Configuration
Requisitos de hardware: Memria ROM mnima 160Kb Memria RAM mnima 32Kb Algum tipo de conexo em rede (banda estreita ou intermitente) Maquina virtual: KVM -K(ilobyte)Virtual Machine K(ilobyte)Virtual Verso simplificada da JVM
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 19

CLDC Caractersticas da KVM


CLDC 1.0 (elimina da JVM) Java Native Interface Tipos de Ponto Flutuante (float e double) Verificao de classes Simplifica o tratamentos de excees Funes avanadas de threads CLDC 1.1 (inclui na CLDC 1.0) Suporte a ponto flutuante
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 20

CDC e CLDC - Dispositivos


CDC: Set-top boxes Sistemas de navegao Terminais de ponto de venda Smartphones CLDC: Pagers Assistentes pessoais digitais (PDAs) Telefones celulares, Terminais dedicados
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 21

CDC e CLDC - Relao


CDC CLDC 1.1 CLDC 1.0

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 22

Profiles
Profiles so conjuntos de especificaes e APIs necessrias ao desenvolvimento de aplicaes para um grupo mais restrito de dispositivos dentro de uma determinada configuration Definies tpicas de um profile Tipo de interface com o usurio Mtodos de entrada Mecanismo local de armazenamento Mecanismo de conexo com a rede
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 23

Profiles
Configuration Profile (46) Foundation Profile 1.0 CDC (62) Personal Profile 1.0 Descrio a base para o desenvolvimento de outros p profiles Interfases avanadas, mltiplas janelas

(217) Personal Basis Profile 1.1 Interfaces simples, uma janela. CLDC (118) Mobile Information Device Celulares e palm tops Profile 2.0 ( ) (75) PDA Profile 1.0 PDAs maior capacidade p de memria e tela maior

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 24

MIDP Mobile Information Device Profile


Em adio as caractersticas da configuration CLDC o MIDP 2.0 oferece: Memria M i ROM mnima 256 Kb i Memria RAM mnima 128 Kb Memria Persistente mnima 8kb Tela com pelo menos 96x54 pixels Alguma dispositivo de entrada (teclado, teclado t l d numrico ou t l sensvel ao t i tela l toque) ) Conexo de duas vias em rede (possivelmente intermitente)
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 25

APIs Opcionais p
(75) PDA Optional Packages for J2ME ( ) p g (82) Java APIs for Bluetooth ( (135) Mobile Media API 1.11 ) (84) Mobile 3D Graphics http://jsp.org/jsr/detail/184.jsp (179) Location API for http://jcp.org/jsr/detail/179.jsp (120) Wireless Messaging API 1.0 e 2 0 1 0 2.0 (172) Web Services APIs http://jsp.org/jsr/detail/172.jsp (66) RMI Optional Package http://jcp.org/jsr/detail/66.jsp

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 26

Configurations e Profiles em J2ME g

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 27

Plataforma para celulares p

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 28

Especificaes = Padronizao? p
Para executar uma aplicao J2ME o dispositivo deve das suporte a Configuration (hardware + JVM), Profiles (hardware + interfase) e APIs Opcionais (funcionalidades) utilizadas, Os fabricantes de dispositivos no seguem um padro especfico ao construir e lanar seus equipamentos, N Novas f funcionalidades aparecem a cada l i lid d d lanamento, t dficil para o desenvolvedor saber os recursos disponveis no dispositivo alvo de de sua aplicao, q O que fazer?
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 29

Padronizao da plataforma p
Criar especificaes guarda-chuva (plataformas), Prov uma API de referncia e um kit de teste de compatibilidade (TCK) para um determinado ambiente (C fi bi t (Configuration+Profile+APIs O i ti P fil API Opcionais), i ) Plataformas disponveis: Java Technology for Wireless Industry JTWI Mobile Service Architecture - MSA
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 30

Plataforma JTWI
Um dispositivo compatvel com a JTWI deve suportar: CLDC 1 1 1.1, MIDP 2.0, Wireless Messaging API 1.0. Se o dispositivo JTWI suporta a apresentao de vdeo e udio, o dispositivo deve suportar: Mobile Media API 1 1 1.1
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 31

Plataforma MSA

JTWI

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 32

Plataforma celulares

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 33

Limitaes do J2ME
J2ME no J2SE, aplicaes desenvolvidas para J2SE no podem ser executadas diretamente em J2ME J2ME, O mantra: write-once-run-anywhere, A maquina virtual em J2ME tem caractersticas particulares, No existe command prompt, a execuo de aplicaes controlada pelo software de g gerenciamento de aplicaes (AMS). p ( )
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 34

Gerenciamento de Aplicaes (AMS) p ( )


O AMS interage com as aplicaes nativas do dispositivo, Controla o ciclo de vida da de aplicao verso, (instalao, upgrades, controle

desinstalao), O AMS responsvel por iniciar, gerenciar, executar e parar a aplicao, Garante a segurana no funcionamento dos p servios esencias do dispositivo.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 35

J2ME vs J2SE
Limitaes nas operaes de ponto flutuante (parcialmente resolvido no MIDP2.0), finalize(), Ausncia do mtodo finalize() utilizado em J2SE sempre que um termina instancia de classe (verificao e liberao de recursos), Reduo no tratamento de excees e erros, No existe o carregador de classes (o carregador fornecido pelo fabricante do p ), dispositivo),
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 36

J2ME vs J2SE
No esta disponvel a classe ThreadGroup, a programao multi-thread implementada a nvel de objeto objeto, No podem ser utilizados programas ou APIs escritos em outras linguagens, No existe o Security Manager na JVM para realizar a verificao de classes, feita uma pre-verificao em tempo de compilao. g Devemos ter cuidado com cdigo malicioso.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 37

Sumrio - 2
Desenvolvendo aplicaes MIDP A classe MIDlet, Ciclo de vida de uma MIDlet MIDlet, Ambiente de desenvolvimento, Minha primeira MIDlet, WTK, O emulador WTK Mltiplas MIDlets no MIDlet suite, Boas prticas em J2ME, p Atividade prtica.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 38

Desenvolvendo aplicaes MIDP p


Uma aplicao MIDP uma aplicao J2ME desenhada para executar em um dispositivo com suporte a MIDP MIDP, Uma aplicao MIDP chamada de MIDlet, Toda aplicao MIDP uma instncia de uma sub-classe da classe abstrata MIDlet, , A MIDlet estabelece uma interface entra a aplicao e o soft are de gerenciamento de software aplicaes (AMS) no dispositivo,
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 39

Desenvolvendo aplicaes MIDP p


O AMS controla a instalao, execuo e mudanas de d estados d uma aplicao MIDl d de li MIDlet, Uma MIDlet a porta de entrada de todas as aplicaes MIDP, Frequentemente varias MIDlets relacionadas so q agrupadas em um MIDlet suite, Todas as MIDlets dentro de um MIDlet suite so instaladas e desinstaladas como um grupo, Os membros de um MIDlet suite compartilham recursos do dispositivo e instancias de classes na KVM, KVM
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 40

Desenvolvendo aplicaes MIDP


Se trs MIDlets de um MIDlet suite executam a mesma classe apenas uma instancia da classe criada na KVM, As MIDlets de um MIDlet suite so carregadas simultaneamente, entretanto elas podem ser executadas por separado.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 41

Desenvolvendo aplicaes MIDP


Para distribuir uma aplicao trs arquivos devem ser fornecidos: MIDlet_Suite_Name.jar, Java manifest.fm, lista de atributos e definies utilizados pelo AMS para instalar a aplicao no di dispositivo. ii MIDlet_Suite_Name.jad, Descriptor de aplicaes Java, prov informaes adicionais ao AMS sobre a estrutura do arquivo jar jar.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 42

arquivo

executavel

Arquivo de manifesto

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 43

Arquivo JAD

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 44

Ciclo de desenvolvimento - MIDlet


Edio do Cdigo Fonte Compilao Pr-Verificao Empacotamento Testes Distribuio
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 45

A Classe Abstrata MIDlet

startApp, Q t tA Quando a aplicao MIDl t i t d li MIDlet instanciada, o i d AMS do dispositivo faz uma chamada para este mtodo, pauseApp, Este mtodo chamado quando o dispositivo necessita suspender a atividade da MIDlet para executar outra atividade, destroyApp, Este mtodo chamado quando o dispositivo solicita que a aplicao seja fechada.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 46

A menor aplicao MIDlet

O argumento unconditional no mtodo destroyApp informa se a aplicao deve ser irremediavelmente destruda (true) ou pode atravs de uma exceo pode, exceo, tentar continuar rodando (false).
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 47

O Ciclo de Vida de uma MIDlet


Estados: paused, uma instancia da MIDlet foi construda e esta i ti t inativa, active, a instancia da MIDlet esta ativa, destroyed, destroyed a MIDlet foi terminada e esta pronta para ser tratada pelo coletor de lixo.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 48

O Ciclo de Vida de uma MIDlet

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 49

O Ciclo de Vida de uma MIDlet


Uma MIDlet pode controlar seus estados atravs dos mtodos: notifyPaused(), notifyPaused() uma MIDlet ativa chama este mtodo para ser desativada. notifiyDestroyed(), uma MIDlet ativa ou inativa chama este mtodo para ser d t id h t t d destruida, q () resumeRequest(), uma MIDlet inativa chama este mtodo para ser ativada.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 50

O ambiente de desenvolvimento
Java Developer Kit (JDK), verso 1.6 ou superior Sun JAVA Wireless Toolkit for CLDC 2.5.2: Interfase de usurio que automatiza a criao q de aplicaes MIDPs (projetos, compilar, preverificar, empacotar, executar), ifi t t ) Emulador para executar aplicaes, Ferramentas auxiliares (Monitor de memria e rede, rede Assinatura de MIDlets Obfuscated) MIDlets, Editor de textos (Jedit, www.jedit.org)
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 51

Minha primeira MIDlet


Exemplo: HelloWorld.java A MIDlet HelloWorld.java ilustra trs funes bsicas encontradas na maioria d MIDl t b i t d i i das MIDlets: Mostra um texto na tela, Implementa um comando (ao), Processa eventos (listening) quando a MIDlet esta executando. Mostrar: HelloWorld.java
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 52

Criando minha primeira MIDlet


Criando um projeto no WTK Executar o WTK New Project: Nome do projeto: Primeira_MIDlet_Suite Nome da MIDlet: HelloWorld

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 53

Criando minha primeira MIDlet


Dialogo Settings for project API Selection (JTWI) Atributos requeridos Atributos opcionais MIDlets Diretrio de trabalho do WTK:
C:\Documents and Settings\User\j2mewtk\2 5 2 Settings\User\j2mewtk\2.5.2

User o nome da conta de usurio


Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 54

Criando minha primeira MIDlet


Contedo do diretrio do trabalho:
.settings settings Contiene o arquivo security.properties. appdb Banco de dados de aplicaes aplicaes, apps Inicialmente vcio, onde so armazenados os cdigos f t d di fontes d dos projetos, j t cada projeto ter uma pasta neste diretrio. wtklib Contiene os arquivos de propriedades do emulador, e informaes de estado HTTP e WMA, sessions diretrio auxiliar utilizado pelas ferramentas de monitorao.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 55

Criando minha primeira MIDlet


Diretorio do projeto
bin Diretrio onde armazenado o arquivo q executvel (*.jar), o arquivo de manifesto e o descriptor de aplicaes. classes armazena os arquivos das classes compiladas (*.class), lib di t i para i l i bibli t diretrio incluir bibliotecas d desenvolvidas l id por terceiros, res diretrio de recursos armazena os arquivos de recursos, imagens e sonidos. Estes arquivos no e pacota e to empacotamento so incluidos no arquivo jar. c u dos o a qu o ja src armazena os cdigos fontes das classes (*.java) tmpclasses - diretrio auxiliar uso do WTK, tmplib - diretrio auxiliar uso do WTK
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 56

Criando minha primeira MIDlet


Arquivo de manifesto, Arquivo JAD, Criando o arquivo fonte da classe

HelloWorld.java, Compilando e pre-verificando o projeto, Cria o arquivo HelloWorld.class, Executando o aplicativo aplicativo,

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 57

O emulador WTK
Fornece um ciclo de desenvolvimento fechado em um computador, No representa um dispositivo especfico especfico, Proporciona uma correta implementao das APIs suportadas pela plataforma, A interfase funciona como um telefone celular.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 58

O emulador WTK
Esquemas:
Nombre DefaultColorPhone DefaultGrayPhone MediaControlSkin QwertyDevice Q t D i Display 240 x 320 180 x 208 180 x 208 636 x 235 Tela 240 x 289 180 x 177 180 x 177 540 x 204 Cores 4096 4096 4096 4096 Entrada ITU-T ITU-T ITU-T
QWERTY

Atalhos:
Boto do emulador Boto de ao esquerdo Boto de ao direito Boto desligar Boto selecionar
Prof. Dany S. Dominguez/dany@labbi.uesc.br

Teclado do computador F1 F2 Esc Enter


Tema 1 Slide 59

Desenvolvimento - Simplificado
1. Editar cdigo fonte 2. Build aplication (compilar, pre-verificar) 3. 3 Executar O arquivo *.jar no foi criado.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 60

Desenvolvimento - Completo
1. Editar cdigo fonte 2. Empacotar arquivo * ) *.jar) 3. 3 Instalar 4. Executar Para empacotar: P j t -> P k P t Project Package -> Create Package
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 61

(compilar,

pre-verificar,

criar

Desenvolvimento - Instalar
Um pacote contendo uma MIDlet pode ser instalado em um dispositivo ou no emulador, O emulador apresenta as etapas de instalao utilizando um AMS genrico genrico, Para instalar uma MIDlet no emulador: Project -> Run via OTA, Demonstrao. D t

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 62

Usando o Obfuscator
O obfuscator uma ferramenta para reduzir o tamanho dos arquivos de classes,
MIDlets suites precisam ser compactos para: Minimizar o tempo de download, Atender limitaes de tamanho impostas pelos fabricantes de dispositivos, Proteger o cdigo f t P t di fonte,

Para utilizar a ferramenta devemos:


Instalar o ProGuard (http://proguard.sourceforge.net/) Project -> Package -> Create Obfuscated Package

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 63

Mltiplas MIDlets no MIDlet Suite


Criando minha segunda MIDlet Crie a MIDlet GoodbyeWorld.java, Adicione a MIDl t ao projeto, Adi i MIDlet j t Build application, pp , Execute o MIDlet Suite.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 64

Mltiplas MIDlets no MIDlet Suite


MIDlet Suite
CLASSES

Primeira_MIDlet_Suite.jar j

HelloWorld.java GoodbyeWorld.java
META-INF

manifest.mf Primeira_MIDlet_Suite.jad

MIDlets suites so empacotadas em arquivos JAR para encapsular em um nico arquivo assinaturas digitais, informaes de segurana, meta-informaes g , g , e arquivos de classes Java compilados.
Tema 1 Slide 65

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Ambiente de desenvolvimento
Criar um Novo Projeto (MIDlet Suite) Selecionar a Plataforma Alvo Adi i Adicionar MIDl t ao P j t MIDlets Projeto Adicionar os Cdigos Fonte g Editar Meta-Informaes Compilar a MIDlet Suite Rodar a MIDlet S ite Suite Empacotar e distribuir a MIDlet Suite p
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 66

Problemas ao executar MIDlets


Minha MIDlet roda apropriadamente no emulador e no consigo instalar ou executar em um di dispositivo: iti
O AMS do dispositivo rejeita sua MIDlet p j (verifique os arquivos de meta-informaes), O dipositivo no tem suporte a plataforma de desenvolvimento escolhida.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 67

Boas praticas em J2ME


Mantenha sua aplicao (MIDlet) simples: Projeto convencional:
Aplicao dividida em objetos Objetos: atributos e mtodos t d
Objeto MAIL j
Mtodos: INBOX SENT ADDRESS BOOK
Prof. Dany S. Dominguez/dany@labbi.uesc.br

Projeto J2ME:
Aplicao dividida em peas Granularidade fina
MIDlet Suite MAIL
MIDlet 1: INBOX MIDlet 2: SENT MIDlet 3: ADD. BOOK
Tema 1 Slide 68

Boas praticas em J2ME


Crie aplicaes pequenas: O tamanho da aplicao crtico para uma distrinuio eficiente, Remova todos os recursos desnecessrios (imagens, sonidos, animaes), Se aplicao for muito grande divida em vrias MIDlets menores.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 69

Boas praticas em J2ME


Minimize o uso da memria:
Prefira tipos-escalares a tipos-objeto, Utilize o menor tipo possvel para armazenar um dado, , Exemplo: sinalizadores (int vs boolean) Instancie seus objetos no momento de serem utilizados e no no inicio da aplicao aplicao, Reusar objetos vs Novos objetos, Minimize o tratamento de exees.
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 70

Boas praticas em J2ME


Realize o processamento pesado no servidor: Para aplicaes com elevados requerimentos de processamento, Utilize a arquitetura cliente-servidor cliente-servidor, Camada cliente: Interfase, Camada servidor: lgica de negocio + processamento.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 71

Boas praticas em J2ME


Gerencie apropriadamente o uso da rede: Rede intermitente com largura de banda estreita, estreita Minimize o tamanho dos pacotes enviados, Divida pacotes grandes em vrios pacotes pequenos, Exemplo: Cliente de email
Lista de FROM e SUBJECT Mostra apenas o email escolhido
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 72

Boas praticas em J2ME


Gerencie apropriadamente o uso da rede... Exemplo: Lista de itns
Um nico item Opes de navegao (First, Previous, Next, Last) L t)

Mantenha no dispositivo um mecanismo de recuperao (Chaves primaria).

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 73

Boas praticas em J2ME


Simplifique a interfase de usurio: Uma aplicao formada por vrias telas telas, utilize telas simples, Considere as limitaes do dispositivo:
Menu convencional (A) Opo 1 (B) Opo 2 (C) Opo 3 Menu J2ME (A) Opo 1 (D) Opo 2 (G) Opo 3

Minimize as entradas do usurio (no preencher formulrios), Maximize as listas e escolhas.


Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 74

Boas praticas em J2ME


Utilize variveis locais: Encapsulamento: Atributos e mtodos so utilizados para controlar o acesso a dados, O acesso a um atributo requer uma sobrecarga de processamento, Prefira variveis locais a atributos de classes.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 75

Boas praticas em J2ME


Popule suas listas (Dropdown list): Listas so uma boa alternativa para mostrar um conjunto de escolhas, Freqentemente listas so populadas dinamicamente utilizando uma fonte de dados (DB ou arquivo), Preencha suas listas estaticamente.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 76

Boas praticas em J2ME


Seja cuidadoso como o mtodo startApp(): O mtodo startApp() chamado aps o construtor e cada resume da MIDlet, Instrues que devem ser executadas apenas uma vez no ciclo de vida da MIDlet devem ser colocadas no construtor, Exemplo: Inicializar contador.

Prof. Dany S. Dominguez/dany@labbi.uesc.br

Tema 1 Slide 77

Atividade pratica
Repita os passos seguidos na apresentao para criar a Primeira_MIDlet_Suite
1. Crie um projeto com a MIDlet HelloWorld.java 2. Execute o projeto no emulador 3. Adicione a MIDl t G db W ld j 3 Adi i MIDlet GoodbyeWorld.java ao projeto 4. Execute o projeto no emulador 5. Empacote o projeto, instale e execute no emulador, 6. Execute o projeto em um di 6 E t j t dispositivo. iti
Prof. Dany S. Dominguez/dany@labbi.uesc.br Tema 1 Slide 78

Você também pode gostar