O documento fornece uma introdução abrangente sobre a plataforma Java ME, incluindo seu cenário de mercado, arquitetura, APIs, ferramentas de desenvolvimento e certificação. Ele contextualiza a computação móvel, discute as principais plataformas, analisa os componentes, características e desafios da plataforma Java ME, e fornece referências adicionais para aprendizado.
1. Desmistificando o Java ME
Vando Batista
vandob.wordpress.com
vandofb@yahoo.com.br
Café com Tapioca, Maio 2008
Some Rights Reserved
2. Objetivos
• Contextualizar-se no cenário de mobilidade
• Identificar as principais plataformas
• Analisar a plataforma Java ME
• Fomentar computação para mobilidade
3. Cenário de Mercado
• Aplicações de negócios para dispositivos móveis
▫ Crescimento de 102% ao ano, até 2012 - Mobile
Business Applications and Services, ABI Research
• Oferta de novos serviços
• Avanços, popularização
▫ Recursos dos dispositivos Fonte: Teleco
▫ Conectividade
4. • Como chegar ao
CEJUG CCT de
Maio?
• “The real Internet
finally made mobile”
Nokia, 01/04/2008
7. O que é Computação Móvel?
• “Computação que se ocupa com a exploração da
conexão em equipamentos portáteis” Coulouris,
Dellimore, Kindberg. Sistemas Distribuídos (4a
edição)
• Transparência de mobilidade
8. Características como Desafios
• Dispositivos
• Redes
• Limitações e heterogeneidade
3G, 4G...
• Dependências
▫ Energia: autonomia de bateria
▫ Recurso: disponibilidade de conexão
14. APIs e JSRs
• Quantas JSRs são mantidas pelo JCP?
▫ EE: 45
▫ SE: 43
▫ ME: 83
• Java Community Process
▫ Reference Implementation
▫ Test Compatibility Kit
• APIs proprietárias
• Interação com aplicações nativas
▫ Browser, ligação
15.
16. Fragmentação
• Aspectos
▫ Computacional
▫ Físico
▫ API
• Java Technology for Wireless Industry (JSR 185)
• Mobile Service Architecture (JSRs 248, 249)
18. “Hello Mobile World!” em MIDP
• Desenvolvimento
▫ preprocess, build, obfuscate, preverify, run, debug,
and deploy
• MIDlet Suite
▫ JAD
▫ JAR
▫ Ciclo de vida
• Usando
▫ Eclipse + Eclipseme
▫ NetBeans + Mobility
19. Interface Gráfica de Usuário
• Componentes
▫ Display
▫ Displayable
▫ High level
▫ Low level
▫ Game API
20. Armazenamento Persistente
• Record Management System
• RecordStore
• RecordEnumeration
• RecordComparator
• RecordFilter
Fonte: IBM - www.ibm.com/developerworks/library/wi-rms/
21. Conectividade
• Generic Connection Framework
• Remota – Infraestruturada
▫ HTTP, HTTPS
▫ TCP, UDP
▫ Wireless Messaging API
▫ Push Registry
▫ SIP
Fonte: SDN - java.sun.com/javame
• Local – Ad-hoc
▫ JSR 82: JABWT
▫ JSR 259: Ad Hoc Networking API
22. Otimizações
• Liberar objetos
• String Vs. StringBuffer
• Arrays Vs. Collection
• Moderação
▫ Synchronized
▫ Variáveis de instância
▫ Quantidade de parâmetros
▫ Iniciação de recursos
▫ Interfaces, classes internas
• Obfuscação, compressão (JAR)
25. Demos
• Sun WTK
• Mobile & Embedded Community
• Skype Mobile
• Last.fm Social Player
26. Comunidade
• Mobile & Embedded
▫ http://today.java.net/pub/ct/mobileandembedded
• Projetos no Java.Net
▫ 147 projetos
▫ Spontaneousware
• Java Mobility Podcast
▫ 45 áudios
27. Referências
• Mobile and Embedded Guide to JavaOne 2008
▫ http://wiki.java.net/bin/view/Mobileandembedde
d/JavaOne2008
• A Survey of Java ME Today
▫ http://developers.sun.com/mobility/getstart/articl
es/survey/
• Java ME Device Table
▫ http://developers.sun.com/mobility/device/
• Curso do JEDI (DFJUG)
▫ http://jedi.wv.com.br