Java para dispositivos móveis

  • View
    2.178

  • Download
    10

Embed Size (px)

Text of Java para dispositivos móveis

  • 1. Java para Dispositivos MveisJ. Gabriel Limagabriel@ecomp.eng.brhttp://jgabriellima.wordpress.com Laboratrio de Planejamento de Redes de Alto Desempenho LPRADEmpresa Jnior de Engenharia de Computao /UFPa

2. Roteiro Por que java? Onde esto as oportunidades deNegcio Plataforma Java Java Mobile Edition Conceitos Importantes Implementao Projetando Aplicativos Como comear? A Tecnologia Java muito alm doconvencional 3. Por que Java?At hoje, a plataforma Java j atraiu mais de 6,5 milhes de desenvolvedores de software. utilizadaem todos os principais segmentos da indstria, estando presente em uma ampla gama de dispositivos,computadores e redes. Sua versatilidade, eficincia, portabilidade de plataforma e segurana fazem dela a tecnologia idealpara a computao em rede. A tecnologia Java est em todo lugar! Ela pode ser encontrada emlaptops, datacenters, consoles de jogo, supercomputadores cientficos, telefones celulares e at naInternet. A tecnologia Java est presente em mais de 4,5 bilhes de dispositivos, incluindo: Mais de 800 milhes de PCs 2,1 bilhes de telefones celulares e outros dispositivos portteis 3,5 bilhes de cartes inteligentesAlm de set-top boxes, impressoras, webcams, jogos, sistemas de navegao para automveis,terminais lotricos, dispositivos mdicos, guichs de pagamento de estacionamento etc. 4. Aplicaes mveis devem crescer 102% ao ano Estudo da Mobile Business Applications and Services concludo pela ABI Research Crescimento de 102% ao ano nos prximos 5 anos Liberao dos dados especficos do negcio para dar suporte ao trabalho decampo Melhoria expressiva dos recursos dos dispositivos de acesso Uso da mobilidade nas reas de vendas, de manuteno e assistncia tcnica, detransportes e de sade 5. Onde esto as Oportunidades de Negcio? Games Entretenimento em Geral Servios Pagamentos, Consultas e meio de identificao Contedo Provedor de Noticia e Notificaes 6. Plataformas Java Java Standard Edition (JSE): Define a JVM e as bibliotecas que rodaro em PCs padres e em estaes de trabalho. Java Enterprise Edition (JEE): a plataforma JSE adicionada a um conjunto de APIs para as mquinas servidoras,containers e ferramentas. Java Micro Editon (JME): a plataforma projetada para pequenos dispositivos (PDAs, pagers,eletrodomsticos,telefones celulares e smart cards). Possui uma mquina virtual mais leve e um mnimo de bibliotecas. 7. A Plataforma JME -Arquitetura 8. A Plataforma JME - Estrutura A plataforma JME definida em termos de configuraes e perfis.Uma configurao projetada para um dispositivo especfico, baseadanos limites de memria e na capacidade de processamento. A configurao especifica: Qual Java Virtual Machine que ser instalada no dispositivo; O subconjunto das APIs da JSE que sero utilizadas na plataforma; As APIs adicionais, se necessrias; 9. Conceitos Importantes Java Community Process (JCP) Processo formalizado que permite que as partes interessadas se envolvam nas definies de verses futuras e adio de funcionalidades da plataforma Java. Quem faz/pode fazer parte da JCP? Operadoras (NTT DoCoMo); Desenvolvedores de dispositivos mveis (Nokia, Sony Ericsson, Motorola); Desenvolvedoras de IDE (Eclipse Foundation); Outras Empresas (Mitsubishi, Texas Instruments); Desenvolvedores em geral. 10. Conceitos Importantes Java Specification Requests (JSRs) Descrevem as especificaes propostas para a plataforma Java. Uma JSR revisada publicamente at que seja votada pela JCP. Aps a aprovao, torna-se uma implementao de referncia que prov uma verso livre da tecnologia. Exemplos de JSR JSR 30: J2ME CLDC 1.0 JSR 37: MIDP 1.1 JSR 68: J2ME Platform Specification JSR 82: Bluetooth JSR 118: MIDP 2.0 JSR 133: Java Game Profile JSR 139: CLDC 1.1 JSR 184: Mobile 3D Graphics API for J2ME 11. Conceitos Importantes Configuraes: Define o ambiente em que Java ser executado. Composto por um pequeno conjunto de classes que deve ser estendido por profiles; Uma configurao tem trs elementos: Mquina Virtual; Cdigo de interface com o dispositivo; Conjunto de APIs. 12. Conceitos Importantes Connected Limited Device Configuration (CLDC) Configurao usada em ambientes extremamente restritos, com capacidade mnima de processamento, fonte de energia limitada, display reduzido, conectividade intermitente e pouca memria. Usado na maioria dos aparelhos celulares. Principais limitaes das verses anteriores No opera com ponto flutuante; Sem JNI nem reflexo, e por consequncia, sem serializao de objetos; Sem grupos de threads (suporta threads, mas no grupos). Algumas limitaes foram amenizadas nas verses atuais 13. Conceitos Importantes Connected Limited Device Configuration (CLDC) java.io; java.lang; java.util. 14. Conceitos Importantes Connected Device Configuration (CDC) Destinado utilizao em dispositivos mais potentes que aqueles contemplados na configurao CLDC. Utilizando o CDC podemos construir interfaces grficas mais poderosas e aplicaes muito mais inteligentes e pesadas em termos computacionais, se comparadas s aplicaes feitas em CLDC. 15. Conceitos Importantes Mquinas virtuais: KVM (Kilobyte Virtual Machine): utilizada no CLDC, no possui suporte a double e float. uma mquina virtual com funes reduzidas, pequena quantidade de memria e um coletor de lixo (GC ou Garbage Collector) incorporado para otimizao da memria CLDC HotSpot Implementation uma mquina virtual de alto desempenho e robustez e inclui caractersticas que melhoram a execuo da aplicao em comparao com a KVM, bem como uma gesto mais eficiente dos recursos. Uma das mudanas mais importantes nesta mquina virtual foi a introduo da compilao Just-in-time (JIT), que pode ser 50 vezes mais rpida que uma instruo interpretada, como acontecia na KVM. 16. Conceitos Importantes Profiles Permitem complementar uma configurao pela adio de classes que provem caractersticas apropriadas para um tipo particular de dispositivo ou segmento de mercado Exemplos de profiles: MIDP (Mobile Information Device Profile); PDAP (PDA Profile); FP (Foundation Profile); Personal Basis; Personal Profile; Game Profile (para CDC); Mobile Information Device Profile (MIDP) Oferece recursos como rede, armazenamento local, multimdia (sons), componentes de interface, etc. 17. Tratando da implementao...Principais Pacotes CLDC 1.1 java.lang classes fundamentais para alinguagem Java; java.io I/O bsico; java.util classes utilitrias para manipulaode Collections, data e hora; javax.microedition.io suporte ao GenericConnection Framework; MIDP 2.0 javax.microedition.lcdui interface grfica comusurio; javax.microedition.midlet suporte aosMIDlets; javax.microedition.lcdui.gamedesenvolvimento de jogos; javax.microedition.rms persistncia de dados; 18. Entendendo o funcionamento deuma aplicao MIDletUm MIDlet uma aplicao Java destinada a dispositivos mveis desenvolvido com a utilizaodo perfil MIDP da configurao CLDC construda para ser executada em celulares, smartphonesou em outros dispositivos que implementem o perfil MIDPTodo dispositivo mvel tem um gerenciador de aplicativos (AM Application Manager) quecontrola os aplicativos a serem instalados, onde sero armazenados e como sero executados.A comunicao do gerenciador com o MIDlet acontece pela classe MIDlet do pacotejavax.microedition.midlet.MIDlet. Portanto, o aplicativo deve herdar esta classe, pois ela contm os mtodos que inicializam,resumem, interrompem a execuo e destroem o MIDlet. 19. Ciclo de vida do MIDletUma aplicao iniciada quando o AM invoca o mtodo startApp(), colocando a aplicao nomodo ativo.Enquanto estiver executando, ela pode ser pausada pelo AM atravs do mtodo pauseApp().Isso pode ocorrer, por exemplo, quando uma chamada for recebida ou o prprio usurio pausara aplicao.E quando a aplicao encerrada ela passa para o estado destrudo atravs do mtododestroyApp(), que limpa todos os recursos utilizados para depois fechar a aplicao.Estes trs mtodos tratam da comunicao que parte do gerenciador de aplicativos para oMIDlet.Alm destes, existem outros trs mtodos, porm, com a comunicao partindo do MIDlet parao gerenciador, so eles: notifyDestroy(): Avisa ao gerenciador que pode encerrar o MIDlet; NotifyPaused(): Envia o pedido de pausa para o gerenciador caso o MIDlet queira pausar; ResumeRequest(): Avisa ao gerenciador que a MIDlet pode tornar-se ativa novamente 20. JME Pacotes Adicionais JME Pacotes Adicionais Wireless Messaging API 2.0. Web Service Access for JME. PDA Profile for JME. Bluetooth. Mobile 3D Graphics. Mobile Media. 21. Projetando aplicativos Quanto mais funcionalidades incluirmos mais difcil ser aprender, utilizar e dar suporte aoproduto. Implemente apenas 20% das funcionalidades identificadas que voc atender a 80% do interessedo pblico consumidor.Consumidores raramente lem documentao, logo, faa com que as suas aes sejam previstasfacilmente. Minimize as quantidades de navegaes e interaes necessrias para completar uma tarefarotineira ou crucial. O vai, vai, vai e o volta, volta, volta para completar uma tarefa deve ser evitado. Consumidores esperam uma resposta imediata para as suas aes, caso contrrio elepressionar repetidamente as teclas ou assumir que o dispositivo no est funcionando. Faa com que alguma coisa na tela indique que o dispositivo est em funcionamento. Pode ser aemisso de um aviso sonoro ou uma animao. 22. Projetando aplicativos Consumidores sempre devem ter a capacidade de interromper algo que estsendo feito ou desligar o aparelho. Consumidores devem responder apenas quelas questes absolutamentenecessrias. Confirmaes desnecessrias e mensagens de erro que depreciam a experinciado consumidor devem ser evitadas. Cheque, periodicamente, o seu projeto com os projetos dos concorrentes. Quando idealizar um projeto para um dispositivo mvel lembre-se o quanto fcil operar um aparelho de TV ou um forno de microondas. 23. O Futuro do DesenvolvimentoMobile Android SO Linux embarcado criado pelo Google Criao de uma nova Maquina Virtual (Dalvik) E