Está en la página 1de 48

Desarrollo de aplicaciones para dispositivos mviles utilizando J2ME

09.09.05

Agenda
Dispositivos Mviles Qu es Java? Conceptos bsicos Plataformas de Java J2ME Configuraciones Perfiles MIDP Ejemplo de un MIDlet

Dispositivos mviles
Hoy en da existen mas de 1.5 billones de telfonos mviles en el mundo. Puedes usarlos para navegar por la Web, tomar fotos, enviar correos y jugar, muy pronto estos dispositivos podran hacer las PCs obsoletas. Existen ms de 1.5 billones de telfonos celulares en el mundo, ms de tres veces el nmero de PCs. Estos dispositivos han formado parte de nuestras vidas por lo que es difcil pensar el vivir sin ellos.

Dispositivos mviles

Dispositivos mviles

Qu es Java?
Creado a inicios de los 90s Concebido para utilizarse en dispositivos tales como hornos de microondas, refrigeradores, televisores, etc. Lenguaje de programacin (OO) Herramientas y entorno de desarrollo Clases, libreras y APIs que son entregadas como estndar.

Conceptos Bsicos
JVM. El compilador de java genera bytecodes, los cuales son interpretados por una maquina virtual, esta maquina virtual procesa los bytecodes sobre una arquitectura especifica

Conceptos Bsicos
JRE. Java Runtime Enviroment, que incluye libreras principales, plugins, JVM. JDK. Java Development Kit. Que incluye, el lenguaje java, herramientas de desarrollo, APIs, JRE.

Conceptos Bsicos

Conceptos Bsicos
Caractersticas de Java:
! ! ! ! ! Seguro Confiable Orientado a objetos Gratuito Sencillo

Plataformas
J2SE Java 2 Platform, Standard Edition. Conjunto de herramientas para desarrollar aplicaciones Java que incluye APIS, JDK, JRE, JVM, ejemplos de cdigos fuente. J2EE Java 2 Platform Enterprise Edition. Proporciona un conjunto de herramientas y libreras necesarias para extender a java en tecnologas de server side. J2EE es un sper conjunto de J2SE. J2ME Java 2 Platform, Micro Edition. Desarrollada para que Java corra sobre dispositivos como son: handhelds, celulares, relojes, etc. Contiene un conjunto de libreras mas reducido que J2SE.

J2ME
J2ME (Java 2 Micro Edition) es un ambiente de desarrollo y ejecucin diseado para poner software hecho en Java en consumibles electrnicos y dispositivos embebidos (embedded). En la conferencia JavaOne de 1999, Sun presento las tres ediciones de Java: J2SE, J2EE y J2ME. Sun tambin presento la primera maquina virtual para J2ME, nombrada como KVM o K Virtual Machine. El regreso oficial de Java en dispositivos pequeos finalmente se completo.

J2ME
Metas de J2ME: ! Proporcionar soporte a una variedad de dispositivos con diferentes capacidades. ! Proporcionar una arquitectura que pueda ser optimizada en espacios pequeos. ! Enfocado en dispositivos que puedan ser altamente personalizados, a menudo usados por una sola persona. ! Proporcionar conectividad a redes a travs de un rango de capacidades y servicios. ! Aprovechar al mximo las capacidades y restricciones nicas de cada dispositivo.

Tecnologa J2ME

J2ME
J2ME presenta dos conceptos arquitectnicos: ! Configuraciones ! Perfiles

Configuraciones
En una configuracin se especifican tres elementos bsicos: ! Un conjunto de caractersticas del lenguaje de programacin Java. ! Un conjunto de caractersticas de la Maquina Virtual de Java. ! Un conjunto soportado de libreras Java y de APIs. Una configuracin es bsicamente un conjunto de APIs junto con ciertas caractersticas de la maquina virtual, necesarias para soportar un amplio rango de dispositivos. El primer paso de hacer relevante la tecnologa J2ME para un rango de diferentes tipos de dispositivos fue primeramente organizarlos en configuraciones. Existen dos tipos de configuraciones: ! CLDC (Connected Limited Device Configuration) ! CDC (Connected Device Configuration)

Configuraciones
CLDC utiliza la Maquina Virtual Kilobyte (KVM) mientras que CDC utiliza la Maquina Virtual C (CVM). La implementacin de una maquina virtual en J2ME deber adherirse a las especificaciones definidas por la configuracin. Las configuraciones definen el contrato entre un perfil y la Maquina Virtual de Java.

Configuraciones

Connected Limited Device Configuration (CLDC)


Requerimientos:
! Correr sobre la KVM ! 160Kb a 512Kb de memoria total disponible para el entorno de java. ! Procesador de 16 o 32 bits. ! Bajo consumo de energa. A menudo estos dispositivos utilizan bateras como fuente de energa. ! Soporta algn tipo de conectividad a una red. La mayora de estos dispositivos utilizan una conexin de banda-ancha baja cerca de 9600bps a menudo es conexin inalmbrica.

Connected Device Configuration (CDC)


