Programação para Dispositivos Móveis Prof. Wallace Borges Cristo Acesso a informação Notícias, Ringtones, Vídeos Messenger/Chat Jogos Acesso a instituições financeiras M-commerce (Mobile Commerce) Aplicações Coorporativas E-mail Automação de força de vendas Serviços de Campo Distribuição e logística Serviços Baseados em localização Localização de estabelecimentos comercias Rastreamento de veículos e pessoas Características dos dispositivos Variedades dos Dispositivo Variedade de plataformas Variedade de sistemas operacionais Características dos dispositivos Recursos escassos Memória (em alguns casos 128, 256 e 512MB) Processamento Tamanho de tela Taxa de Transmissão de dados Bateria Capacidade limitada Recurso fundamental para mobilidade Características dos dispositivos Características da Rede Transmissão de dados limitada Computacionalmente e pelo custo On-line: Canais de comunicação sem fio Celular, Satélite Redes sem Fio. Off-line: Sincronismo periódico USB, serial, infravermelho, Bluetooth, Wi-Fi. Exercícios 1. O que são dispositivos móveis? Cite 3 exemplos. 2. O que são aplicações móveis ? 3. Cite os 3 grandes grupos de aplicações móveis. Escolha um desses grupos e de exemplos de aplicações 4. Cite 4 características dos dispositivos móveis Programação para dispositivos Móveis (JME – Java Micro Edition) Java foi criado em 1991 por James Gosling, da Sun Microsystems. Motivação: necessidade para uma linguagem independente de plataforma que fosse embarcada em vários produtos eletrônicos Ex: torradeiras, refrigeradores etc Com o lançamento da versão 1.2, a plataforma Java foi classificada em várias plataformas: Plataformas JME (Java Micro Edition) É um conjunto de especificações e tecnologias que têm o foco em dispositivos pessoais Dispositivos que possuem: quantidade limitada de memória menor poder de processamento pequenas telas e baixa velocidade de conexão. Classes JME são compiladas em byte codes (códigos intermediários) e interpretadas por uma Máquina Virtual Java (JVM). O JME fornece uma interface consistente com os dispositivos. As aplicações não têm que ser recompiladas para poderem ser executadas em diferentes aparelhos. Núcleo JME Configuração: define um ambiente de execução básico para um sistema JME Perfil: adiciona uma biblioteca para certas classes de dispositivos. Núcleo J2ME Aplicações J2ME Pacotes Opcionais MIDP CLDC + VM Sistema Operacional Dispositivo (Hardware) Aplicações Nativas Configurações e Perfis O J2ME é constituído de 2 componentes principais •Perfis •Configurações Configurações Define uma plataforma Java (VM + Conjunto mínimo de bibliotecas ) para um categoria ou grupo horizontal de dispositivos com requisitos similares de memória e capacidade de processamento. Contem funcionalidades mínimas de baixo nível, principalmente de IO (Input/Output) Atualmente consiste dos pacotes java.io, java.lang, java.util, java.microedition.io Configurações CDC Trabalha com a máquina virtual compacta CVM Maior poder de processamento, Processadores de 32 bits Memória > 2M Sistemas de navegação de carros TVs com conexão com a internet Conexão permanente (plugada) com a rede via TCP/IP Inclui (nem todas) as classes dos pacotes java.lang, java.util, java.net, java.io, java.text e java.security Configurações CDC Exemplos Set-Boxes Internet Television Automobile entertainment/Navigation Systems Configurações CLDC Menor poder de processamento Para dispositivos operados com bateria Conexão intermitente (wireless) com a rede nem sempre usando TCP/IP Inclui (nem todas) as classes dos pacotes java.lang java.io java.util Configurações J2SE CDC CLDC Configurações J2ME Perfil 1 J2ME Perfil 2 J2ME Perfil 3 J2ME Perfil 4 J2ME Perfil 5 J2ME Perfil 6 CLDC Bibliotecas CDC Bibliotecas K Virtual Machine Compact Virtual Machine memória 128 - 512 K processador 16 - 32 bit memória 2 Meg processador 32 bit Generic Connection Framework (GCF) Framework Genérico de Conexão Fornece as APIs básicas para conexão em CLDC. Abstrai os conceitos de arquivos, sockets, pedidos HTTP e outros mecanismos de IO em um conjunto mais simples de classes daquele definido pelo J2SE Em vez de criar um objeto especifico de uma classe para comunicação, por exemplo java.io.File ou java.net.Socket, a aplicação pede ao GCF para criar uma conexão usando um determinado protocolo Generic Connection Framework (GCF) Perfis (Profiles) Perfis (Profiles) Conceito de Portabilidade aplicado a dispositivos dentro de uma industria ou domínio de aplicação Tipos de dispositivos Telefone celular Máquina de lavar Brinquedo eletrônico Representam diferentes segmentos de mercado Um perfil define uma plataforma Java para um segmento vertical de mercado Perfis (Profiles) Estende uma configuração Inclui bibliotecas especificas para um domínio de aplicação Definem o modelo do ciclo de vida da aplicação a interface do usuário acesso a propriedades específicas do dispositivo Perfis (Profiles) Aplicações são escritas para um perfil Um dispositivo pode suportar mais de um perfil Alguns Perfis podem ser mais orientados a um tipo de aplicação enquanto outros podem ser mais orientados a funções específicas de dispositivos Qualquer aplicação escrita para um perfil deve rodar em qualquer dispositivo que tenha suporte para aquele perfil Perfis (Profiles) Um Perfil é um contrato entre uma aplicação e um segmento vertical do mercado Perfis (Profiles) Perfis CDC Foundation Conjunto de APIs para dispositivos que não possuem um sistema padrão de GUI Funciona como uma “fundação” para construção de outros perfis Suporta Sockets Java Game Profile Suporta 9 áreas de desenvolvimento de jogos em java Modelagem e Visualização 3D Modelagem e física 3D Animação de personagens 3D Som Controladores Acesso a Hardware Transmissão e Conexão de rede ... Perfis (Profiles) Perfis CLDC PDAP - Personal Digital Assistant Profile Estende o CDLC Específico para PDAs Java APIs for Bluetooh Compartilhamento de dados BlueTooTH Mobile Media API Tratamento de Mídia temporizada Mobile 3d Graphics Tratamento 3D em ambientes limitados MIDP Junto com a CDLC provê um ambiente J2ME completo para dispositivos móveis tipo celulares e PDAs Bastante Popular MIDP Melhor interface com usuário Comandos flexíveis Melhor layout Suporte a novas mídias Audio Building Block (Tons, sequencias e WAV) Suporte a jogos Sprites, tiled layers Conectividade HTTPS, Datagramas, Server Sockets, Serial Push Serviços em notificações recebidas pelo dispositivo OTA – Over the Air Download e instalação de MIDLets MIDP Hardware Input (Um ou Mais) Teclado para uma só mão Teclado QWERTY Touch screen Networking Two-way Wireless Intermitente (ou não) Banda limitada MIDlets Aplicativo Java projetado para ser executado em um dispositivo móvel Similar a uma Applet J2SE Classes básicas: CLDC e MIDP Conjunto de MIDlets MIDlets empacotadas em arquivo JAR MIDlets compartilham recursos com mais segurança MIDlets Ambiente de Execução Application Manager Software do dispositivo responsável por Instalar Executar Remover MIDlets O software de gerenciamento da aplicação (AMSApplication Management Software) interage diretamente com o MIDLet (criando, iniciando, pausando e destruindo). MIDlets Ciclo de Vida do MIDlet MIDLets Suits As aplicações de MIDP são empacotadas e entregues aos dispositivos como MIDlet suites. Um MIDlet suite consiste em um Arquivo Java (JAR) e, opcionalmente, um descritor de aplicação Java (JAD). Um arquivo JAD é um arquivo texto contendo um conjunto de atributos, alguns dos quais são requeridos. Exercícios 1. O que é JME ? E qual seu objetivo? 2. Quais os 2 componentes principais do JME? 3. Quais são as vantagens do uso de Java como plataforma de desenvolvimento e execução para os dispositivos móveis? 4. O que são configurações? 5. O que são perfis? 6. Quais são as 2 configurações do JME? 7. Cite exemplos de perfis. 8. Qual o nome do perfil mais comum utilizado para desenvolvimento de aplicações para celular ? 9. Quais são as fases do Ciclo de Vida do MIDlet ? 10. O que constitui um MIDlet Suit ? Referência: Prof. Rogério Celestino dos Santos