1. Compilación y distribución de midlets con J2ME Jorge Iván Meza Martínez < [email_address] > http://www.jorgeivanmeza.com/ http://educacion.misservicios.net/
2.
3. Introducción Después de implementado el código fuente de las clases e interfaces que componen el midlet debe procesarse para convertirlo en código binario interpretable por la máquina virtual (JVM), es decir, clases Java ( bytecode contenido en archivos *.class ). En este capítulo se discutirán los aspectos teóricos de este procesos que serán practicados a continuación utilizando la implementación del midlet HolaMundo del capítulo inmediatamente anterior.
4.
5.
6. Actividades: Entorno de desarrollo Se realizan una única vez mientras se desarrolla la aplicación. Su misión es generar el código fuente y convertirlo a su correspondiente distribución binaria entendible por la máquina virtual del dispositivo.
7. Edición del código Hace referencia a la generación del código fuente de la aplicación móvil utilizando las librerías de Java y las provistas por la plataforma J2ME. Corresponde con la etapa de implementación del ciclo de desarrollo y se realiza, al igual que en Java, con cualquier editor de texto plano. El producto final son uno o varios archivos con la extensión .java conteniendo el código fuente de la aplicación, uno por cada clase implementada.
8. Compilación Convierte el código Java escrito en la etapa anterior ( *.java ) a clases binarias ( *.class ) que podrán ser interpretadas por la máquina virtual. Este proceso requiere del ambiente de desarrollo de Java Standard Edition ( J2SDK ) y del Java Wireless Toolkit ( JWTK ). El producto final clases binarias, una por cada clase/interfaz implementada.
9. Preverificación Debido a las restricciones de los dispositivos móviles, la verificación de las clases se divide en dos etapas: la preverificación durante el desarrollo y la verificación durante la ejecución por la JVM. Realiza revisiones de seguridad, integridad y cumplimiento de los estándares. La verificación se realiza durante 4 pases. Al terminarse satisfactoriamente la revisión, los resultados son anotados en los archivos binarios.
10.
11.
12.
13. Preverificación: Fase #4 Durante este pase se realiza la verificación de cargue de clases y se termina el proceso de preverificación. Se modifican los archivos binarios ( *.class ) involucrados agregándosele los resultados de la verificación para futura revisión por parte del dispositivo móvil. Tomado Programming:J2ME:MIDlet_Preverify .
14. Empaquetado Reune las clases, interfaces y recursos obtenidos de las etapas anteriores empaquetándolas en un archivo JAR (Java ARchive) para su posterior distribución. Los archivos JAR son similares a los archivos ZIP pero incluyen además metainformación acerca de su contenido ( manifest ). El producto final es el archivo JAR mencionado junto con un archivo JAD ( Java Application Descriptor ) que lo describe.
15. Archivo JAR El archivo JAR contendrá a un midlet o a una suite de midlets junto con sus recursos. Téngase en cuenta que los midlets pertenecientes a una misma suite , comparten el mismo entorno de ejecución. En términos generales, el archivo JAR contiene la distribución de la aplicación móvil. El archivo JAD puede ser opcional y sólo es requerido según la forma de distribución que se le planee dar al aplicativo.
16. Archivo JAD Su objetivo es el de describir el contenido del archivo JAR. Es un archivo de texto plano donde cada línea es una propiedad con el siguiente formato. nombre: valor Desde la aplicación es posible acceder a los atributos del archivo JAD a través del método getAppProperty(name) de la clase Midlet .
17. Archivo JAD Las propiedades pueden ser definidas por el usuario según sus necesidades o las dispuestas por la especificación de MIDP. De las reservadas por la especificación de MIDP hay algunas de carácter obligatorio y otras de carácter opcional. Para mayor información al respecto consultar Retrieving MIDlet Attributes en http://developers.sun.com/mobility/midp/ttips/getAppProperty/ .
21. Distribución de la aplicación Para este momento la aplicación móvil ya fue desarrollada y se encuentra lista para ser instalada en los dispositivos móviles cliente. La distribución hace referencia a esta transmisión del midlet en su estado binario (JAR/JAD) desde el escritorio del desarrollador hasta los dispositivos móviles.
22.
23. Distribución: local Muy utilizada con teléfonos móviles a través de cables USB. Generalmente no requiere del archivo JAD, solamente del JAR. Es probable que se requiera de algún tipo de software específico instalado en el computador local para realizar la conexión con el dispositivo móvil. La suite de midlets es transmitida durante la sincronización del dispositivo.
24. Distribución: remota Se realiza a través de la red utilizando el protocolo HTTP/HTTPS. Se conoce como OTA ( Over-The-Air provisioning ). Las aplicaciones se publican utilizando un servidor web y son descargadas utilizando los navegadores web de los dispositivos móviles. Es posible utilizar otros medios alternativos como RS232, IrDA y Bluetooth.
25. Distribución: remota Acceso a la página web (XHTML/WML) utilizando un navegador. Se da click sobre el enlace al archivo descriptor. Envío del tipo MIME text/vnd.sun.j2me.app-descriptor . Envío del contenido del archivo JAD. Activación del AMS. Confirmación del usuario para la instalación. Obtención de la propiedad Midlet-Jar-URL . Solicitud del JAR a la URL obtenida. Envío del tipo MIME application/java-archive . Envío del contenido del archivo JAR. Recepción e instalación del JAR. Confirmación de la operación (si existe Midlet-Install-Notify ).
27. Distribución por red: simplificada Tomado de http://developers.sun.com/mobility/midp/articles/ota/ .
28. Distribución por red: ampliada Tomado de http://developers.sun.com/mobility/midp/articles/ota/ .
29.
30. AMS: instalación Se encarga de recibir las solicitudes de instalación de las maneras descritas en la sección de distribución y de almacenar el midlet de manera apropiada en la memoria (principal o secundaria -tarjetas de almacenamiento) del dispositivo para su futura ejecución.
31. AMS: actualización De manera similar a la tarea de instalación, el AMS basado en la información del archivo JAD puede conocer la versión del midlet instalado y determinar si existe o no una nueva versión en el servidor y proceder a descargarla para reemplazar la local. Utiliza las propiedades Midlet-Version y Midlet-Jar-URL del archivo descriptor.
32. AMS: ejecución Permite al usuario seleccionar un aplicativo J2ME y solicitar su ejecución por parte de la máquina virtual del dispositivo móvil. Su presentación y características son dependientes de la implementación específica del dispositivo.
33. AMS: eliminación Permite remover una suite de midlets junto con todos los recursos de almacenamiento que hayan sido reservados con ella. Requiere confirmación del usuario y es un proceso irreversible. Propiedad opcional Midlet-Delete-Confirm del JAD permite presentar mensaje personalizado para la confirmación. Propiedad opcional Midlet-Delete-Notify del JAD permite notificar la eliminación a un URL específico.