SlideShare una empresa de Scribd logo
1 de 23
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]
Definición Un  midlet  es una aplicación desarrollada utilizando la  plataforma J2ME  y construída sobre la  configuración CLDC  utilizando el  perfil MIDP . Los  midlets  son las aplicaciones que se desarrollan para los teléfonos móviles actuales, con soporte para  CLDC  1.0 ó 1.1 y  MIDP  1.0 ó 2.0. En el presente módulo se expondrá el ciclo de vida de estas aplicaciones y su entorno de ejecución.
Ciclo de vida de un  midlet El  midlet  en su ciclo de vida atraviesa tres tipos de estados diferentes:  pausado  ( paused ),  activo  ( active ) y  destruído  ( destroyed ).
Estado DETENIDO ( paused ) ,[object Object],[object Object],[object Object],[object Object]
Estado DETENIDO ( paused ) En este estado se espera que el  midlet  mantenga los recursos mínimos posibles liberando los demás para que sean utilizados por el dispositivo con la nueva aplicación activa. La aplicación queda en espera de una notificación asíncrona que modifique su estado actual. Puede pasar a estado  activo  si se ejecuta el método  startApp()  /  resumeRequest()  o a estado  destruído  si se ejecuta el método  destroyApp()  /  notifyDestroyed() .
Estado ACTIVO ( active ) ,[object Object],[object Object],[object Object]
Estado ACTIVO ( active ) En este estado el  midlet  se está ejecutando propiamente. Puede pasar a estado  detenido  si se ejecuta el método  pauseApp()  o a estado  destruído  si se ejecuta el método  destroyApp()  /  notifyDestroyed() .
Estado DESTRUÍDO ( destroyed ) El  midlet  pasa a este estado si es ejecutado uno de estos métodos  destroyApp() / notifyDestroyed(). Después de entrar a este estado no podrá volver a hacer ninguna otra transición.  Su finalidad es la de concluír el ciclo de vida del  midlet  y terminar la aplicación.
Métodos modificadores de estado ,[object Object],[object Object],[object Object],[object Object],[object Object]
Método  startApp() Este método es abstracto, debe ser definido por el  midlet  para reservar todos los recursos y establecer los valores iniciales de los atributos que vaya a necesitar en su estado activo. Debe tenerse muy en cuenta que  este método puede ser ejecutado en varias ocasiones : cuando se inicia por primera vez la aplicación y cada vez que el  midlet  pasa de estado  paused  a  active . Esto es particularmente importante en el momento de decidir donde realizar la creación de ciertos objetos: si en este método o en el constructor del  midlet .
Método  startApp() Como regla general en el método  startApp()  se reservarán los recursos que son liberados en el método  pauseApp() . También es necesario tener en cuenta para tomar esta decisión que el constructor del  midlet  tiene acceso al objeto  Display  (pantalla del dispositivo) solamente a partir del primer llamado al método  startApp() . El proceso de reserva de recursos puede fallar por motivos transitorios (usualmente recuperables) o por motivos permanentes (acostumbran a ser insoslayables y obligan a la terminación de la aplicación).
Método  startApp() Los problemas transitorios deberán lanzar una excepción de tipo  MIDletStateChangeException  para indicar su tipo y solicitarle al dispositivo que intente nuevamente la activación del  midlet .
Método  pauseApp() Este método es abstracto y deberá ser implementado por el  midlet . Es llamado cuando se va a detener temporalmente la ejecución de la aplicación y su función es la de garantizar la conservación del estado del  midlet  y liberar la mayor cantidad de recursos que no vayan a ser requeridos durante este estado de “hibernación”. Durante el estado  paused  el  midlet  no se encuentra formalmente activo, sin embargo está posibilitado para recibir mensajes de eventos asíncronos como temporizadores o recepción de mensajes vía  SMS .
Método  destroyApp(boolean) Este método implementado por el  midlet  es invocado por el sistema operativo o por la propia aplicación cuando esta ha de finalizar su ejecución. Su misión es la de liberar todos los recursos que el  midlet  haya reservado durante su ejecución para finalizar su ciclo de vida. El método recibe un argumento de tipo  booleano  que indica si la peticion de destrucción es incondicional ( true ) haciendo que se liberen todos los recursos para terminar la aplicación o si por el contrario, es opcional ( false ) permitiendo que esta se obvie al lanzarse una excepción de clase  MIDletStateChangeException  la cual si es manejada adecuadamente por la aplicación permitirá que el  midlet  permanezca en estado  active  rehusándose a ser finalizado .
destroyApp()  y  notifyDestroyed() Cuando es el dispositivo el interesado de terminar la ejecución del  midlet  es   este quien invoca sobre el segundo el método  destroyApp(true)  para solicitar su liberación de recursos y posterior destrucción. Cuando es el  midlet  mismo quien desea terminar su propia ejecución, este invocará el método  notifyDestroyed()  para informarle al sistema operativo sus intenciones.  Este método  no  ejecuta automáticamente al método  destroyApp()  toda vez que presupone que el  midlet  ya se encuentra listo para terminar su ejecución.
destroyApp()  y  notifyDestroyed() Como esta es la única forma que tiene un  midlet  para gestionar   su propia destrucción, es común que se realice un llamado a  destroyApp(false)  y se finalice con la invocación de  notifyDestroyed()  si no hubo contratiempos en el paso anterior.
destroyApp()  y  notifyDestroyed() Lo descrito anteriormente se ejemplifica con el siguiente código fuente. try { // Liberar recursos que haya reservado el  midlet destroyApp(false); // Notificar al sistema operativo su destrucción notifyDestroyed(); } catch(MIDletStateChangeException e) { // El  midlet  no se quiere destruír }
notifyPaused() Este método le informa al sistema operativo que el  midlet  desea pasar a estado  paused . Únicamente puede ser invocado cuando el  midlet  se encuentra en estado  active . Tiene la misma funcionalidad de la invocación del método  pauseApp()  por parte del dispositivo.
resumeRequest() Este método le indica al dispositivo que un  midlet  actualmente en estado  paused  está interesado en activarse.  El dispositivo puede reanudar al  midlet  invocando su método  startApp() .  Es funcionalmente antagónico al método  notifyPaused() . La invocación de este método acostumbra a ser provocada por una tarea que se ejecuta en segundo plano, un temporizador o un evento de orígen externo.
Entorno de ejecución Es el entorno en el que se ejecutan las aplicaciones J2ME basadas en  midlets  o en  suites  de  midlets  que implementen el perfil MIDP.  Una  suite  de  midlets  es un conjunto de  midlets  agrupados en un archivo  JAR  común. Por razones de seguridad la interacción entre  midlets  se encuentra restringida a los  midlets  que integren la misma  suite  (espacio de nombres). Las clases y recursos a los cuales tiene acceso un midlet deberán estar ubicados en la  librería CLDC , la  librería MIDP  o en el  archivo JAR  de la distribución, de lo contrario serán inaccesibles.
Entorno de ejecución El software del dispositivo que provee el entorno necesario para que las distribuciones de  midlets  puedan ser administradas: instaladas, actualizadas, eliminadas, ejecutadas y detenidas, es el  Application Management Software  (AMS) también conocido como  Java Application Manager  (JAM). El AMS también es responsable de realizar la segunda etapa de verificación de las clases del  midlet , la cual comprueba que se cumplan con todos los requerimientos de seguridad y sucede durante la instalación de la aplicación en el dispositivo. Recuérdese que una primera etapa de verificación ( preverify ) es realizada durante la etapa de desarrollo.
Fin de la presentación. Creative Commons (CC)

Más contenido relacionado

Destacado

6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles RAUL Velez
 
Java a tope: J2ME Java2 Micro Edition
Java a tope: J2ME Java2 Micro EditionJava a tope: J2ME Java2 Micro Edition
Java a tope: J2ME Java2 Micro EditionCESAR A. RUIZ C
 
J2me
J2meJ2me
J2me1 2d
 
Introducción a dispositivos_móviles
Introducción a dispositivos_móvilesIntroducción a dispositivos_móviles
Introducción a dispositivos_móvilesCESAR A. RUIZ C
 
Presentacion j2me
Presentacion j2mePresentacion j2me
Presentacion j2medachc
 
Programacion java -_curso_j2_me
Programacion java -_curso_j2_meProgramacion java -_curso_j2_me
Programacion java -_curso_j2_meArcángel López
 
Java A Tope J2 Me (Java 2 Micro Edition)
Java A Tope  J2 Me (Java 2 Micro Edition)Java A Tope  J2 Me (Java 2 Micro Edition)
Java A Tope J2 Me (Java 2 Micro Edition)Mauro Gomez Mejia
 
Java j2me pre
Java j2me preJava j2me pre
Java j2me prejtk1
 
Patrones de diseño de interacción de interfaces móviles
Patrones de diseño de interacción de interfaces móvilesPatrones de diseño de interacción de interfaces móviles
Patrones de diseño de interacción de interfaces móvilesManel González
 
J2me Presentacion
J2me PresentacionJ2me Presentacion
J2me Presentacionvivian7894
 
Patrones de Diseño Web (Getting Input - Obtención de Información) - Presentación
Patrones de Diseño Web (Getting Input - Obtención de Información) - PresentaciónPatrones de Diseño Web (Getting Input - Obtención de Información) - Presentación
Patrones de Diseño Web (Getting Input - Obtención de Información) - PresentaciónAlex Naupay
 
Modelo asignacion-programacion-lineal
Modelo asignacion-programacion-linealModelo asignacion-programacion-lineal
Modelo asignacion-programacion-linealkary101182
 
Desarrollo de interfaz de usuario en un contexto mobile
Desarrollo de interfaz de usuario en un contexto mobileDesarrollo de interfaz de usuario en un contexto mobile
Desarrollo de interfaz de usuario en un contexto mobileWorköholics
 
Software Utilitario
Software UtilitarioSoftware Utilitario
Software UtilitarioAlex Naupay
 
Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)
Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)
Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)Izaskun Saez
 
