J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais...

31
J2ME Mini Curso

Transcript of J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais...

Page 1: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

J2MEMini Curso

Page 2: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Agenda

Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição; Interface;

Page 3: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Agenda (cont.)

Comandos; Ambiente de Desenvolvimento; O processo de desenvolvimento; Vamos ao código! Ambiente de Desenvolvimento; Vamos ao código!

Importação e Análise da primeira aplicação; Outra aplicação do zero; Exercício;

Empacotamento e deploy do exercício no disp. Móvel; Encerramento;

Page 4: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Introdução

J2ME: “Coleção de tecnologias e especificações

que criam uma plataforma que se ajusta aos requisitos de dispositivos móveis”;

Conjunto de tecnologias que permitem o desenvol- vimento de aplicações Java para dispositivos com processamento, memória e rede limitados;

Construída com o objetivo de fornecer um ambiente de execução Java capaz de lidar com as características particulares de pequenos dispositivos;

Page 5: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Arquitetura J2ME

Baseado em três elementos especificados pela comunidade JCP (Java Community Process): Configurações, perfis e pacotes opcionais; Funcionamento sobre uma máquina virtual

Java;

Page 6: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Configuração

Descrevem as funcionalidades básicas requeridas pelo conjunto de dispositivos; Ex: processamento, memória, tipo de

conexão de rede; Possui bibliotecas básicas da linguagem

representando a plataforma mínima de desenvolvimento para cada tipo de dispositivo;

Definidas pelos fabricantes;

Page 7: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Configuração (cont.)

A Java Community Process (JCP) especifica o Java ME em duas configurações: CLDC – Connected Limited Device

Configuration Dispositivos com menor capacidade

computacional como: telefones celulares e smartphones;

CDC – Connected Device Configuration Dispositivos com maior capacidade computacional

como: PDAs, TV Digital e sistemas automotivos;

Page 8: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Configuração CLDC

Subconjunto de pacotes disponíveis no J2SE e abrange os dispositivos com restrições de processamento, memória e vídeo: Celulares; Smartphones; Pagers; PDAs.

Page 9: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Configuração CLDC – Versão 1.0 JSR 30; Ausência de ponto flutuante; Restrita a apenas quatro pacotes:

java.io Tratamento de entrada e saída de dados;

java.lang Classes básicas da linguagem Java;

java.util Classes de utilidades genéricas;

java.microedition.io Exclusivamente da plataforma Java ME, incluindo as

classes de conexão;

Page 10: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Configuração CLDC – Versão 1.1 JSR 139 Engloba os pacotes da versão 1.0 e outras

características: Ponto flutuante

Operações com variáveis do tipo float/double; ClassLoading

Classe abstrata responsável por carregar outras classes; Garbage Collector

Coletor de lixo dos objetos; JNI (Java Native Interface)

Chamada de aplicações nativas de um sistema; RMI (Remote Method Invocation)

Execução de chamadas remotas;

Page 11: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Perfil

No topo das configurações estão os perfis;

Conjuntos de APIs mais específicas que complementa uma configuração: Ciclo de vida da aplicação; Persistência de dados; Elementos de interface gráfica; Transações seguras; Gerênciamento de sons;

Page 12: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Perfil (cont.)

CLDC: MIDP (Mobile Information Device Profile);

CDC: FP (Foundation Profile); PP (Personal Profile); PBP (Personal Basis Profile); RMIP (Remote Method Invocation Profile) GP (Game Profile);

Page 13: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Perfil - MIDP

Mobile Information Device Profile; Perfil suportado pela configuração CDLC, onde

juntos providenciam um ambiente padrão de execução Java para os mais populares dispositivos móveis, como os celulares e PDAs;

Responsabilidades Reprodução de multimídia, suporte a protocolos

dos tipos HTTP e sockets, suporte ao sistema de cores RGB, definição de formulários e itens, APIs para jogos, validação de permissões de segurança e assinaturas digitais;

Page 14: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Perfil – MIDP (cont.)

Recursos mínimos: Memória:

128KB de memória não volátil para implementação MIDP;

8KB de memória não volátil para persistir dados das aplicações;

32KB de runtime e heap; Interface com o usuário:

Display com 1 bit de cor e resolução mínima de 96 x 54 pixels;

Entrada de dados via teclado ou tela sensível ao toque; Rede:

Conectividade com algum tipo de rede sem fio;

Page 15: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Pacotes Opcionais (APIs)

Apoio em áreas com funcionalidades restritas que alguns dispositivos e aplicações precisam;

Disponibilizadas através de JSRs (Java Specification Requests);

Exemplos: Bluetooth (JSR-82); File Connection API (JSR-75); Location API (JSR 179); Mobile 3D Graphics API (JSR 184); Mobile Game API (JSR 178);

