SlideShare uma empresa Scribd logo
1 de 34
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/
Contenido ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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.
Descripcion del proceso ,[object Object],[object Object],[object Object],[object Object]
Actividades: Entorno de desarrollo ,[object Object],[object Object],[object Object],[object Object]
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.
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.
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.
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.
Preverificación: Pase #1 ,[object Object],[object Object],[object Object],[object Object]
Preverificación: Fase #2 ,[object Object],[object Object],[object Object],[object Object]
Preverificación: Fase #3 ,[object Object],[object Object],[object Object],[object Object],[object Object]
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 .
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.
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.
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 .
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/ .
Ejemplo de JAD MIDlet-Name : Hola Mundo MIDlet-Version : 1.0 MIDlet-Vendor : jimezam MIDlet-Description : MIDlet de ejemplo MIDlet-1 : HolaMundo, /ejemplo/logo.png, ejemplo.HolaMundo MIDlet-Jar-URL : http://localhost/j2me/ejemplo/HolaMundo.jar MIDlet-Jar-Size : 1428 MicroEdition-Configuration : CLDC-1.1 MicroEdition-Profile : MIDP-2.0
Actividades: Dispositivo móvil ,[object Object],[object Object],[object Object],[object Object]
Resúmen del proceso
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.
Distribución de la aplicación ,[object Object],[object Object],[object Object],[object Object]
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.
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.
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 ).
Códigos de estado del AMS
Distribución por red: simplificada Tomado de  http://developers.sun.com/mobility/midp/articles/ota/ .
Distribución por red: ampliada Tomado de  http://developers.sun.com/mobility/midp/articles/ota/ .
Funciones del AMS ,[object Object],[object Object],[object Object],[object Object],[object Object]
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.
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.
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.
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.
Fin de la presentación. Creative Commons (CC)

Mais conteúdo relacionado

Mais de Jorge Iván Meza Martínez

Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203Jorge Iván Meza Martínez
 
Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517Jorge Iván Meza Martínez
 
GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128Jorge Iván Meza Martínez
 
Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07Jorge Iván Meza Martínez
 
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0Jorge Iván Meza Martínez
 
Práctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte IPráctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte IJorge Iván Meza Martínez
 
Generación del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseMEGeneración del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseMEJorge Iván Meza Martínez
 
Generación del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKGeneración del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKJorge Iván Meza Martínez
 
Introducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google MappletsIntroducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google MappletsJorge Iván Meza Martínez
 

Mais de Jorge Iván Meza Martínez (16)

Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203Presentación grupo de investigación UAM, 201203
Presentación grupo de investigación UAM, 201203
 
Presentación GridUAM 201112
Presentación GridUAM 201112Presentación GridUAM 201112
Presentación GridUAM 201112
 
Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517Mercadeo en la era de la web 2.0, UniQuindio 20110517
Mercadeo en la era de la web 2.0, UniQuindio 20110517
 
GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128GridUAM, presentación del proyecto - 20110128
GridUAM, presentación del proyecto - 20110128
 
Charla introducción a processing - 2010/09
Charla introducción a processing - 2010/09Charla introducción a processing - 2010/09
Charla introducción a processing - 2010/09
 
Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07Presentación introducción taller cluster 2010/07
Presentación introducción taller cluster 2010/07
 
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
Historia breve de un compromiso de seguridad - Instalación de RedHat 8.0
 
Instalacion Básica De Drupal 6
Instalacion Básica De Drupal 6Instalacion Básica De Drupal 6
Instalacion Básica De Drupal 6
 
Buscador de Talento Amigo - Presentación
Buscador de Talento Amigo - PresentaciónBuscador de Talento Amigo - Presentación
Buscador de Talento Amigo - Presentación
 
Práctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte IPráctica: distribución de midlets mediante OTA con J2ME - parte I
Práctica: distribución de midlets mediante OTA con J2ME - parte I
 
Generación del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseMEGeneración del midlet HolaMundo utilizando EclipseME
Generación del midlet HolaMundo utilizando EclipseME
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Generación del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTKGeneración del midlet HolaMundo utilizando el JWTK
Generación del midlet HolaMundo utilizando el JWTK
 
Introducción a la plataforma J2ME
Introducción a la plataforma J2MEIntroducción a la plataforma J2ME
Introducción a la plataforma J2ME
 
Desarrollo de Mi Primer Mapplet
Desarrollo de Mi Primer MappletDesarrollo de Mi Primer Mapplet
Desarrollo de Mi Primer Mapplet
 
Introducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google MappletsIntroducción al desarrollo de Google Mapplets
Introducción al desarrollo de Google Mapplets
 

Último

CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 

Último (20)

CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 

Compilación y distribución de midlets con J2ME

  • 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/ .
  • 18. Ejemplo de JAD MIDlet-Name : Hola Mundo MIDlet-Version : 1.0 MIDlet-Vendor : jimezam MIDlet-Description : MIDlet de ejemplo MIDlet-1 : HolaMundo, /ejemplo/logo.png, ejemplo.HolaMundo MIDlet-Jar-URL : http://localhost/j2me/ejemplo/HolaMundo.jar MIDlet-Jar-Size : 1428 MicroEdition-Configuration : CLDC-1.1 MicroEdition-Profile : MIDP-2.0
  • 19.
  • 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.
  • 34. Fin de la presentación. Creative Commons (CC)