Teoria de Colas
Teoria de ColasTeoria de Colas
Teoria de Colasapaspuel
 

Destacado (20)

Los MIDlets
Los MIDletsLos MIDlets
Los MIDlets
 
6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles
 
Java Micro Edition "J2ME"
Java Micro Edition "J2ME"Java Micro Edition "J2ME"
Java Micro Edition "J2ME"
 
Java a tope: J2ME Java2 Micro Edition
Java a tope: J2ME Java2 Micro EditionJava a tope: J2ME Java2 Micro Edition
Java a tope: J2ME Java2 Micro Edition
 
J2me
J2meJ2me
J2me
 
Introducción a dispositivos_móviles
Introducción a dispositivos_móvilesIntroducción a dispositivos_móviles
Introducción a dispositivos_móviles
 
Presentacion j2me
Presentacion j2mePresentacion j2me
Presentacion j2me
 
Programacion java -_curso_j2_me
Programacion java -_curso_j2_meProgramacion java -_curso_j2_me
Programacion java -_curso_j2_me
 
Como y apps builder
Como y apps builderComo y apps builder
Como y apps builder
 
J2me midlet1
J2me  midlet1J2me  midlet1
J2me midlet1
 
Java A Tope J2 Me (Java 2 Micro Edition)
Java A Tope  J2 Me (Java 2 Micro Edition)Java A Tope  J2 Me (Java 2 Micro Edition)
Java A Tope J2 Me (Java 2 Micro Edition)
 