Page 16: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Resumindo…

Page 17: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

MIDlet

Aplicativos J2ME baseados em MIDP são chamados de MIDlets;

Utiliza somente classes definidas pelas APIs do CLDC e MIDP;

Applet desenvolvido especificamente para dispositivos móveis;

Interface de comunicação com o Application Manager (AM);

Contém os métodos que inicializam, resumem, interrompem e destroem a aplicação;

Page 18: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

MIDlet - Ciclo de vida

Page 19: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

MIDlet Suite

Consiste em um ou mais MIDlets, .java, recursos (imagens, xmls) e um arquivo de manifesto que estão situados dentro de um Java Archive (JAR) e um arquivo de descrição chamado Java Application Descriptor (JAD).

Page 20: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Empacotamento e Distribuição: JAR

Todas as MIDlets são empacotadas antes de serem transferidas a um dispositivo, isso é feito através de um método de compressão onde são colocadas todas as informações em um único arquivo cuja extensão é .JAR.

Benefícios: Segurança - através de assinaturas digitais; Compressão; Empacotamento de extensões, juntando vários tipos de

extensões diferentes em uma única; Portabilidade e o fato de quando é necessário fazer o

download de uma aplicação apenas um arquivo deve ser baixado;

Page 21: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Empacotamento e Distribuição: JAD

Descreve os detalhes da aplicação, ou seja, contém as informações sobre o MIDlet;

Está fora do JAR e pode ser acessado sem mesmo instalar o arquivo JAR em um dispositivo;

Prepara o JAR a ser instalado, otimizando a instalação do aplicativo;

Personalização do ícone da aplicação ou o diretório em que o aplicativo deve ser instalado;

Page 22: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Empacotamento e Distribuição - JAD

O arquivo possui a seguinte estrutura: MIDlet-Name: Nome da Suite MIDlet; MIDlet-Version: Versão do MIDlet; MIDlet-Vendor: Criador do MIDlet; MIDlet-Icon: Ícone do aplicativo; MIDlet-Description: Descrição do

aplicativo; MIDlet-Info-URL: Endereço para um

arquivo de informações (JAR); MIDlet-DATA-Size: Tamanho do JAR.

Page 23: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Interface

Responsáveis pela apresentação e manipulação das informações;

Conforme o celular variam de tamanho de tela, cores, teclados, touch-Screens e outros aspectos ;

Dividida em duas: High-level API's

Screen e suas heranças; São classificados como objetos de Interface;

Low-level API's Canvas e suas heranças; Proporcionam uma área livre para gráficos;

Page 24: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Interface

Page 25: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Comandos

Tornar a interface com o usuário dinâmica, defi -nindo as operações e navegação da aplicação;

 Um command contém somente uma informação sobre o comando e não sobre qual ação realizar;

Quando acionados são notificados a um Command Listener associado ao Displayable;

Quando um comando é acionado, o commadAction o captura, juntamente com o Displayable atual;

Page 26: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Ambiente de Desenvolvimento

NetBeans Mobility Pack: SDK; Emuladores; Debug; Empacotamento; Ferramentas visuais

Game Builder; Visual Mobile Designer;

Integração com outras ferramentas; Aplicações de Exemplo;

Page 27: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

O processo de desenvolvimento O processo de desenvolvimento de

MIDlet's é um pouco mais complexo do que de outros programas feitos em JAVA, pois é feito segundo estes passos: Editar código fonte; Compilar; Pré-Verificar; Empacotar; Testar e/ou Instalar;

Page 28: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Vamos ao código!

Page 29: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Encerramento

Page 30: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Referências

Desenvolvedores J2ME http://developers.sun.com/mobility/midp/articles/getstart

Livros John W. Muchow: Core J2ME Technology and MIDP (Sun

Microsystems Press) Michael Yuan: 

Enterprise J2ME: Developing Mobile Java Applications (Prentice Hall)

Riggs, Taivalsaari, and VandenBrink: Programming Wireless Devices with the Java(tm) 2 Platform, Micro Edition (The Java Series)

Site Nokia para desenvolvedores http://www.forum.nokia.com/Develop/Java

Page 31: J2ME Mini Curso. Agenda Introdução; Arquitetura J2ME; Configuração; Perfil; Pacotes Opcionais (APIs); MIDlet; MIDlet Suite; Empacotamento e Distribuição;

Referências (cont.)

Java Móvel http://www.javamovel.com

Overview Oracle J2ME http://www.oracle.com/technetwork/java/

javame/overview/index.html Blog J2ME Group

http://j2megroup.blogspot.com Exemplos

http://developers.sun.com/mobility/reference/codesamples