MIDlet

4
MIDlet Un MIDlet es una aplicación J2ME desarrollada con el perfil MID, es una aplicación para dispositivos móviles cuyas limitaciones entran dentro de la especificación MIDP. Debido a la filosofía Java ("write one, run anywhere") podemos ejecutarlas sobre un amplio rango de dispositivos sin necesidad de modificarlas. Para que esta portabilidad sea una realidad la especificación MIDP ha definido los siguientes requisitos: 1. Los dispositivos de información móviles tienen que contar con un módulo software encargado de la gestión de los MIDlets (cargarlos, ejecutarlos...). Este software es el llamado gestor de aplicaciones. 2. Los MIDlet deben ofrecer una misma interfaz a todos los gestores de aplicaciones. De esta forma, independientemente de la funcionalidad que implementen (un juego, una agenda,...), los dispositivos pueden identificar a los MIDlet y realizar acciones sobre ellos. Gestor de aplicaciones El gestor de aplicaciones es el software que se encarga de gestionar los MIDlets. Este software reside dentro del dispositivo y es el que nos permite ejecutar, pausar o destruir nuestras aplicaciones J2ME. El gestor de aplicaciones debe realizar dos grandes funciones: 1. Gestión de las aplicaciones. 2. Gestión de estados de las aplicaciones. Las principales funciones realizadas por un gestor de aplicaciones son la carga, instalación, ejecución, actualización y desinstalación del MIDlet. Ciclo de vida de un MIDlet El ciclo de vida habitual de un MIDlet lo constituyen los siguientes pasos. Paso 1: El gestor de aplicaciones crea la aplicación, y tras estar en estado de espera, es pasado inmediatamente al estado activado al retornar correctamente de la llamada al método startApp().

description

Trabajo que acerca de la aplicaciones para moviles utilizando java microedition.

Transcript of MIDlet

Page 1: MIDlet

MIDlet

Un MIDlet es una aplicación J2ME desarrollada con el perfil MID, es una aplicación para dispositivos móviles cuyas limitaciones entran dentro de la especificación MIDP. Debido a la filosofía Java ("write one, run anywhere") podemos ejecutarlas sobre un amplio rango de dispositivos sin necesidad de modificarlas. Para que esta portabilidad sea una realidad la especificación MIDP ha definido los siguientes requisitos:

1. Los dispositivos de información móviles tienen que contar con un módulo software encargado de la gestión de los MIDlets (cargarlos, ejecutarlos...). Este software es el llamado gestor de aplicaciones.

2. Los MIDlet deben ofrecer una misma interfaz a todos los gestores de aplicaciones. De esta forma, independientemente de la funcionalidad que implementen (un juego, una agenda,...), los dispositivos pueden identificar a los MIDlet y realizar acciones sobre ellos.

Gestor de aplicaciones

El gestor de aplicaciones es el software que se encarga de gestionar los MIDlets. Este software reside dentro del dispositivo y es el que nos permite ejecutar, pausar o destruir nuestras aplicaciones J2ME.

El gestor de aplicaciones debe realizar dos grandes funciones:

1. Gestión de las aplicaciones.2. Gestión de estados de las aplicaciones.

Las principales funciones realizadas por un gestor de aplicaciones son la carga, instalación, ejecución, actualización y desinstalación del MIDlet.

Ciclo de vida de un MIDlet

El ciclo de vida habitual de un MIDlet lo constituyen los siguientes pasos.

Paso 1: El gestor de aplicaciones crea la aplicación, y tras estar en estado de espera, es pasado inmediatamente al estado activado al retornar correctamente de la llamada al método startApp().Paso 2: El MIDlet se ejecuta con normalidad hasta que surge un evento externo que obliga al gestor de aplicaciones a detenerlo, justo después de que la función pauseApp() se ejecute sin problemas.Paso 3: Se decide continuar con la ejecución de la aplicación por lo que el gestor de aplicaciones llama de nuevo al método startApp(), cambiando el estado del MIDlet a activado.Paso 4: El usuario decide salir del programa por lo que el MIDlet libera sus recursos e informa al gestor de aplicaciones que desea pasar al estado de destruido, llamando a notifyDestroyed(). El gestor finaliza inmediatamente después la ejecución del MIDlet.