La CDC corre sobre una Maquina Virtual C (CVM) que es completamente compatible con la especificacin de la maquina virtual de Java. Los dispositivos que usan CDC utilizan al menos 512Kb de memoria; sin embargo esta configuracin es diseada para plataformas con cerca d 2Mb de memoria disponible. Los dispositivos en esta categora tienen un poder sustancial de procesamiento. Estos a menudo pueden estar conectados a la pared, y estos soportan varias capacidades de red.

Perfiles
As como las configuraciones definen el contrato entre el perfil y la VM, un perfil es el que define el contrato entre el dispositivo y la aplicacin. Un perfil es un conjunto adicional de APIs que soportan un amplio rango de dispositivos. Los perfiles proporcionan la flexibilidad para soportar diferentes tipos de dispositivos con un entorno de ejecucin compatible con el de java.

Perfiles

Configuraciones y Perfiles

Mobile Information Device Profile (MIDP)


Caractersticas de MIDP 1.0: ! Primer perfil oficial por SUN ! Telfonos celulares, beepers, dispositivos Palm ! Dispositivos personalizados ! Recursos restringidos Caractersticas de MIDP 2.0 (2002): ! Seguridad usando HTTPS (Hypertext Transfer Protocol over Secure Socket Layer) ! Inclusin formal de Over the air (OTA) ! Mejora en las capacidades de interfaz de usuario ! Parser para XML ! API para sonido

Requerimientos para MIDP


Pantalla de al menos 96 x 54 pxeles Al menos un tipo de entrada para usuario 128 Kb de memoria no voltil para correr componentes MID (Mobile Information Device) Al menos 8Kb de memoria no voltil para almacenar datos persistentes de las aplicaciones. 32 Kb de memoria voltil para correr Java. Conectividad inalmbrica a redes.

Arquitectura del perfil MIDP

La suite MIDlet
Un MIDlet es una aplicacin Java diseada para ser ejecutada en un dispositivo mvil. Mas especficamente, un MIDlet tiene como las clases principales del perfil MIDP y la configuracin CLDC. La suite de un MIDlet consiste en uno o mas MIDlets empacados juntos en un archivo JAR.

Modelo de estados de un MIDlet


Las transiciones en un MIDlet ocasionan que este se encuentre en diferentes estados durante su tiempo de vida. Un MIDlet puede estar en uno de tres estados. Cuando el AMS crea primero un MIDlet, el MIDlet existe en el estado de paused.

Modelo de estados de un MIDlet

MIDlet
Las implementaciones de un MIDP crean solamente un objeto por MIDlet. El MIDlet es una instancia de la clase principal que extiende de la clase MIDlet. Este puede crear muchos objetos Displayable.

Entorno de ejecucin del administrador de aplicaciones


El AMS (Application Manager Software) es el software sobre un dispositivo mvil el cual es responsable de instalar, correr y remover MIDlets. Este software es dependiente del dispositivo. Cuando el administrador de aplicaciones inicia un MIDlet, este har disponible a la aplicacin lo siguiente: ! Acceder a la CLDC y a la JVM: Los MIDlets pueden hacer uso de cualquier clase definida dentro de CLDC. ! Acceder a las clases definidas del MIDP, estas libreras definen e implementan la interfaz de usuario, almacn persistente, soporte a red utilizando HTTP, timers y manejo de la interaccin del usuario con el dispositivo. ! Acceder al archivo JAR, si el MIDlet fue entregado usando un archivo JAR, cualquier clase u otros recursos dentro del archivo deben estar disponibles al MIDlet ! Acceder al Archivo Descriptor de la Aplicacin (JAD), un MIDlet puede acceder a su archivo JAD si este se encuentra disponible.

Ejemplo, crear proyecto

Ejemplo, crear proyecto

Ejemplo, crear proyecto

Ejemplo, crear MIDP MIDlet

Ejemplo, crear MIDP MIDlet

Ejemplo, crear MIDP MIDlet

Ejemplo, crear MIDP MIDlet

Ejemplo, clase MIDletSample

Ejemplo, clase DisplayableMain

Ejemplo, empacar aplicacin

Ejemplo, empacar aplicacin

Ejemplo, empacar aplicacin

Ejemplo, empacar aplicacin

Ejemplo

Ejemplo, ejecucin de la aplicacin

Ejemplo, ejecucin de la aplicacin

Referencias
Your Next Computer; http://www.msnbc.msn.com/id/5092826/site/newsweek/ CDC: JAVA Plataform Technology for connected devices, Sun microsystems, White paper, june 2005 J2ME, MIDP for Palm OS; http://java.sun.com/products/midp4palm/ Java 2 Micro Edition Java in Small Things; James White, David Hemphill; Manning, 2002 Core J2ME Technology & MIDP; John W. Muchow; Prentice Hall, 2001 Wireless J2ME Platfom Programming; Vartan Piroumian; Prentice Hall, 2002 Java 2 Platform, Micro Edition (J2ME); http://java.sun.com/j2me/ MIDP for Palm OS, http://java.sun.com/products/midp4palm/ Nokia Developers Suite for J2ME, http://www.forum.nokia.com/main/0,6566,034-2,00.html