Java j2me pre
Java j2me preJava j2me pre
Java j2me pre
 
Patrones de diseño de interacción de interfaces móviles
Patrones de diseño de interacción de interfaces móvilesPatrones de diseño de interacción de interfaces móviles
Patrones de diseño de interacción de interfaces móviles
 
J2me Presentacion
J2me PresentacionJ2me Presentacion
J2me Presentacion
 
Patrones de Diseño Web (Getting Input - Obtención de Información) - Presentación
Patrones de Diseño Web (Getting Input - Obtención de Información) - PresentaciónPatrones de Diseño Web (Getting Input - Obtención de Información) - Presentación
Patrones de Diseño Web (Getting Input - Obtención de Información) - Presentación
 
Modelo asignacion-programacion-lineal
Modelo asignacion-programacion-linealModelo asignacion-programacion-lineal
Modelo asignacion-programacion-lineal
 
Desarrollo de interfaz de usuario en un contexto mobile
Desarrollo de interfaz de usuario en un contexto mobileDesarrollo de interfaz de usuario en un contexto mobile
Desarrollo de interfaz de usuario en un contexto mobile
 
Software Utilitario
Software UtilitarioSoftware Utilitario
Software Utilitario
 
Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)
Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)
Diseno y usabilidad en aplicaciones móviles para iphone (ui app design)
 
Teoria de Colas
Teoria de ColasTeoria de Colas
Teoria de Colas
 

Similar a Midlets con J2ME (20)

Los mi dlets_imprimible
Los mi dlets_imprimibleLos mi dlets_imprimible
Los mi dlets_imprimible
 
Los mi dlets_imprimible
Los mi dlets_imprimibleLos mi dlets_imprimible
Los mi dlets_imprimible
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Manual Tecnico
Manual TecnicoManual Tecnico
Manual Tecnico
 
