Escolar Documentos
Profissional Documentos
Cultura Documentos
Prof. Dany Sanchez Dominguez y@ dany@labbi.uesc.br NBCGIB Sala 01 Semana de Informtica da UESC Setembro - 2010
Tema 1 Slide 1
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
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
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
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
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
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
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
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
Tema 1 Slide 24
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
Tema 1 Slide 26
Tema 1 Slide 27
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
Tema 1 Slide 32
Plataforma celulares
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
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
Tema 1 Slide 41
arquivo
executavel
Arquivo de manifesto
Tema 1 Slide 43
Arquivo JAD
Tema 1 Slide 44
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
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
Tema 1 Slide 49
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
Tema 1 Slide 53
HelloWorld.java, Compilando e pre-verificando o projeto, Cria o arquivo HelloWorld.class, Executando o aplicativo aplicativo,
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.
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
Desenvolvimento - Simplificado
1. Editar cdigo fonte 2. Build aplication (compilar, pre-verificar) 3. 3 Executar O arquivo *.jar no foi criado.
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
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,
Tema 1 Slide 63
Tema 1 Slide 64
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
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
Tema 1 Slide 67
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
Tema 1 Slide 69
Tema 1 Slide 71
Tema 1 Slide 73
Tema 1 Slide 75
Tema 1 Slide 76
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