Estructura de un MIDlet

Los MIDlet tienen la siguiente estructura:

Page 2: MIDlet

import javax.microedition.midlet.*

public class MiMidlet extends MIDlet {

public MiMidlet() {

/* Éste es el constructor de clase. Aquí debemos

inicializar nuestras variables. */

}

public startApp(){

/* Aquí incluiremos el código que queremos que el MIDlet

ejecute cuándo se active. */

}

public pauseApp(){

/* Aquí incluiremos el código que queremos que el MIDlet

ejecute cuándo entre en el estado de pausa (Opcional). */

}

public destroyApp(){

/* Aquí incluiremos el código que queremos que el MIDlet

ejecute cuándo sea destruido. Normalmente aquí se liberaran

los recursos ocupados por el MIDlet como memoria, etc.

(Opcional) */

}

}

Podemos destacar los siguientes elementos del código anterior, que son comunes a todo MIDlet:

Todas las clases del paquete javax.microedition.midlet (MIDlet y MIDletStateChangeExeption) se importan.

Todos los MIDlet heredan de la clase javax.microedition.midlet.MIDlet. Debido a esta herencia, todos presentan el mismo interfaz, lo cual permite su gestión

independientemente del entorno de ejecución. Los MIDlets, carecen de la función main() (al igual que sucede con los applets). Aunque

existiera, el gestor de aplicaciones la ignoraría por completo. Un MIDlet no puede realizar una llamada a System.exit(). Una llamada a este método

lanzaría la excepción SecurityException. Hay que implementar obligatoriamente las funciones abstractas startApp(), pauseApp() y

destroyApp().

Descripción de los métodos más importantes de la clase MIDlet.

protected abstract void startApp() throws MIDletstateChangeException

Page 3: MIDlet

Con este método se le indica al MIDlet que ha entrado en el estado "Activo". Sólo puede invocarse cuándo el MIDlet está en estado de "Pausa". Si el MIDlet no puede pasar al estado "Activo" en este momento pero si puede hacerlo en un momento posterior, se lanzará la excepción MIDletstateChangeException.

protected abstract void pauseApp()

Le indica al MIDlet que pase al estado de "Pausa". Este método sólo debe llamarse cuándo el MIDlet esté en el estado "Activo". Se puede aprovechar para guardar información que pudiera perderse durante la interrupción del MIDlet. Si ocurriese una excepción RuntimeException durante la llamada a MIDlet.pauseApp(), el MIDlet se destruiría inmediatamente, llamando al método MIDlet.destroyApp() para liberar los recursos ocupados.

protected abstract void destroyApp(boolean incondicional) throws MIDletstateChangeException

Señala la terminación del MIDlet y su paso al estado de "Destruido". En este estado el MIDlet tiene que liberar todos los recursos y guardar cualquier dato en el almacenamiento persistente que deba ser salvado. Este método puede llamarse desde los estados "Pausa" o "Activo".

Otros métodos de la clase MIDlet.

Estos métodos que proporcionan mecanismos adicionales los podemos dividir en dos grupos:

Peticiones de cambio de estado: permiten a los MIDlet solicitar al gestor de aplicaciones un cambio del estado. Son: notifyPaused(), notifyDestroyed() y resumeRequest().

Acceso a variables de entorno: con la función getAppProperty() los MIDlet pueden leer variables almacenadas en el fichero descriptor (.jad). Esto nos permite poder configurar el comportamiento de un MIDlet sin necesidad de recompilarlo y empaquetarlo de nuevo.