Applets
AppletsApplets
Applets
 
Programación en Java: Applets
Programación en Java: AppletsProgramación en Java: Applets
Programación en Java: Applets
 
Applets
AppletsApplets
Applets
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOSunidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Clase tres
Clase tresClase tres
Clase tres
 
2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
Jade Agentes inteligentes básico
Jade Agentes inteligentes básicoJade Agentes inteligentes básico
Jade Agentes inteligentes básico
 
Unidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movilesUnidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos moviles
 
Unidad 4 preguntas
Unidad 4 preguntasUnidad 4 preguntas
Unidad 4 preguntas
 
Sistemas Tolerantes a Fallas
Sistemas Tolerantes a FallasSistemas Tolerantes a Fallas
Sistemas Tolerantes a Fallas
 
Desarrollo de sistemas tolerantes a fallas
Desarrollo de sistemas tolerantes a fallasDesarrollo de sistemas tolerantes a fallas
Desarrollo de sistemas tolerantes a fallas
 
Resumen
ResumenResumen
Resumen
 

Más 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 las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comandoGeneración del midlet HolaMundo utilizando las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comandoJorge 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
 

Más de Jorge Iván Meza Martínez (17)

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
 
Generación del midlet HolaMundo utilizando las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comandoGeneración del midlet HolaMundo utilizando las herramientas de línea de comando
Generación del midlet HolaMundo utilizando las herramientas de línea de comando
 
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

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 

Último (20)

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 

