2. Agenda
O que é?
O que eu faço com isso?
Como eu faço isso?
Cool Stuff
Como acho mais informações?
3. Mercado de tel. celular no Brasil
• 164,5 milhões de aparelhos (agosto/2009)
> Linhas de telefonia fixa: 43 milhões de telefones
• 89,61% da população brasileira possui uma linha
móvel
• Fonte: www.anatel.gov.br
4. O que é Java ME?
• Java para dispositivos embarcados
8. CLDC
• Connected, Limited Device “Configuration”
• Define configurações mínimas
> Dispositivos com conexão de rede
> Pouca memória (160 KB)
• JSR-30 (1.0) e JSR-139(1.1)
9. MIDP
• Mobile Information Device “Profile”
• Define um conjunto de APIs
• Aplicações chamadas de MIDlet
> Ciclo de vida
> UI de alto e baixo nível
> RMS (Record Management Store)
> Suporte HTTP
• Perfil atual dos dispositivos celulares
> Versão 2.0
• JSR-37 (1.0), JSR-118 (2.0) e JSR-271 (3.0)
12. NetBeans
• IDE Java
> Ajax, C/C++, Databases, Debugger, Desktop, Editor,
GUI Builder, Java EE, Java ME, Java SE, Javascript,
Mobile, Profiler, Refactor, REST, Rich Client Platform,
Ruby, SOA, SOAP, UML, Web, WSDL, XML
> Amplo suporte a plugins
> Desenvolvimento drag-and-drop
• Software Livre
> Grátis!
> Grande comunidade em volta
13. Java Platform Micro Edition Software
Development Kit 3.0
• Antigo Sun Wireless Toolkit (WTK)
• Implementação Java ME
> Blu-ray Disc Java
> CDC
> CLDC & MIDP
> WMA, MMAPI, JTWI, J2ME Web Services, PDAP,
Bluetooth and OBEX, Mobile 3D Graphics
• Emulador
• OTA
• Suporte a criptografia
• Obfuscador
14. NetBeans Mobility Pack
• Extensão do NetBeans para Java ME
• Integração com o Wireless Toolkit
• Suporte de outros emuladores
> Nokia, Sony Ericsson, Motorola, Siemens, ...
• Build baseado em Script Ant
• Visual Designer
17. O não tão básico: RMS
RecordStore rs = RecordStore.
openRecordStore("myRecord", false);
byte b[] = someString.getBytes();
int id = rs.addRecord(b, 0, b.length);
getRecord(id, b, 0);
rs.deleteRecord(id);
rs.closeRecordStore();
18. O não tão básico: HTTP
HttpConnection c = (HttpConnection)
Connector.open("http://web.site.com/");
c.setRequestMethod(HttpConnection.GET);
if (c.getResponseCode() ==
HttpConnection.HTTP_OK) {
InputStream in = c.openInputStream();
...
}
c.close();
19. Outras strings para o GCF*
"sms://+5121234567:5000"
"btspp://001AA3000C19:1;authenticate=false
;encrypt=false;master=false"
"serversocket://:10000"
*Específicas do aparelho
20. Cool Stuff: Floggy
• Framework para persistência
Person p = new Person(name, surname, ...);
PersistableManager pm =
PersistableManager.getInstance();
int id = pm.save(p);
pm.load(p, id);
25. Outros SDKs
• Sun Java ME SDK 3.0
• NetBeans 6.5 IDE
• MOTODEV Studio for Java ME
• Nokia S60, S40, and NFC SDKs
• BlackBerry JDE 4.7
• Sony Ericsson SDK 2.5 for Java ME
• LG SDK 1.2 for Java ME
• http://java.sun.com/developer/technicalArticles/java
me/stateoftheunion/