310 likes | 456 Views
J2ME. Mini Curso. Agenda. Introdução ; Arquitetura J2ME; Configuração; Perfil ; Pacotes Opcionais (APIs); MIDlet ; MIDlet Suite; Empacotamento e Distribuição ; Interface;. Agenda (cont.). Comandos; Ambiente de Desenvolvimento; O processo de desenvolvimento; Vamos ao código!
E N D
J2ME Mini Curso
Agenda • Introdução; • Arquitetura J2ME; • Configuração; • Perfil; • PacotesOpcionais (APIs); • MIDlet; • MIDlet Suite; • Empacotamento e Distribuição; • Interface;
Agenda (cont.) • Comandos; • Ambiente de Desenvolvimento; • O processo de desenvolvimento; • Vamos ao código! • Ambiente de Desenvolvimento; • Vamosaocódigo! • Importação e Análisedaprimeiraaplicação; • Outraaplicação do zero; • Exercício; • Empacotamento e deploy do exercício no disp. Móvel; • Encerramento;
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 redelimitados; • Construída com o objetivo de fornecer um ambiente de execução Java capaz de lidar com as características particulares de pequenos dispositivos;
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;
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;
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;
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.
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;
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;
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;
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);
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;
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;
PacotesOpcionais (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);
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;
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).
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;
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;
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.
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;
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 somenteuma 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;
Ambiente de Desenvolvimento • NetBeans Mobility Pack: • SDK; • Emuladores; • Debug; • Empacotamento; • Ferramentas visuais • Game Builder; • Visual Mobile Designer; • Integração com outrasferramentas; • Aplicações de Exemplo;
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;
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
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