Midlets con J2ME

  • 1. Midlets con J2ME Jorge Iván Meza Martínez < [email_address] > http://www.jorgeivanmeza.com/ http://educacion.misservicios.net/
  • 2.
  • 3. Definición Un midlet es una aplicación desarrollada utilizando la plataforma J2ME y construída sobre la configuración CLDC utilizando el perfil MIDP . Los midlets son las aplicaciones que se desarrollan para los teléfonos móviles actuales, con soporte para CLDC 1.0 ó 1.1 y MIDP 1.0 ó 2.0. En el presente módulo se expondrá el ciclo de vida de estas aplicaciones y su entorno de ejecución.
  • 4. Ciclo de vida de un midlet El midlet en su ciclo de vida atraviesa tres tipos de estados diferentes: pausado ( paused ), activo ( active ) y destruído ( destroyed ).
  • 5.
  • 6. Estado DETENIDO ( paused ) En este estado se espera que el midlet mantenga los recursos mínimos posibles liberando los demás para que sean utilizados por el dispositivo con la nueva aplicación activa. La aplicación queda en espera de una notificación asíncrona que modifique su estado actual. Puede pasar a estado activo si se ejecuta el método startApp() / resumeRequest() o a estado destruído si se ejecuta el método destroyApp() / notifyDestroyed() .
  • 7.
  • 8. Estado ACTIVO ( active ) En este estado el midlet se está ejecutando propiamente. Puede pasar a estado detenido si se ejecuta el método pauseApp() o a estado destruído si se ejecuta el método destroyApp() / notifyDestroyed() .
  • 9. Estado DESTRUÍDO ( destroyed ) El midlet pasa a este estado si es ejecutado uno de estos métodos destroyApp() / notifyDestroyed(). Después de entrar a este estado no podrá volver a hacer ninguna otra transición. Su finalidad es la de concluír el ciclo de vida del midlet y terminar la aplicación.
  • 10.
  • 11. Método startApp() Este método es abstracto, debe ser definido por el midlet para reservar todos los recursos y establecer los valores iniciales de los atributos que vaya a necesitar en su estado activo. Debe tenerse muy en cuenta que este método puede ser ejecutado en varias ocasiones : cuando se inicia por primera vez la aplicación y cada vez que el midlet pasa de estado paused a active . Esto es particularmente importante en el momento de decidir donde realizar la creación de ciertos objetos: si en este método o en el constructor del midlet .
  • 12. Método startApp() Como regla general en el método startApp() se reservarán los recursos que son liberados en el método pauseApp() . También es necesario tener en cuenta para tomar esta decisión que el constructor del midlet tiene acceso al objeto Display (pantalla del dispositivo) solamente a partir del primer llamado al método startApp() . El proceso de reserva de recursos puede fallar por motivos transitorios (usualmente recuperables) o por motivos permanentes (acostumbran a ser insoslayables y obligan a la terminación de la aplicación).
  • 13. Método startApp() Los problemas transitorios deberán lanzar una excepción de tipo MIDletStateChangeException para indicar su tipo y solicitarle al dispositivo que intente nuevamente la activación del midlet .
  • 14. Método pauseApp() Este método es abstracto y deberá ser implementado por el midlet . Es llamado cuando se va a detener temporalmente la ejecución de la aplicación y su función es la de garantizar la conservación del estado del midlet y liberar la mayor cantidad de recursos que no vayan a ser requeridos durante este estado de “hibernación”. Durante el estado paused el midlet no se encuentra formalmente activo, sin embargo está posibilitado para recibir mensajes de eventos asíncronos como temporizadores o recepción de mensajes vía SMS .
  • 15. Método destroyApp(boolean) Este método implementado por el midlet es invocado por el sistema operativo o por la propia aplicación cuando esta ha de finalizar su ejecución. Su misión es la de liberar todos los recursos que el midlet haya reservado durante su ejecución para finalizar su ciclo de vida. El método recibe un argumento de tipo booleano que indica si la peticion de destrucción es incondicional ( true ) haciendo que se liberen todos los recursos para terminar la aplicación o si por el contrario, es opcional ( false ) permitiendo que esta se obvie al lanzarse una excepción de clase MIDletStateChangeException la cual si es manejada adecuadamente por la aplicación permitirá que el midlet permanezca en estado active rehusándose a ser finalizado .
  • 16. destroyApp() y notifyDestroyed() Cuando es el dispositivo el interesado de terminar la ejecución del midlet es este quien invoca sobre el segundo el método destroyApp(true) para solicitar su liberación de recursos y posterior destrucción. Cuando es el midlet mismo quien desea terminar su propia ejecución, este invocará el método notifyDestroyed() para informarle al sistema operativo sus intenciones. Este método no ejecuta automáticamente al método destroyApp() toda vez que presupone que el midlet ya se encuentra listo para terminar su ejecución.
  • 17. destroyApp() y notifyDestroyed() Como esta es la única forma que tiene un midlet para gestionar su propia destrucción, es común que se realice un llamado a destroyApp(false) y se finalice con la invocación de notifyDestroyed() si no hubo contratiempos en el paso anterior.
  • 18. destroyApp() y notifyDestroyed() Lo descrito anteriormente se ejemplifica con el siguiente código fuente. try { // Liberar recursos que haya reservado el midlet destroyApp(false); // Notificar al sistema operativo su destrucción notifyDestroyed(); } catch(MIDletStateChangeException e) { // El midlet no se quiere destruír }
  • 19. notifyPaused() Este método le informa al sistema operativo que el midlet desea pasar a estado paused . Únicamente puede ser invocado cuando el midlet se encuentra en estado active . Tiene la misma funcionalidad de la invocación del método pauseApp() por parte del dispositivo.
  • 20. resumeRequest() Este método le indica al dispositivo que un midlet actualmente en estado paused está interesado en activarse. El dispositivo puede reanudar al midlet invocando su método startApp() . Es funcionalmente antagónico al método notifyPaused() . La invocación de este método acostumbra a ser provocada por una tarea que se ejecuta en segundo plano, un temporizador o un evento de orígen externo.
  • 21. Entorno de ejecución Es el entorno en el que se ejecutan las aplicaciones J2ME basadas en midlets o en suites de midlets que implementen el perfil MIDP. Una suite de midlets es un conjunto de midlets agrupados en un archivo JAR común. Por razones de seguridad la interacción entre midlets se encuentra restringida a los midlets que integren la misma suite (espacio de nombres). Las clases y recursos a los cuales tiene acceso un midlet deberán estar ubicados en la librería CLDC , la librería MIDP o en el archivo JAR de la distribución, de lo contrario serán inaccesibles.
  • 22. Entorno de ejecución El software del dispositivo que provee el entorno necesario para que las distribuciones de midlets puedan ser administradas: instaladas, actualizadas, eliminadas, ejecutadas y detenidas, es el Application Management Software (AMS) también conocido como Java Application Manager (JAM). El AMS también es responsable de realizar la segunda etapa de verificación de las clases del midlet , la cual comprueba que se cumplan con todos los requerimientos de seguridad y sucede durante la instalación de la aplicación en el dispositivo. Recuérdese que una primera etapa de verificación ( preverify ) es realizada durante la etapa de desarrollo.
  • 23. Fin de la presentación. Creative Commons (CC)