Logout succeed
Logout succeed. See you again!

Java2 Micro Edition Un Primer Vistazo PDF
Preview Java2 Micro Edition Un Primer Vistazo
VERSIÓN 1.0 A medida que evoluciona la tecnología aumenta la posibilidad de añadir funcionalidad a nuestros dispositivos inalámbricos y así satisfacer las necesidades de los usuarios. ¿Por qué conformarse con los paquetes que trae el móvil por defecto cuando lo puedes personalizar?, para esto Java ha desarrollado un paquete llamado J2ME con el objetivo de desarrollar aplicaciones para PDAs, móviles, agendas electrónicas y todo tipo de dispositivos que cumplan unas determinadas especificaciones. En este documento se pretende iniciar en el manejo de este paquete así como familiarizarle con conceptos tales como MIDP, CLDC, MIDLET, RMS, Perfiles de usuario y muchos otros. Tutores: Mª Celeste Campo Vázquez y Carlos García Rubio Autores: Guillermo Diez-Andino Sancho ([email protected] ) Rosa Mª García Rioja ([email protected]) http://www.it.uc3m.es/pervasive 1 INDICE OBJETIVOS.................................................................................................................1 INTRODUCCIÓN.........................................................................................................1 J2ME Y OTRAS TECNOLOGÍAS INALÁMBRICAS.................................................2 WAP.........................................................................................................................2 SMS..........................................................................................................................2 I-MODE....................................................................................................................2 J2SE vs J2ME...............................................................................................................2 ARQUITECTURA DE J2ME........................................................................................3 K VIRTUAL MACHINE..........................................................................................3 CONFIGURACIÓN..................................................................................................4 PERFIL.....................................................................................................................4 CONCEPTOS PREVIOS..............................................................................................4 MANIFIESTO...........................................................................................................4 DESCRIPTOR..........................................................................................................5 MIDLET...................................................................................................................5 INSTALACIÓN............................................................................................................6 UN PRIMER EJEMPLO...............................................................................................9 DESCARGA DE UN MIDLET...................................................................................13 PAQUETES Y CLASES PRINCIPALES....................................................................14 JAVAX.MICROEDITON.MIDLET........................................................................14 JAVAX.MICROEDTION.LCDUI...........................................................................15 ALMACENAMIENTO DE DATOS...........................................................................21 COMUNICACIONES DE RED MEDIANTE J2ME MIDP........................................23 XML...........................................................................................................................24 UNA APLICACIÓN DE DESCARGA.......................................................................26 Compilación............................................................................................................34 Preverificación........................................................................................................35 Creación del archivo jar...........................................................................................35 Ejecución.................................................................................................................35 GLOSARIO................................................................................................................37 BIBLIOGRAFÍA.........................................................................................................38 i OBJETIVOS El objetivo de este documento es dar una visión general del lenguaje de programación Java2 Micro Edition, desarrollado por Sun para cubrir las necesidades de dispositivos con recursos muy limitados como teléfonos móviles y PDAs. En primer lugar se hará una introducción a la tecnología Java en general, para a continuación hacer una breve reseña de tecnologías paralelas existentes en el mercado. Tras ver las principales diferencias con Java2 SE se procederá a considerar los aspectos tanto de instalación como de ejecución de una primera aplicación. Por último se describirán las características principales de los paquetes más destacados en J2ME con breves ejemplos que faciliten su entendimiento. INTRODUCCIÓN TECNOLOGÍA JAVA2 Si se ha trabajado con Java anteriormente, se conocerá la edición estándar de Java, denominada J2SE (Java 2 Standard Edition). J2SE es un conjunto de herramientas y APIs que permiten desarrollar applets y aplicaciones. En los orígenes de Java este kit cubría las necesidades del mercado ya que se podía desarrollar todo lo demandado, pero a medida que pasa el tiempo y los ordenadores se adaptan más a los tiempos, aparecen nuevas exigencias a cubrir. Hoy en día los productos software tienden a ser distribuidos, a compartir información en distintas ubicaciones físicas, esto es lo que se denomina “enterprice applications”. Sun para cubrir las nuevas necesidades del mercado presenta J2EE (Java Enterprice Edition). La razón por la que no se integró el paquete J2EE en el J2SE que ya era conocido es que las aplicaciones distribuidas suponen tratar tareas específicas de red, operaciones de E/S y manejo de Base de datos con un enfoque totalmente distinto al que requiere una aplicación convencional. Además estas aplicaciones requieren manejar una significante cantidad de almacenamiento, de memoria y tienen una complejidad adicional en el diseño de APIs. Si J2EE surgió por los nuevos requisitos que presentaban las aplicaciones ni que decir tiene que se precisaba un paquete que diese soporte a las aplicaciones para móviles, PDAs, agendas electrónicas... Estos dispositivos no cuentan con mucha memoria, tienen limitaciones computacionales, los displays son pequeños...y es por esto que J2ME resume la funcionalidad de J2SE adaptándola a los requisitos mínimos necesarios que son aplicables a los dispositivos móviles, inalámbricos. J2EE J2ME J2SE 1 J2ME Y OTRAS TECNOLOGÍAS INALÁMBRICAS En esta apartado se comentan algunas de las tecnologías y servicios inalámbricos con el fin de esclarecer lo que no es J2ME, entre ellas se hablará de las más conocidas. WAP Acrónimo de Wireless Application Protocol, es una tecnología introducida en el mercado en 1995 que permite a los dispositivos inalámbricos recibir datos de Internet y mostrarlos en las pantalla de los mismos. Se piensa en Wap como una tecnología que da soporte a buscadores Web en móviles pero en realidad no es una aplicación sino un protocolo. SMS Short Messaging Service, es una tecnología que da soporte al envío y recepción de mensajes cortos de texto en dispositivos móviles. Otra característica interesante de SMS es que emplea una mensajería unificada, lo que te permite acceder a mensajes de voz, al correo electrónico y faxes desde un dispositivo móvil. I-MODE Introducido al mercado por la compañía Japonesa NTT DoCoMo, esta tecnología compite con WAP, ya que de igual modo ofrece un mecanismo de acceso a Internet a través de los dispositivos móviles. I-Mode dispone de un lenguaje de etiquetas similar a HTML denominado compact HTML (cHTML). La mayoría de sus usuarios se encuentran en Japón y otros países asiáticos. J2SE vs J2ME Java2 Micro Edition ha sido creado para adaptarse a las características de los nuevos dispositivos inalámbricos tales como teléfonos móviles y PDAs. Consecuentemente existirán diferencias con la versión estándar de Java destinada a PCs. Algunas de las principales diferencias son las siguientes: 1.- Tipos de datos J2ME soporta un subconjunto de los tipos de datos de J2SE, los tipos float y double no son soportados por dos razones: la mayoría de dispositivos CLDC no tienen unidad de coma flotante y en segundo lugar es una operación muy costosa. 2.- Preverificación (on-line y off-line) Al contrario que en J2SE dónde se realiza la verificación del código en tiempo de ejecución, en J2ME parte de la verificación se realiza off-line, es decir, fuera del dispositivo. Esto tiene la finalidad de reducir la carga de la máquina, llevando a cabo el resto de la verificación on-line. 3.- Descriptor y manifiesto 2 Al empaquetar archivos en J2ME es necesaria la inclusión de unos archivos especiales que contienen información de las aplicaciones que incluyen, estos archivos de denominan manifiesto y descriptor 4.- Nueva librería gráfica Mediante el paquete lcdui J2ME define un nuevo conjunto de clases para la creación de interfaces gráficas. Estas clases están adaptadas a dispositivos con memorias muy limitadas y pantallas de tamaño reducido. 5.- Desaparición del main Al contrario que las aplicaciones de la edición estándar de Java, en J2ME no existe una función main como punto de entrada para la ejecución del programa. El equivalente a este main sería el método start app (será explicado posteriormente). 6.- Ausencia del recolector de basura Con el objetivo de reducir la utilización de memoria, desaparece el recolector de basura en J2ME siendo necesario eliminar de forma explícita todos aquellos elementos que no vayan a ser utilizados más. ARQUITECTURA DE J2ME En este apartado se describen brevemente los conceptos básicos relacionados con J2ME. La arquitectura de alto nivel de J2ME se muestra en la siguiente figura: K VIRTUAL MACHINE La K Virtual Machine es una máquina virtual java altamente portable y compacta pensada y diseñada para funcionar en dispositivos con recursos limitados y con conexión a red. El objetivo de la tecnología KVM es el de crear la JVM más pequeña y completa que mantuviese los aspectos más importantes del lenguaje de programación Java y que funcionase en dispositivos con procesadores de 16 o 32 bits y unas 3 capacidades de unos pocos cientos de KiloBytes (originalmente 128 Kbytes de memoria). CONFIGURACIÓN Este nivel es menos visible a los usuarios, pero es muy importante para los implementadores de perfiles. Define el conjunto mínimo de características de la KVM y las librerías de clases disponibles en una categoría de dispositivos. Representaría una franja horizontal de dispositivos con un mínimo denominador común que los desarrolladores van a poder asumir que tienen todos los dispositivos con esta configuración. PERFIL Este nivel es el más visible a los usuarios y desarrolladores de aplicaciones. Las aplicaciones se desarrollan sobre un determinado perfil que a su vez está implementado sobre una determinada configuración. El perfil define un conjunto de APIs y características comunes para una franja vertical de dispositivos. Las clases de un perfil permiten el acceso a funcionalidades específicas de los dispositivos como el interfaz gráfico, funcionalidades de red, almacenamiento persistente, etc ... Las aplicaciones desarrolladas sobre un determinado perfil van a ser portables a cualquier dispositivo que soporte ese perfil. Cabe destacar que un dispositivo puede soportar varios perfiles y que sobre una configuración pueden existir diversos perfiles. Actualmente el perfil más utilizado es MIDP (Mobile Information Device Profile). CONCEPTOS PREVIOS MANIFIESTO Cuando se empaquetan varias aplicaciones J2ME (MidLets) en un paquete (MidLet Suite) es necesario incluir un fichero de texto denominado manifiesto. La finalidad del manifiesto es describir el contenido del fichero .JAR con información tal como el nombre, versión, vendedor, etc .. también se incluye en este fichero una entrada por cada MIDlet que lo compone. Un ejemplo de manifiesto podría ser el siguiente: MIDlet-1: Lista1, /icons/Lista1.png, Lista1 MIDlet-2: Texto1, /Icons/Texto1.png, Texto1 MIDlet-Name: Ejemplos MIDlet-Vendor: Sun Microsystems MIDlet-Version: 1.0 4 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 DESCRIPTOR Aunque este fichero comparte el mismo formato que el del manifiesto, su finalidad es totalmente diferente. El objetivo de este fichero es proporcionar la información requerida por el Application Management Software (programa que gestiona las descargas de aplicaciones entre otras cosas) para cerciorarse de que el MIDlet suite es adecuado para el dispositivo en el que queremos instalarle. Su extensión es .JAD y al contrario que el manifiesto, éste no se incluye en el paquete. MIDLET Las aplicaciones que se desarrollan con J2ME e implementan la especificación MIDP para dispositivos móviles se denominan MIDLETs. Los MIDLETS se deben agrupar en un fichero .JAR para que sea posible su distribución (a otros dispositivos, a través de Internet, por ejemplo). En un fichero .JAR se pueden incluir varios MIDLETs y a este conjunto se le denomina MIDLETSuite. Por último se presenta la información que se incluye en un MIDLET.JAR: • Clases MIDlet • Clases soporte • Recursos(imágenes,sonido,...) • Fichero Manifiesto ( fichero .mf) • Descriptor de aplicación (fichero .jad) 5 INSTALACIÓN WINDOWS Antes de comenzar a implementar un MIDLET se precisa tener instalado un software determinado que constituirá el entorno desarrollo J2ME. Los componentes están disponibles en http://www.java.sun.com y son los que se presentan a continuación: • Java 2 SDK • Entorno de desarrollo visual (opcional) • J2ME Wireless Kit Java 2 SDK, es el Kit de desarrollo estándar de Java que se emplea para diseñar aplicaciones estándares. Este elemento debe ser el primero en instalarse ya que los siguientes se apoyan en él. Se requiere la versión 1.3 o superior que encuentra disponible en el enlace http://java.sun.com/j2se/1.3/download-windows.html. J2MEWT se puede ejecutar individualmente o como un componente integrado en uno de los siguientes entornos gráficos de desarrollo: KToolBar : Es el entorno visual de desarrollo que permite la creación de (cid:0) MIDLETS con J2ME. Se considera el más simple de todos los aquí mencionados ya que ni siquiera cuenta con un editor. Para incluir los fuentes editados con otro programa se debe haber creado un proyecto desde KToolBar, la herramienta crea la siguiente estructura de directorios dentro del proyecto. En el directorio src se deben incluir los fuentes para que KToolBar los pueda compilar, pre-verificar y posteriormente emular. 6 Forte : Java: Se debe instalar antes que las J2MEWT, éste se puede descargar de (cid:0) la página http://www.cun.com/forte/ffj/buy.html. Durante la instalación hay que seleccionar la versión de JDK que se ha instalado. Los requisitos hardware de Forte Java son un Pentium II a 300 MHz, 128 MB y (cid:0) 30 MB de espacio en disco. Este entorno provee un entorno de desarrollo para J2SE Y J2EE. El entorno incluye un editor de texto de GUI, un buscador de clases y un buscador de Web. El buscador de clases proporciona una vista gráfica de las clases que contiene el MIDLET que se está desarrollando. Utilizando este browser se puede navegar fácilmente por los métodos y atributos de las clases, así como analizar la clase compilada almacenada en el .JAR . Code Warrior for Java: es un entorno visual que da soporte a J2ME , similar a (cid:0) Forte Java, que cuenta con un editor de textos y un browser de clases. Este software se puede adquirir en http://www.codewarrior.com/ . Jbuilder Handheld Express: presenta las mismas opciones que Forte Java y Code (cid:0) Warrior, soporta el entorno de desarrollo J2ME pero sólo para Palms, aunque se espera que en breve se presente la versión que da soporte a móviles y agendas personales. La página en la que se puede adquirir el software y obtener más información es http://www.inprise.com/jbuilder/hhe/ . J2ME Wireless Kit disponible para dos plataformas: Sun Solaris y Microsoft Windows , se puede descargar en http://java.sun.com/ products/j2mewtoolkit/ download.html . A continuación se va a comentar la instalación en Windows. 7 La versión Windows de la herramienta requiere un mínimo de 64MB y un espacio en disco de 15MB. Se deben haber llevado a cabo los pasos anteriores, ya que si en la instalación se detecta que no existe una versión de JDK no se permite continuar con la instalación. El entorno de desarrollo es opcional. Si se desea trabajar con un entorno de desarrollo no se debe seleccionar la opción de “Integrated”, sino la de “Stand Alone”. Una vez completada la instalación se debe asegurar que todo está correctamente instalado. Desde el promt de DOS vaya al directorio J2MEWTK_DIR\apps\ example\bin\, luego verá que existe un fichero run.bat, ejecútelo y si la instalación tuvo éxito verá la pantalla de inicio de la aplicación ejemplo que incluye el paquete. Ahora ya está todo listo para comenzar. 8