Apostila complementar java móvel
-
Upload
reuel-lopes -
Category
Documents
-
view
1.344 -
download
4
Transcript of Apostila complementar java móvel
![Page 1: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/1.jpg)
Java Móvel
Marcelo Quinta Ins3tuto de Informá3ca -‐ UFG
Introdução ao Java ME e WTK 3.0
GOJAVA
![Page 2: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/2.jpg)
• Graduado em Ciência da Computação – UFG;
• GUJ leader GoJava; • Monitor da Especialização de “Desenvolvimento Web para Interfaces Ricas” – INF/UFG;
• Mestrando na área de Engenharia de SoPware – Orientado pelo professor Fábio Nogueira; – Arquitetura e construção de aplicação para visualização de objetos de aprendizagem customizados em múl3plos disposi3vos.
• O que estudo e trabalho:
Apresentação
2 JavaME JavaFX JavaEE Teste de So@ware Usabilidade
Criando aplicações para celulares u3lizando Java ME
![Page 3: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/3.jpg)
Agenda
3
• Diferenças entre as plataformas Java; • Apresentação de aplicações Java ME; • Desafios para programação para disposi3vos móveis; • Arquitetura do Java ME; • WTK 3.0 no NetBeans; • Definição dos MIDlets; • Ciclo de vida dos MIDlets; • Hello World; • Instalação de aplicações no celular;
Criando aplicações para celulares u3lizando Java ME
![Page 4: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/4.jpg)
Agenda
4
• Introdução à API MIDP 2.0; • Noções de interface gráfica; • Tratamento de eventos; • Persistência; • Comunicação Web;
• LWUIT.
Criando aplicações para celulares u3lizando Java ME
![Page 5: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/5.jpg)
5
Plataformas Java
Java SE JDK 6
Java EE SDK 5
Java ME CLDC 1.1 CDC 1.1
Criando aplicações para celulares u3lizando Java ME
![Page 6: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/6.jpg)
Foco do Java ME
6
Criando aplicações para celulares u3lizando Java ME
![Page 7: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/7.jpg)
O que se pode fazer com Java ME
7
Criando aplicações para celulares u3lizando Java ME
![Page 8: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/8.jpg)
O que pode-‐se fazer sabendo Java ME
8
Programar para TV Digital
Criando aplicações para celulares u3lizando Java ME
![Page 9: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/9.jpg)
Desafios da programação para disposiPvos móveis
• Memória para gravação pequena; – “Meu celular não tem memória pra guardar esse arquivo.”;
• Tamanho do Display pequeno; – “Não dá pra ver a foto direito nessa tela.”;
• Velocidade de Processamento baixa; – “Meu celular é uma carroça.”;
• Uso grande de bateria; – “Minha bateria não dura nada.”
• Dificuldades com comunicação externa. – “Nunca usei a internet do meu telefone.”;
9
Criando aplicações para celulares u3lizando Java ME
![Page 10: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/10.jpg)
Arquitetura do Java ME
10
Criando aplicações para celulares u3lizando Java ME
![Page 11: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/11.jpg)
Arquitetura do Java ME
11
Criando aplicações para celulares u3lizando Java ME
![Page 12: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/12.jpg)
Máquina Virtuais
• CVM (C Virtual Machine) • Projetada para disposi3vos móveis mais poderosos;
• KVM (K Virtual Machine) / HotSpot CLDC • Projetada para disposi3vos móveis mais simples; • Bibliotecas de classe com código objeto de tamanho reduzido em 50-‐80 Kb;
• Pequena u3lização de memória; • Performance efe3va em processadores de 16-‐32 bits; • Mul3threading e coleta de lixo independentes do sistema;
12
Criando aplicações para celulares u3lizando Java ME
![Page 13: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/13.jpg)
Arquitetura do Java ME
13
Criando aplicações para celulares u3lizando Java ME
![Page 14: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/14.jpg)
Configurações
• Conjunto de funcionalidades para que as aplicações Java ME possam “se comunicar com a JVM”;
• É específica para certa gama de aparelhos;
• Menos visível aos usuários, mas é muito importante para implementadores de perfis (profiles);
• Duas configurações básicas: CDC e CLDC.
14
Criando aplicações para celulares u3lizando Java ME
![Page 15: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/15.jpg)
CDC – Connected Device ConfiguraPon
• Supõe disposi3vos com mais capacidade, tais como seuop boxes digitais, screen-‐phones, Nokia Communicator e alguns PDAs mais poderosos;
• Recursos mais avançados mais complexos, incluindo suporte ao Oracle;
• Atualmente na versão CDC 1.1.2 (JSR 218).
15
Criando aplicações para celulares u3lizando Java ME
![Page 16: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/16.jpg)
CLDC – Connected Limited Device ConfiguraPon
• Supõe disposi3vos mais simples, com mais limitações, como telefones celulares e pagers;
• É a configuração mais usada para programação Java ME;
• Atualmente na versão 1.1. (JSR 139);
16
Criando aplicações para celulares u3lizando Java ME
![Page 17: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/17.jpg)
Pensando em funcionalidades
17
Criando aplicações para celulares u3lizando Java ME
![Page 18: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/18.jpg)
Arquitetura do Java ME
18
Criando aplicações para celulares u3lizando Java ME
![Page 19: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/19.jpg)
Perfis
• Definem uma API disponível para um conjunto específico de aparelhos;
• Cada um é implementado sobre uma configuração par3cular;
• Os mais conhecidos são Personal, Founda3on e Basis (CDC) e MIDP (CLDC).
19
Criando aplicações para celulares u3lizando Java ME
![Page 20: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/20.jpg)
Configuração X Perfil
• Configuração • Descreve de forma geral uma família de disposi3vos;
• Perfil • Fica mais específico a um 3po de aparelho.
20
Criando aplicações para celulares u3lizando Java ME
![Page 21: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/21.jpg)
Personal, Basis and FoundaPon
• Baseados na CDC; • Suporte a JDBC e RMI; • Founda3on (Biblioteca de classes simples e sem interface gráfica);
• Basis (Biblioteca de classes e interface gráfica simples);
• Personal (Biblioteca de classes complexa, inclusive com suporte a applets e interface AWT).
21
Criando aplicações para celulares u3lizando Java ME
![Page 22: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/22.jpg)
MIDP
• Mobile Informa3on Device Profile, baseado na CLDC;
• Atualmente na versão 2.1;
• É o mais popular;
• Garbage collector “o3mizado”;
• API bastante parecida com Java 6, possuindo interface gráfica, persistência e acesso a web.
22
Criando aplicações para celulares u3lizando Java ME
![Page 23: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/23.jpg)
MIDP 2.0
23
Criando aplicações para celulares u3lizando Java ME
![Page 24: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/24.jpg)
Arquitetura do Java ME
24
![Page 25: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/25.jpg)
Bibliotecas
• Definições específicas de APIs que realizam trabalhos pontuais; – JSR 179: Loca3on API for Java METM; – JSR 172: Java METM Web Services Specifica3on; – JSR 75 : PDA Op3onal Packages for the Java METM Plaworm;
– JSR 82: JavaTM APIs for Bluetooth;
hZp://jcp.org/en/jsr/pla^orm?listBy=1&listByType=pla^orm
25
Criando aplicações para celulares u3lizando Java ME
![Page 26: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/26.jpg)
Arquitetura do Java ME
26
Criando aplicações para celulares u3lizando Java ME
![Page 27: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/27.jpg)
O que vamos aprender?
• CLDC 1.0/CLDC 1.1 + MIDP 2.0 – Suportado na maior parte dos celulares modernos;
– Maior facilidade de depuração;
– Mais limitações para codificação.
27
Criando aplicações para celulares u3lizando Java ME
![Page 28: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/28.jpg)
PráPca
28
Criando aplicações para celulares u3lizando Java ME
![Page 29: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/29.jpg)
Wireless Toolkit 3.0 • Ferramenta para facilitar a construção de aplicações J2ME;
– Integração com emuladores de terceiros, bem como, de disposi3vos com Windows Mobile;
– Simplificação no processo de deploy em disposi3vos reais; – Integração do CDLC/MIDP, CDC/FP/PBP/AGUI e BD-‐J em um único SDK,
não sendo mais necessário o download e instalação de pacotes separados;
– Uma nova máquina virtual HotSpot CLDC, em subs3tuição à an3ga KVM;
– Suporte a profiling; – Suporte a BD-‐J; – Novo ambiente de desenvolvimento baseado na plataforma Netbeans; – Integração com Lightweight UI Toolkit (LWUIT);Pesquisa por
especificações técnicas de disposi3vos integrado no SDK.
29
GRATUITO
Criando aplicações para celulares u3lizando Java ME
![Page 30: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/30.jpg)
NetBeans 6.9
• A versão Java e completa vem com Mobility Pack: – WTK 3.0; – Adicionais para depuração / produ3vidade;
30
GRATUITO
Criando aplicações para celulares u3lizando Java ME
![Page 31: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/31.jpg)
31 Auto-‐Complete Paleta
Design Visual Configurações
Fluxo de Aplicação
Criando aplicações para celulares u3lizando Java ME
![Page 32: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/32.jpg)
Como funciona uma aplicação Java ME?
32
• MIDlet – Semelhante a um applet, mas nãe é controlado por uma função main(String args[]);
– Gerencia qual tela mostrar, qual função chamar, como comunicar com o AMS (Applica?on Management SoAware) do disposi3vo;
– Define as transições possíveis de uma aplicação MIDP: Pausado, A?vo ou Destruído.
Criando aplicações para celulares u3lizando Java ME
![Page 33: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/33.jpg)
MIDlet
33
• int checkPermission(String permission); • String getAppProperty(String key); • boolean plawormRequest(String URL);
• void destroyApp(boolean uncondiPonal); • void no3fyDestroyed() ; • void no3fyPaused() ; • void pauseApp() ; • void resumeRequest(); • void startApp();
Criando aplicações para celulares u3lizando Java ME
![Page 34: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/34.jpg)
Como funciona uma aplicação Java ME?
34
APLICACAO.JAR
Tela Atual Entrada de comandos Iniciar Pausar Terminar
Criando aplicações para celulares u3lizando Java ME
![Page 35: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/35.jpg)
Hello World Java ME import javax.microedi3on.lcdui.*;
import javax.microedi3on.midlet.*;
public class PrimeiroMidlet extends MIDlet implements CommandListener { Display display; Form formulario; Command comandoSaida; public void startApp() {
display = Display.getDisplay(this); formulario = new Form(“WTC 2010"); formulario.append("Olá J2ME!!!"); comandoSaida = new Command("Exit", Command.EXIT, 2); formulario.addCommand(comandoSaida); formulario.setCommandListener(this); display.setCurrent(formulario);
} public void pauseApp() { } public void destroyApp(boolean uncondi3onal) { } public void commandAc3on(Command arg0, Displayable arg1) { if (arg0 == comandoSaida) { destroyApp(true); this.no3fyDestroyed();
} } }
35
Criando aplicações para celulares u3lizando Java ME
![Page 36: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/36.jpg)
Executando a aplicação
• Pode-‐se usar o WTK 3.0; • Outros emuladores – Nokia – Motorola; – ...;
36
Criando aplicações para celulares u3lizando Java ME
![Page 37: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/37.jpg)
Instalando a Aplicação...
• Arquivo “.jar” da aplicação – Classes; – Recursos; – Manifest; – Bibliotecas adicionais
• Arquivo “.jad” descritor da aplicação;
37
SEMINFO 2009 – INTRODUÇÃO AO J2ME E WTK 3.0
![Page 38: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/38.jpg)
Instalando a aplicação • Exemplo de .jad:
MIDlet-1: HelloMidlet, , hello.HelloMidlet
MIDlet-Jar-Size: 1481 MIDlet-Jar-URL: HelloWorld.jar MIDlet-Name: HelloWorld MIDlet-Vendor: Vendor MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0
38
Criando aplicações para celulares u3lizando Java ME
![Page 39: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/39.jpg)
FIM DA PRIMEIRA PARTE
• O que já sabemos: – Diferença de Java ME para Java SE E Java EE;
– O que podemos fazer; – Problemas que enfrentaremos na programação; – Como é a arquitetura Java ME;
– Como se configura um programa Java ME; – Como executar; – Como instalar.
39
Criando aplicações para celulares u3lizando Java ME
![Page 40: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/40.jpg)
API MIDP 2.0
• Sintaxe é extremamente parecida com Java SE e tem API com configuração muito parecida;
40
Interface gráfica
Persistência
Ciclo de vida
Conexão Web
Mídia Segurança
Fluxo de dados
Core
UPlidades
Criando aplicações para celulares u3lizando Java ME
![Page 41: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/41.jpg)
Mas antes de programar... • Lembre-‐se: que Java ME tem a mesmo 3po de sintaxe de JAVA SE e Java EE!!!; – O que muda é a API e o propósito da aplicação;
– Dica para seu trabalho com programação Java ser respeitado:
APLIQUE AS CONVENÇÕES DE CÓDIGO JAVA (Java Code ConvenPons)
Não é frescura, é a norma!!!
Criando aplicações para celulares u3lizando Java ME
![Page 42: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/42.jpg)
Voltando ao MIDlet...
42
• int checkPermission(String permission); • String getAppProperty(String key); • boolean pla^ormRequest(String URL);
• void destroyApp(boolean uncondi3onal); • void no3fyDestroyed() ; • void no3fyPaused() ; • void pauseApp() ; • void resumeRequest(); • void startApp();
Criando aplicações para celulares u3lizando Java ME
![Page 43: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/43.jpg)
Mãos à obra
hup://exemplos.googlecode.com
Referência hup://java.sun.com/javame/reference/apis/jsr118/
43
Criando aplicações para celulares u3lizando Java ME
![Page 44: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/44.jpg)
Métodos do MIDlet
• String getAppProperty(String key) – Retorna o valor da propriedade do MIDlet
– Propriedades podem ser customizaveis;
• String System.getProperty(String property) – hup://developers.sun.com/mobility/midp/ques3ons/proper3es/index.html;
• String checkPermission (String permission) – Checa se uma operação é permi3da;
44
Criando aplicações para celulares u3lizando Java ME
![Page 45: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/45.jpg)
Interface Gráfica
45
Screen Canvas
Criando aplicações para celulares u3lizando Java ME
![Page 46: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/46.jpg)
Record Management System
46 j2mesalsa.com
Criando aplicações para celulares u3lizando Java ME
![Page 47: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/47.jpg)
Conexão
47
Criando aplicações para celulares u3lizando Java ME
![Page 48: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/48.jpg)
LWUIT
48
hups://lwuit.dev.java.net/
Criando aplicações para celulares u3lizando Java ME
![Page 49: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/49.jpg)
JavaFx
49
hup://www.javafx.com/pt-‐br/
Criando aplicações para celulares u3lizando Java ME
![Page 50: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/50.jpg)
Comunidades
50
www.gojava.org
Criando aplicações para celulares u3lizando Java ME
![Page 51: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/51.jpg)
Comunidades
51
Criando aplicações para celulares u3lizando Java ME
![Page 52: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/52.jpg)
Se não gostou do J2ME...
Programar para Windows Mobile é uma alterna3va. O Visual Studio ajuda bastante.
Acesse www.devgoias.net
52
Criando aplicações para celulares u3lizando Java ME
![Page 53: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/53.jpg)
Se você não gosta do Bill Gates...
... e gosta do Google. 53
Criando aplicações para celulares u3lizando Java ME
![Page 54: Apostila complementar java móvel](https://reader034.fdocuments.net/reader034/viewer/2022042521/5572c733d8b42abb378b4b29/html5/thumbnails/54.jpg)
Mas se você gosta do Steve Jobs
iPhone!! 54
Criando aplicações para celulares u3lizando Java ME