Java para dispositivos móveis

  • 2,085 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,085
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
67
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Java para Dispositivos Móveis J. Gabriel Lima gabriel@ecomp.eng.br http://jgabriellima.wordpress.com Laboratório de Planejamento de Redes de Alto Desempenho LPRAD Empresa Júnior de Engenharia de Computação /UFPa
  • 2. Roteiro• Por que java?• Onde estão as oportunidades de Negócio• Plataforma Java• Java Mobile Edition• Conceitos Importantes• Implementação• Projetando Aplicativos• Como começar?• A Tecnologia Java muito além do convencional
  • 3. Por que Java?Até hoje, a plataforma Java já atraiu mais de 6,5 milhões de desenvolvedores de software. É utilizadaem todos os principais segmentos da indústria, estando presente em uma ampla gama de dispositivos,computadores e redes.• Sua versatilidade, eficiência, portabilidade de plataforma e segurança fazem dela a tecnologia ideal para a computação em rede. A tecnologia Java está em todo lugar! Ela pode ser encontrada em laptops, datacenters, consoles de jogo, supercomputadores científicos, telefones celulares e até na Internet.• A tecnologia Java está presente em mais de 4,5 bilhões de dispositivos, incluindo: • Mais de 800 milhões de PCs • 2,1 bilhões de telefones celulares e outros dispositivos portáteis • 3,5 bilhões de cartões inteligentesAlém de set-top boxes, impressoras, webcams, jogos, sistemas de navegação para automóveis,terminais lotéricos, dispositivos médicos, guichês de pagamento de estacionamento etc.
  • 4. Aplicações móveis devem crescer 102% ao ano• Estudo da Mobile Business Applications and Services concluído pela ABI Research• Crescimento de 102% ao ano nos próximos 5 anos• Liberação dos dados específicos do negócio para dar suporte ao trabalho de campo Melhoria expressiva dos recursos dos dispositivos de acesso• Uso da mobilidade nas áreas de vendas, de manutenção e assistência técnica, de transportes e de saúde
  • 5. Onde estão as Oportunidades de Negócio?• Games • Entretenimento em Geral• Serviços • Pagamentos, Consultas e meio de identificação• Conteúdo • Provedor de Noticia e Notificações
  • 6. Plataformas Java • Java Standard Edition (JSE): • Define a JVM e as bibliotecas que rodarão em PCs padrões e em estações de trabalho. • Java Enterprise Edition (JEE): • É a plataforma JSE adicionada a um conjunto de APIs para as máquinas servidoras, containers e ferramentas. • Java Micro Editon (JME): • É a plataforma projetada para pequenos dispositivos (PDAs, pagers,eletrodomésticos, telefones celulares e smart cards). • Possui uma máquina virtual mais leve e um mínimo de bibliotecas.
  • 7. A Plataforma JME -Arquitetura
  • 8. A Plataforma JME - Estrutura • A plataforma JME é definida em termos de configurações e perfis. Uma configuração é projetada para um dispositivo específico, baseada nos limites de memória e na capacidade de processamento. • A configuração especifica: • Qual Java Virtual Machine que será instalada no dispositivo; • O subconjunto das APIs da JSE que serão utilizadas na plataforma; • As APIs adicionais, se necessárias;
  • 9. Conceitos Importantes • Java Community Process (JCP) • Processo formalizado que permite que as partes interessadas se envolvam nas definições de versões futuras e adição de funcionalidades da plataforma Java. • Quem faz/pode fazer parte da JCP? • Operadoras (NTT DoCoMo); • Desenvolvedores de dispositivos móveis (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 especificações propostas para a plataforma Java. • Uma JSR é revisada publicamente até que seja votada pela JCP. Após a aprovação, torna-se uma implementação de referência que provê uma versão 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 Configurações: – Define o ambiente em que Java será executado. Composto por um pequeno conjunto de classes que deve ser estendido por profiles; – Uma configuração tem três elementos: • Máquina Virtual; • Código de interface com o dispositivo; • Conjunto de APIs.
  • 12. Conceitos Importantes Connected Limited Device Configuration (CLDC) – Configuração usada em ambientes extremamente restritos, com capacidade mínima de processamento, fonte de energia limitada, display reduzido, conectividade intermitente e pouca memória. – Usado na maioria dos aparelhos celulares. Principais limitações das versões anteriores – Não opera com ponto flutuante; – Sem JNI nem reflexão, e por consequência, sem serialização de objetos; – Sem grupos de threads (suporta threads, mas não grupos). • Algumas limitações foram amenizadas nas versões atuais
  • 13. Conceitos Importantes Connected Limited Device Configuration (CLDC) • java.io; • java.lang; • java.util.
  • 14. Conceitos Importantes Connected Device Configuration (CDC) Destinado à utilização em dispositivos mais potentes que aqueles contemplados na configuração CLDC. Utilizando o CDC podemos construir interfaces gráficas mais poderosas e aplicações muito mais inteligentes e pesadas em termos computacionais, se comparadas às aplicações feitas em CLDC.
  • 15. Conceitos Importantes Máquinas virtuais: – KVM (Kilobyte Virtual Machine): utilizada no CLDC, não possui suporte a double e float. É uma máquina virtual com funções reduzidas, pequena quantidade de memória e um coletor de lixo (GC ou Garbage Collector) incorporado para otimização da memória – CLDC HotSpot Implementation É uma máquina virtual de alto desempenho e robustez e inclui características que melhoram a execução da aplicação em comparação com a KVM, bem como uma gestão mais eficiente dos recursos. Uma das mudanças mais importantes nesta máquina virtual foi a introdução da compilação Just-in-time (JIT), que pode ser 50 vezes mais rápida que uma instrução interpretada, como acontecia na KVM.
  • 16. Conceitos Importantes Profiles – Permitem complementar uma configuração pela adição de classes que provêem características 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, multimídia (sons), componentes de interface, etc.
  • 17. Tratando da implementação...Principais Pacotes• CLDC 1.1 • java.lang classes fundamentais para a linguagem Java; • java.io I/O básico; • java.util classes utilitárias para manipulação de Collections, data e hora; • javax.microedition.io suporte ao Generic Connection Framework;• MIDP 2.0 • javax.microedition.lcdui interface gráfica com usuário; • javax.microedition.midlet suporte aos MIDlets; • javax.microedition.lcdui.game desenvolvimento de jogos; • javax.microedition.rms persistência de dados;
  • 18. Entendendo o funcionamento deuma aplicação• MIDletUm MIDlet é uma aplicação Java destinada a dispositivos móveis desenvolvido com a utilizaçãodo perfil MIDP da configuração CLDC construída para ser executada em celulares, smartphonesou em outros dispositivos que implementem o perfil MIDPTodo dispositivo móvel tem um gerenciador de aplicativos (AM – Application Manager) quecontrola os aplicativos a serem instalados, onde serão armazenados e como serão executados.A comunicação do gerenciador com o MIDlet acontece pela classe MIDlet do pacotejavax.microedition.midlet.MIDlet. Portanto, o aplicativo deve herdar esta classe, pois ela contém os métodos que inicializam,resumem, interrompem a execução e destroem o MIDlet.
  • 19. Ciclo de vida do MIDletUma aplicação é iniciada quando o AM invoca o método startApp(), colocando a aplicação nomodo ativo.Enquanto estiver executando, ela pode ser pausada pelo AM através do método pauseApp().Isso pode ocorrer, por exemplo, quando uma chamada for recebida ou o próprio usuário pausara aplicação.E quando a aplicação é encerrada ela passa para o estado destruído através do métododestroyApp(), que limpa todos os recursos utilizados para depois fechar a aplicação.Estes três métodos tratam da comunicação que parte do gerenciador de aplicativos para oMIDlet.Além destes, existem outros três métodos, porém, com a comunicação partindo do MIDlet parao gerenciador, são 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 difícil será aprender, utilizar e dar suporte ao produto. • Implemente apenas 20% das funcionalidades identificadas que você atenderá a 80% do interesse do público consumidor. • Consumidores raramente lêem documentação, logo, faça com que as suas ações sejam previstas facilmente. • Minimize as quantidades de navegações e interações necessárias para completar uma tarefa rotineira 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 ações, caso contrário ele pressionará repetidamente as teclas ou assumirá que o dispositivo não está funcionando. • Faça com que alguma coisa na tela indique que o dispositivo está em funcionamento. Pode ser a emissão de um aviso sonoro ou uma animação.
  • 22. Projetando aplicativos • Consumidores sempre devem ter a capacidade de interromper algo que está sendo feito ou desligar o aparelho. • Consumidores devem responder apenas àquelas questões absolutamente necessárias. • Confirmações desnecessárias e mensagens de erro que depreciam a experiência do consumidor devem ser evitadas. • Cheque, periodicamente, o seu projeto com os projetos dos concorrentes. • Quando idealizar um projeto para um dispositivo móvel lembre-se o quanto é fácil operar um aparelho de TV ou um forno de microondas.
  • 23. O Futuro do DesenvolvimentoMobile • Android • SO Linux embarcado criado pelo Google • Criação de uma nova Maquina Virtual (Dalvik) • Escapar do Modelo de Licenciamento do J2ME • Delega ao sistema operacional o isolamento de memória e o suporte a threads • Não tem a burocracia do JCP • Suportará J2ME • O Android já é o sistema operacional mais popular os EUA • Hoje supera o Apple Iphone OS e BlackBerry OS • JavaFX Mobile • Resposta da SUN • SO baseado em um Kernel Linux • Implementações de JavaSE e JavaME
  • 24. O que é o JavaFX?O JavaFX amplia a sua experiência na Web ao fornecer mídia e conteúdo de alta qualidade em todas as telas que vocêutilizar. Na condição de usuário, você conseguirá executar aplicativos JavaFX em um navegador ou os arrastará e soltarána área de trabalho. É uma interface dinâmica!O JavaFX é baseado em tecnologia Java: o JavaFX amplia a capacidade do Java, pois permite que desenvolvedoresutilizem qualquer biblioteca Java dentro de aplicativos JavaFX. Dessa forma, os desenvolvedores podem expandir seusrecursos em Java e utilizar a revolucionária tecnologia de apresentação que o JavaFX proporciona, a fim de criaragradáveis experiências visuais.Destaques do JavaFX:• Permite que os usuários exibam aplicativos JavaFX em um navegador ou saiam do navegador arrastando e soltando o mesmo aplicativo na área de trabalho• Possibilita um eficiente fluxo de trabalho entre o designer e o desenvolvedor com o Project Nile: designers podem trabalhar nas ferramentas de suas preferências e interagir com desenvolvedores de scripts para Web que utilizam o IDE NetBeans com o JavaFX• Amplia a tecnologia Java permitindo o uso de qualquer biblioteca Java dentro de um aplicativo JavaFX• Permite que desenvolvedores integrem ativos de Web de gráficos vetoriais, animação, áudio e vídeo em um aplicativo repleto de recursos, interação e imersão.
  • 25. Como começar?• IDE’s• Ferramentas• API’s
  • 26. A Tecnologia Java muito Além do Convencional ...
  • 27. O que é mais comum?• Aplicações • WEB • DESKTOP • MOBILE  Sistemas de armazenamento de dados  Sistema de Integração de Serviços e tecnologias
  • 28. Tecnologias comumente utilizadas...No entanto... A Tecnologia Java é muito mais que isso...
  • 29. • Hoje vamos tratar de :
  • 30. JAVA TV
  • 31. • Plataforma para Desenvolvimento para televisão digital interativa• Desenvolvido pela SUN junto com várias empresas do ramo• Por ser Java • Possui alto nível de controle • Alta flexibilidade sobre o comportamento das aplicações• Extensão da plataforma Java• Construída em cima da tecnologia JME• Visa atender as funcionalidades dos set up boxes • Stremming de áudio/vídeo • Acesso mediante à identificação • Acesso às informações e serviços • Controle e troca do canal do receptor • Controle das interfaces gráficas
  • 32. • A API provê recursos de uso geral Java TV • Alto nível de abstração • Perde-se a necessidade do conhecimento da camada de mais baixo nível • Protocolos de Transmissão • Redes transmissoras• Alguns desses recursos são: • Seleção de Serviços • Acesso e controle de banco de dados • Controle do Media Player Interno do receptor • Acesso aos dados transmitidos através do sinal da tv.• Além de outros recursos que estão fora da especificação: • Suporte a um canal de retorno – pacote java.net • Reprodução de conteúdo multimídia - JMF (Java Media Framework)• Entre os recursos não disponibilizados pelo Java TV : • Falta de sistema de gerenciamento de recursos • Falta de um sistema de arquivos
  • 33. Java TV• As aplicações Java desenvolvidas para JavaTV são chamadas de Xlets • Prover um modo de controle rígido do seu ciclo de vida• Existem 4 tipos básicos de aplicativos: • EPGs – Eletronic Program Guides -> Guias da programação do canal/rede • Aplicações dependentes de programa • Ex. Enquete em um programa de auditório • Aplicações independentes • Ex. Programa que mostra a cotação da bolsa de valores. • Onde se mantém ativa mesmo trocando-se de canal • Propagandas • Compras Online
  • 34. Java TV
  • 35. Blue-ray Disc JAVA BD-J
  • 36. • O Blue-ray • Novo formato de mídia para aparelhos eletrônico, computadores e vídeo- games (PS3) • Excelente qualidade de áudio e vídeo • Alta capacidade de armazenamento • Single Layer – 25Gb • Double layer – 50 Gb • Multi-layer – 200 Gb
  • 37. • Possibilidade de executar aplicativos Java a partir de leitores de Blue-Ray• A plataforma JAVA para os leitores de Blue- Ray é chamada de BD-J• O padrão BD-J também é parte da plataforma JavaME• Antes de iniciarmos... • Alguns conceitos básicos: • Títulos – Unidade organizadora de conteúdos de vídeo • Menu - Parte interativa da aplicação, responde aos eventos do controle remoto
  • 38. • O que é possível fazer com BD-J ? • Outras idéias ... • Menus elaborados • Desenhar textos na tela. Incluindo conteúdo dentro do quadro que está sendo exibido. • Interatividade In-movie • Ex. Processar legendas • Jogos • Desenhar formas ou imagens na tela em cima do conteúdo do vídeo que é exibido no • Persistência de Informações momento. • Download de conteúdo • Desenhar e animar as imagens na tela de um jogo interativo. • Comercio eletrônico associado com o filme • Criar botões animados com vários tipos de efeitos • Download de legendas • Eventos sincronizados • Criar menus altamente interativos que permitem ao usuário selecionar um título, um • Compartilhamento de experiências capítulo, ou quaisquer outras opções em comunidades avançadas como conteúdo extra. • Versatilidade de design • Internet Banking
  • 39. • Uma plataforma - > Dois ModelosHigh-Definition Movie (HDMV) – Modelo criado através da extensão defuncionalidades do DVD.Blu-ray Disc Java (BD-J) – Modelo baseado em uma plataformacompletamente programável com suporte a conectividade e novos modos deinteração.
  • 40. Menus mais bem elaborados que podem ser abertos em cima do filme sem quehaja a interrupção do mesmo
  • 41. Impactos no mercado... • Um mercado potencial de mais de 1 Bilhão de aparelhos novos rodando a Máquina Virtual Java (JVM); • Milhares de títulos que podem ser incrementados com Java, abrindo um grande mercado para desenvolvedores; • Uma nova plataforma para comercio eletrônico interativo, onde você pode comprar os objetos que estão aparecendo no filme! • Novo método de integração entre os usuários sem a necessidade do computado.
  • 42. Java Games 3D
  • 43. Sistemas Embarcados com Java
  • 44. O que são sistemas embarcados? Um sistema embarcado (ou sistema embutido) é um sistema microprocessado no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferente de computadores de propósito geral, como o computador pessoal, um sistema embarcado realiza um conjunto de tarefas predefinidas, geralmente com requisitos específicos. Já que o sistema é dedicado a tarefas específicas, através de engenharia pode-se otimizar o projeto reduzindo tamanho, recursos computacionais e custo do produto.
  • 45. Ok! E como a Tecnologia Java entra nessecontexto ?Alguns exemplos muito interessantes são:• SUN SPOT• JSTAMP
  • 46. JStamp Development Station
  • 47. Exemplos...
  • 48. Sun SPOT• Sun Small Programmable Object Technology• Um elemento de rede de sensores sem fio (RSSF), desenvolvido pela Sun Microsystems• Sua programação Baseia-se na máquina virtual JME• O dispositivo completo, inteiramente montado, cabe em uma palma de mão normal• Núcleo ARM (arquitetura de processador de 32 bits usada principalmente em sistemas embarcados) modelo 920T de 32 bits, a 180 MHz, com 512 K de RAM e 4 M de memória Flash;• interface de rádio IEE 802.15.4 (sobre a qual usualmente se implementa o ZigBee - um conjunto de especificações para a comunicação sem-fio entre dispositivos eletrônico), a 2.4 GHz, com antena integrada;• Interface USB.
  • 49. Sun SPOTPlaca de Sensor• Medidor de aceleração (ou acelerômetro) de 3 eixos, 2G/6G;• Sensor de temperatura;• Sensor de luz;• 8 Leds tri-colores;• 6 entradas analógicas;• 2 sensores de movimento;• 5 pinos para I/O de propósito geral, e 4 pinos de saída de alta corrente.Bateria• Bateria recarregável de lítio de 3.6 V e 750 mAh;• Modo de inatividade (ou sleep) profundo a 48 uA;• Gerenciamento automático de bateria provido pelo software.
  • 50. • Projeto Sun SPOT foi criado para incentivar o desenvolvimento de novas aplicações e dispositivos.• Ele é projetado desde o baixo nível para permitir que programadores que nunca trabalharam com dispositivos embutidos possam pensar além do teclado, mouse e tela e escrever programas que possam interagir uns com os outros.• Um programador Java pode usar as ferramentas padrão de desenvolvimento Java, como o NetBeans para escrever código.
  • 51. • Temos PDAs, telefones celulares e MP3 players. • Talvez você possa projetar os próximos dispositivos eletrônicos para consumo pessoal.• Quer construir um dispositivo que reconheça movimentos e seja capaz de interagir com brinquedos robóticos?• Talvez a sua empresa está tendo um problema de transporte de produtos frágeis e queira acompanhar o que acontece com eles.• Talvez você seja um entusiasta do modelo de foguete que quer transmitir dados ao vivo de seu foguete• Ou talvez você só quer saber ao certo se ou não a luz se apaga quando você fecha a porta da geladeira.Sun SPOTS fornecer uma plataforma para tudo isso e muito mais...
  • 52. E as aplicações?Dependerá somente da sua imaginação....
  • 53. Dúvidas ?
  • 54. Java para Dispositivos Móveis J. Gabriel Lima gabriel@ecomp.eng.br http://jgabriellima.wordpress.com Laboratório de Planejamento de Redes de Alto Desempenho - LPRAD Empresa Júnior de Engenharia de Computação /UFPa