Jornada de cursos - J2ME Aula 1 – Overview e Conceitos básicos Agenda • • • • • • Overview do curso Metodologia Java e J2ME Máquinas virtuais Configurações e perfis O que é quente em J2ME hoje? Overview do curso • • • • • • • O que é J2ME Configurações Perfis MIDP Comunicação Persistência MIDP 2.0 Metodologia • Exercícios/Questões ao final das aulas • Análise de códigos • Projeto final Pausa para reflexão "Sem esforço não há progresso, mas com esforço também não há progresso” Ryotan Tokuda, Mestre Zen Linguagem Java • Divisão em 3 frentes: • J2SE – desktops • J2EE – servidores • J2ME – dispositivos com memória e processamento restritos • Tentativas anteriores: Embedded Java e PersonalJava foram descontinuadas Alvos de Java Mas o que é J2ME • Opção da SUN para desenvolvimento para dispositivos limitados em processamento e memória (móveis ou não) • Parecida com J2SE • Mesma linguagem, mesmo compilador, mesma estrutura da máquina virtual Qualidades • Write once, run everywhere • Linguagem de alto nível para dispositivos móveis • Portabilidade • Delivery pela rede seguro • Anytime, anywhere secure deploying • Alta escalabilidade com J2SE e J2EE Foco de J2ME • Basicamente duas categorias: • Dispositivos fixos de informação compartilhada • Dispositivos móveis de informação pessoal • Fronteira não muito bem definida • Mais memória e mais processamento para ambas categorias Máquinas virtuais • KVM • • • • • • Otimizada para dispositivos com poucos recursos Implementada em C 40 K – 80 K Processadores de 16 – 32 bits 160 K – 512 K de memória total Implementação de referência da SUN • Especificação fornecida pela SUN • Específica para CLDC • Aplicações CDC não rodam na KVM sem ajustes • Já a direção contrária é válida Máquinas Virtuais • CVM • Quase igual a VM do J2SE. Diferenças: • Dispositivos fazem computações específicas • Gerenciamento de memória mais eficiente • Separação VM – Sistema de memória • Mapear Threads Java em Threads nativas do sistema • Utiliza a ROM • Referências fracas, RMI, serialização Organização da plataforma • Aplicação • Building blocks: • Configurações • Perfis • Pacotes opcionais • Conjunto de API´s mas não um Perfil • API´s proprietárias Mas voltando às divisões... • Embbeded Java e PersonalJava no final de ciclo de vida Configurações Perfis CDC • Foundation Profile • Sem GUI • Reuso de código J2SE com esforço mínimo • Ambientes com recursos limitados • Exemplos de cenários: • • • • Impressoras de rede Roteadores Gateways residenciais Aplicações no lado do servidor Perfis CDC • Personal Basis Profile • Um framework de GUI para objetos leves • Suporte ao modelo de programação xlet • Todas as APIs incluídas no Foundation Profile • Exemplos de cenários: • Televisão interativa • Automóveis • Dispositivos de propósito fixo para consumidores (câmeras digitais, gravadoras, etc) Perfis CDC • Personal Profile • Compatibilidade total com AWT • Suporte ao modelo de programação de applets • Um caminho definido para tecnologias legadas como PersonalJava • Todas as APIs do Personal Basis Profile • Exemplos de cenários: • High-end PDAs • Embedded Web browsers Perfis CDC • Game Profile • Sem previsão de lançamento • Cobrirá 9 áreas fundamentais do desenvolvimento de jogos • Alvo também em J2SE • Terá referências a Java Media Framework API e Java 3D Perfis CLDC • MIDP • • • • • Experiência rica em interface gráfica Conectividade extensiva Funcionalidades multmídia e para jogos OTA Segurança fim-a-fim • Dispositivos-alvo: • Para uma lista completa http://developers.sun.com/techtopics/mobility/device/devi ce Perfis CLDC • IMP • • • • • • Baseado em MIDP GUI limitada Recursos de memória ou processamento escassos Persistência local Conectividade com a rede Gerenciamento do ciclo de vida • Exemplos de uso • Caixas de chamada de emergência, parquímetros, módulos wireless em alarmes e dispositivos industriais de medição • Módulos wireless que podem alertar para serem reabastecidos, diagnósticos de elevadores, estações meteorológicas e medidores de eletricidade. O que é quente hoje em J2ME? • Aplicativos com processamento do lado do servidor e apresentação no celular • Localização • Utilização da câmera embutida • Cartão de visita • Nokia gems Perguntas • Descreva a arquitetura, em termos de blocos, sobre a qual aplicações J2ME são escritas. Referências • Wireless Programming with J2ME: Cracking the code, ISBN: 0-7645-4885-9 • http://java.sun.com/j2me • Core J2ME, segunda edição • http://java.sun.com/products/kvm/wp/KVMwp.p df • http://java.sun.com/products/cldc/index.jsp • http://java.sun.com/products/cdc/index.jsp