Los MIDlets
mapocaInforme4 de Mayo de 2012
3.192 Palabras (13 Páginas)519 Visitas
Los MIDlets, aunque ya hemos visto de manera superficial qué son y cómo se crean, son en suma las estructuras que crearemos. Es por esto que debemos conocer cuál es la estructura de ellos, sus propiedades fundamentales, cual es el “ciclo de vida” de un MIDlet en un dispositivo móvil, y los estados por los que se desenvuelve el MIDlet en un dispositivo móvil. Como estos son la base de las aplicaciones que se instalan en nuestros dispositivos, debemos conocer también la estructura y funcionamiento del AMS (o gestor de aplicaciones, visto en semanas pasadas). En la semana anterior, aprendimos que la configuración CLDC posee un paquete propio, llamado javax.microedition. De este paquete, estudiaremos el javax.microedition.midlet, para así estructurar el código de nuestra primera aplicación. En los requerimientos para poder ver este curso, se le pide al estudiante conocimientos en JAVA, ya que, en caso del estudiante no saberlo, debe crearse todo un apartado completo en el que se le enseñe al estudiante a programar en JAVA, y luego a introducirse en el contenido de J2ME. Es por esta razón que se supondrán conocimientos del estudiante en JAVA, y no se harán mayores profundizaciones en conceptos básicos de JAVA como clase, método, herencia, etc.
Cuando se crea una aplicación usando el perfil MIDP, se crea un MIDlet. Estos MIDlets son pequeñas aplicaciones que están destinadas a correr, como lo habíamos dicho antes, en dispositivos con muy pocas características tanto gráficas como de memoria y de procesamiento. Y cuando los queremos ejecutar en nuestro dispositivo móvil, no contamos con una plataforma en la que copiamos comandos para su ejecución (como el “símbolo del sistema” de Windows), sino que es usado un software adicional para controlar la ejecución e instalación del MIDlet. Este software ya lo habíamos visto antes, se trata del gestor de aplicaciones y lo estudiaremos con más profundidad a continuación, ya que define el ciclo de vida de nuestra aplicación.
2 Programación de dispositivos móviles
Semana 3
EL GESTOR DE APLICACIONES
El AMS (Aplication Management System), o el gestor de aplicaciones, es el encargado de todos los procesos relacionados con los MIDlets. Este software lo contienen los propios dispositivos móviles (es un requerimiento para poder estar dentro de la configuración CLDC) y es el que ejecuta, pausa la instalación o destruye los MIDlets que tengamos instalados en nuestro dispositivo. Esa gestión de MIDlets por parte del AMS se puede agrupar en 2 bloques importantes, a saber:
Gestión del ciclo de vida del MIDlet
Control de los estados por los que pasa el MIDlet cuando está siendo ejecutado por el dispositivo.
Estudiemos con más detenimiento estos procesos
El ciclo de vida de un MIDlet.
En la unidad 1, vimos el ciclo de vida de un MIDlet, compuesto por 5 estados específicos:
o Descubrimiento
o Instalación
o Ejecución
o Actualización
o Borrado
Nombraremos nuevamente estos elementos debido a que requerimos recordarlos por los temas que se verán en esta unidad
3 Programación de dispositivos móviles
Semana 3
El AMS gestiona cada una de estas fases de la siguiente manera:
1. Descubrimiento:
El gestor de aplicaciones, recordemos, no es un navegador. Nuestro navegador es alguno basado, por ejemplo, en comunicación WAP, y es el encargado de detectar la aplicación a descargar. La dirección donde se encuentra el MIDlet se transfiere al AMD, y en ese punto, el gestor nos permite seleccionar las aplicaciones a descargar. Esto significa que el gestor de aplicaciones debe tener una opción que nos permita visualizar los diversos MIDlets o las diversas aplicaciones que queremos instalar en nuestro dispositivo. Luego de seleccionado el MIDlet, el AMS debe gestionar la descarga del mismo, dependiendo de las capacidades del dispositivo, es decir, podemos descargar a través de conexión a
4 Programación de dispositivos móviles
Semana 3
internet, o a través de cable físico, cualquier otra tecnología que nos permita transferir archivos.
2. Instalación:
En el momento en que termina la descarga del MIDlet en el dispositivo, procedemos a instalarlo. Toda la información o cualquier problema que surja en este proceso, debe ser informado al usuario en la ventana del dispositivo móvil. Se dice que el MIDlet está instalado en el dispositivo de manera correcta cuando todas sus clases, sus archivos y elementos adicionales están preparados y listos para ser usados.
3. Ejecución:
El AMS nos permite, así como el control de la instalación del MIDlet, la ejecución del mismo. Recordemos que los MIDlets se deben ejecutar en una SandBox por seguridad. También podemos anotar en este caso, que el AMS controla los estados del MIDlet mientras se está ejecutando. El estudio de estos estados lo llevaremos a cabo en breve.
4. Actualización:
Si tenemos en nuestro dispositivo móvil una aplicación cuya versión es igual, menor o mayor que la que estamos instalando, el AMS debe ser capaz de detectarlo, y no solo eso, sino informarle al usuario la existencia de una versión diferente a la que se pretende instalar. Aparte de eso, le debe dar la opción al usuario de escoger si desea en realidad generar la actualización o no.
5 Programación de dispositivos móviles
Semana 3
5. Borrado:
Finalmente, cuando no queremos un MIDlet instalado en el dispositivo, procedemos a su eliminación. Esta eliminación también es administrada por el AMS, quien indica el MIDlet a desinstalar, la opción de cancelar la desinstalación, y en caso de éxito, el aviso de haberse realizado, así como también cualquier eventualidad sobre el proceso.
Cuando se instala un MIDlet en un dispositivo, el MIDlet no desaparece en caso de que el dispositivo se apague o que se cierre la aplicación. Esta permanece instalada en el dispositivo tanto tiempo como el usuario desee, pues se aloja en una porción de la memoria no volátil del aparato. Es el usuario el que escoge el momento en que desea que la aplicación desaparezca, y en ese momento es que interviene el AMS para ubicarse en el quinto estado del MIDlet
Estados de un MIDlet en fase de ejecución
Ubiquémonos en la fase 3 del MIDlet, la fase de ejecución. Hemos dicho que en esta fase, el AMS controla los estados de la aplicación. ¿Cuáles estados? Primero, el MIDlet en tiempo de ejecución se carga en la memoria volátil del dispositivo, para ser ejecutado. Este estado es llamado el estado “Activo” del MIDlet. En la memoria del dispositivo es donde se puede hacer la transición de estados. Digamos que estamos ejecutando nuestro MIDlet, y nos llega un mensaje o una llamada. Estos elementos son prioritarios para el usuario, por lo que el usuario procederá a contestar la llamada. ¿Qué pasa entonces con el MIDlet que está siendo ejecutado? Es transferido a otro estado funcional, el estado “Pausa”. Esto significa que el AMS debe tener la posibilidad de reaccionar ante eventos externos y cambiar el estado del MIDlet respecto a
6 Programación de dispositivos móviles
Semana 3
dichos eventos. Si volvemos a la aplicación, se pasa del estado “Pausa” al estado “Activo”. Ahora, hemos dejado de usar nuestro MIDlet y deseamos cerrarlo, ¿Qué hacemos? Procedemos a cerrarlo. En este caso, el AMS pasa del estado “Activo” al estado “destruido”. El estado “Destruido” en ningún momento significa que se borre la aplicación, sino que, como dijimos antes, el MIDlet está cargado en memoria volátil para poder funcionar. Lo que hacemos es liberar el espacio de memoria que está usando el MIDlet para que lo use otra aplicación o para que quede libre. La aplicación como tal permanece todavía en la memoria no volátil y puede ser invocada en cualquier momento, es decir, puede ser puesta en estado activo en cualquier momento.
Recapitulando entonces, un MIDlet en la fase 3, y cuando se encuentra montado en memoria, pasa por 3 estados diferentes:
Activo: El MIDlet se encuentra en fase de ejecución.
Pausa: El MIDlet no se encuentra en ejecución, pero se encuentra todavía montado en memoria. En este caso, el MIDlet no puede usar ningún recurso compartido, ya que para hacerlo, debe estar en modo activo.
Destruido: El MIDlet ya no se encuentra en ejecución y se libera la memoria que está usando. Se debe anotar que este es el estado final de un MIDlet, y que de acá no puede transitar a otros estados.
Podemos ver los estados de transición en la fase 3 de un MIDlet típico, con sus respectivos métodos.
7 Programación de dispositivos móviles
Semana 3
Si observamos el diagrama, nos damos cuenta que el MIDlet cambia de estados cuando llama a los métodos MIDlet.startApp(), MIDlet.pauseApp() y MIDlet.destroyApp(). El gestor de aplicaciones hace uso entonces de las llamadas a cualquiera de estos métodos para cambiar el estado del MIDlet en el momento en que se requiera, o cuando exista un evento externo. De la misma manera, un MIDlet puede cambiar su estado por sí mismo.
Cuando un MIDlet es ejecutado normalmente, pasa por una serie de estados típicos, como una especie de recorrido normal, en el que el AMS tiene mucho que ver. Lo primero que se hace es que se hace una llamada al constructor del MIDlet, el cual pasa a un estado de “Pausa” por un pequeño momento. En ese momento, el AMS se prepara para el alojo del MIDlet creándole una instancia. Cuando la instancia está lista, el dispositivo se encuentra listo para ejecutar el MIDlet, por lo que el AMS invoca al método MIDlet.startApp(),
...