2. • Sistemas de Informação, UFC-Quixadá (5º semestre)
• Bolsista UFC:
Monitor do Laboratório de Mobilidade e
Tecnologia da Informação (MobiTI)
• Mais? www.igorpimentel.com
3. • 02/09
– Introdução
– Por que desenvolver para dispositivos móveis?
– Plataformas
– Por que Java ME?
– Java ME - Conceitos básicos
– Ambiente de Desenvolvimento
– Distribuição
– Hello World
– Praticando
• 04/09
– Exemplos (Prática)
4. • Pequenos em tamanho
• Memória limitada (Primária e secundária)
• Poder de processamento limitado
• Baixo consumo de energia
• Robusto e confiável
• Conectividade limitada
• Curto tempo de inicialização
5. • Clientes potenciais em constante crescimento
• Existe vários fabricantes, modelos e
funcionalidades
• Crescimento explosivo de dispositivos móveis
– Celulares, PDAs, notebooks, netbooks, tocadores de
mídia, ...
• Diferentes recursos de multimídia
– Tela, captura de imagens, armazenamento,
processamento, comunicação
6. • Redes Móveis
– Maior largura de banda, melhor cobertura
• Conteúdo
– Crescimento da mídia digital
– Mudanças na forma como o conteúdo é produzido
• Tipos de aplicações
– Comunicação via voz
– Navegação pela Web
– Acesso a arquivos de mídia
– GPS
– Jogos
– Conectando com pessoas...
7. • Baseado em Java • Não Java
– Sun JavaME – Symbian (C/C++,
– SuperWaba Python)
– Google Android – Windows Mobile (Dot
– RIM Blackberry Net Compact
Framework)
– PalmOS, Pocket PC
(C/C++)
– IPhone (Objective C)
– BREW (C/C++)
– Microbrowser (XHTML)
– FlashLite (ActionScript)
9. • Como programar em uma única linguagem de
forma a garantir que a aplicação possa
funcionar nos diversos tipos de dispositivos?
– Independência de Plataforma
– Orientação a Objetos
– Networking
– Segurança
– Tratamento de Exceções
– Multithreads
– ...e o mais importante, PADRONIZAÇÃO
10. • 1995: Surgimento da linguagem Java
• 1999:
– Lançado o Java2 (Java 1.2)
– Divisão das 3 plataformas:
• J2EE (Java2 Enterprise Edition)
• J2SE (Java2 Standard Edition)
• J2ME (Java2 Micro Edition)
• 2006:
– Nova nomenclatura – Tachal “2”:
• JEE (Java Enterprise Edition)
• JSE (Java Standard Edition)
• JME (Java Micro Edition)
11. • Java EE
Plataforma voltada a aplicações coorporativas, no lado do servidor.
• Java SE
Plataforma para aplicações do lado do cliente e demais aplicativos
para computadores pessoais.
• Java ME
Plataforma Java voltada ao desenvolvimento de aplicações
executadas em dispositivos com limitados recursos de hardware.
12. O Java ME é uma versão reduzida da
plataforma Java que permite que aplicativos
sejam criados para dispositivos móveis com
diversas vantagens da plataforma Java.
Projetado para dispositivos com limitações de
memória, tela e processamento.
ATENÇÃO!
– JME == Java Micro Edition
– JME != Java Mobile Edition
15. • Define uma plataforma Java para uma ampla
variedade de dispositivos
• Define recursos da linguagem Java e as
bibliotecas Java básicas da JVM para essa
configuração específica
• Leva em consideração
– Memória, vídeo, conectividade e processamento
• Principais configurações
– Conected Device Configuration (CDC)
– Conected, Limited Device Configuration (CLDC)
16. • Conjunto de API’s que complementa uma
“Configuração” para prover funcionalidades para
um determinado mercado ou dispositivo.
• O perfil ajuda na portabilidade das aplicações
• Principal configuração
– Mobile Information Device Profile (MIDP)
• Aplicações em dispositivos wireless sobre a CLDC
17. • As JVMs transformam os arquivos .class em
código de máquina para a plataforma específica
• Isto torna os programas escritos em Java
independentes de plataforma de execução
• Cada SO deve possuir uma implementação da
JVM
18. • Para o CDC
– Mesma especificação da JVM do J2SE
• Para o CLDC
– Kilo Virtual Machine (KVM)
19. • CDC – Connected Device Configuration
– Especifica o ambiente Java para TV Digital,
dispositivos sem fio de alto nível e sistemas
automotivos.
– Dispositivos com cerca de 2MB de RAM (alguns
PDA’s, telefones 3G, etc.)
• CLDC – Connected Limited Device
Configuration
– Especifica o ambiente Java para telefones celulares,
pagers e PDAs.
– Equipamentos com baixíssimos níveis de
processamento e capacidade de memória.
21. • Foi o primeiro perfil do Java ME
• É focado em dispositivos implementados com o
CLDC
• É responsável por:
– Ferramentas de tela (Display);
– Interação com o usuário;
– Persistência de dados;
– "Messaging" (SMS, email, etc), segurança e
comunicação através da rede wireless
22. • 128 kB de memória não volátil;
• 32 kB para heap;
• 8 kB para persistência de dados;
• Tela de 96x54 pixels;
• Entrada de dados;
• Conexões de rede (intermitentes);
• Segurança – conceito de sandbox das applets;
23. • Segurança: baseado em permissões do JSE;
• Novas API´s para aprimorar o desenvolvimento:
– Game API;
– Media API;
– Secure Connection API;
24. • Uma aplicação MIDP é chamada de MIDlet. O
software de gerenciamento da aplicação (AMS -
Application Management Software) do
dispositivo interage diretamente com o MIDlet
com os métodos de criar, iniciar, pausar e
destruir o MIDlet.
• O MIDlet é parte do pacote
javax.microedition.midlet. Necessita estender a
classe MIDlet. E pode requisitar parâmetros do
AMS conforme definido no descritor da
aplicação (JAD – Java Application Descriptor).
26. • Start – Onde é feita a Aquisição de
recursos inicializando a execução
(startApp);
• Pause – Liberação de recursos em um
modo de espera, ou seja, pausado
utilizado ao atender telefone, receber SMS
dentre outra aplicação (pauseApp);
• Destroy – Liberação de todos os recursos
(destroyApp);
28. • Alguns recursos disponíveis:
– RMS - Record Management System
– GCF - Generic Connection Framework
• Principais pacotes opcionais:
– JABWT - Java API for Bluetooth
– WMA - Wireless Messaging API
– MMAPI - Mobile Media API
– WSA - J2ME Web Service API
– Game API
– Telephony API
29. • É preciso ter instalado:
– JDK (Java Development Kit);
– WTK (JME Wireless Toolkit);
– IDE ou Editor para os códigos:
• Eclipse + EclipseME
• NetBeans + Mobility Pack;
• Gel;
• JBuilder;
30. • Ferramenta principal para desenvolvimento de
J2ME MIDP
• Emula vários dispositivos e possibilita que
outros sejam instalados.
• Possibilita conexão e na versão 2, testes de
SMS e MMS
• É possível controlar a taxa de transmissão,
quantidade de memória, tipo de http
33. • MIDlets precisam ser empacotados
corretamente antes de serem enviados a um
dispositivo para instalação. A classe principal
MIDlet que age como o ponto de entrada
principal para o MIDlet, juntamente com as
classes que você construiu e quaisquer imagens
ou outros arquivos para os quais precisa de
acesso em tempo de execução, precisam ser
empacotados em um único arquivo JAR.
34. • Um arquivo JAR (Java Archive file) contém a
definição de empacotamento dos arquivos que
são necessários para rodar a aplicação.
Também é provida informação de
empacotamento semelhante em outro arquivo
chamado Java Aplication Descriptor (ou JAD)
que é tratado separadamente do JAR. Um JAR
pode conter mais de um MIDlet, neste caso
todos os MIDlets devem estar dentro do mesmo
MIDlet suite. O arquivo JAR deve conter todos
os arquivos que fazem parte de um MIDlet suite
35. • Conteúdo de um arquivo JAD
MIDlet-1: Teste, Teste.png, Teste
MIDlet-Jar-Size: 100
MIDlet-Jar-URL: Teste.jar
MIDlet-Name: Teste
MIDlet-Vendor: Unknown
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
37. 21. // Método chamado na inicialização do MIDlet
22. public void startApp() {
23. display.setCurrent(formPrincipal);
24. }
25.
26. // Método chamado quando o MIDlet é pausado
27. public void pauseApp() {}
28.
29. // Método chamado quando o MIDlet é fechado
30. public void destroyApp(boolean unconditional) {}
31.
32. // Método chamado quando algum command é ativado
33. public void commandAction(Command cmd, Displayable dis) {
34. if (cmd == cmdSair) {
35. destroyApp(false);
36. notifyDestroyed();
37. }
38. }
39. }
39. • JME (Java Micro Edition) é a plataforma Java direcionada para
micro aplicativos. Ou seja, aplicativos destinados a dispositivos
que possuem processamento, memória e vídeo limitados, como
celulares, PDA’s, TVs, controle remotos e outros embarcados.
• A arquitetura JME é dividida em Configurações, Perfis, Máquina
Virtual e API’s opcionais.
40. • As configurações definem as bibliotecas que são necessárias para
o funcionamento da máquina virtual (JVM). As principais são: CLDC
(Connected, Limited Device Configuration) e CDC (Connected
Device Configuration).
• A primeira é destinada a dispositivos mais simples e menores, como
celulares, pagers e PDAs, que possuem processamento de 16/32
bits e memória de 128/512 kb. A segunda rege os dispositivos com
capacidade um pouco maior: com pelo menos 32bits de
processamento e 2 MegaBytes de memória, como TV digital,
dispositivos sem fio de alto nível e sistemas automotivos.
41. • Os perfis são um conjunto de aplicações que complementam uma
configuração e fornecem funcionalidades para desenvolver um
aplicativo para um determinado dispositivo.
• Perfis para a configuração CLDC: MIDP (Mobile Information
Device Profile) e PDAP (PDA Profile).
• MIDP é a biblioteca necessária para a execução de qualquer
aplicativo escrito para J2ME, os chamados MIDlets. Ele possui
classes de interface com o usuário e acesso a rede, entre outros. E
PDAP é um ambiente de execução especialmente para PDAs.
• Para a CDC temos o Foundation Profile e o Personal Basis Profile.
O primeiro é um perfil para dispositivos interconectados em rede e
sem interface gráfica. E o segundo oferece suporte a gráficos.
• Quanto a máquina virtual temos a CVM (Compact Virtual Machine),
que é vinculada a configuração CDC e a KVM (Kilo Virtual Machine)
que é vinculada a CLDC.