El Xletview es un emulador de Settop Box con una implementacin parcial de las
APIs. Ouede influirse sobre el ciclo de vida de una aplicacin directamente (mediante el men "Lifecycle"), ejecutando los mtodos del interfaz Xlet como si se tratara del Gestor de Aplicaciones.
El procedimiento para ejecutar aplicaciones es el siguiente: Se lanza el emulador ejecutando la clase "xletview-lifecycle.jar" Se da de alta un xlet en el men de "Applications -> Manage Applications", proporcionando el fichero class del xlet. Se ejecuta el xlet (slo uno cada vez) seleccionndolo en el men "Applications"
Para compilar una aplicacin DVB-J es necesario disponer de una implementacin de las Clases que se vayan a utilizar, para que el compilador pueda realizar las correspondientes comprobaciones de los tipos de los argumentos y resultados. Los siguientes archivos proporcionan tal implementacin, que es necesario proporcionar al compilador en forma de librera.
JavaTV HAVI, DAVIC, DVB
Lo ms sencillo para compilar una aplicacin DVB-J es disponer de un entorno de desarrollo asistido, de los muchos que hay de software libre. Por ejemplo, en el caso del Netbeans, lo que habra que hacer es:
Importar las libreras anteriores a la biblioteca de libreras, a travs del men "Tools ->Libraries". Crear un nuevo proyecto, del tipo "Java -> java class library", ya que no se trata de una aplicacin java que se pueda ejecutar normalmente. Indicar que este proyecto emplea las libreras anteriormente declaradas, a travs del men "Libraries" del proyecto. En el directorio que se elija como raz del proyecto aparecen varios directorios, entre ellos "src" (donde residen los fuentes) y "build/classes" (donde se dejarn los ficheros class resultado de la compilacin). En "Source packages" crearemos los ficheros de nuestras aplicaciones (o los copiaremos directamente en el directorio "src" y aparecern en el interfaz". Compilamos la aplicacin
Tras esto, podemos cargarla en el Xletview y ejecutarla.
Xlet1.java: Es el esqueleto bsico de un xlet, que no hace nada ms que imprimir un mensaje cada vez que entra en un estado.
Para poder ver los mensajes habr que lanzar el xletview desde un terminal (con "java -jar xletview-lifecycle.jar").
TAREA1: Compilar el Xlet1.java y ejecutarlo en el xletview, hacindolo cambiar de estado mediante los mens y observando los mensajes que imprime.
Ventana.java: Representa una ventana (un grfico) auxiliar para hacer que nuestro xlet muestre algo en pantalla.
Se trata de una ventana que puede estar en dos estados distintos (PAUSED y RUNNING) y que permitir a un xlet mostrar el estado en el que se encuentra. La ventana almacenar como informacin interna:
Su nombre (recibido en el constructor), en la variable "name". Su estado, en la variable "estado". Un nmero, en la variable "num".
En el estado PAUSED la ventana ser amarilla y mostrar el texto "Paused". En el estado RUNNING ser verde y mostrar el texto "Running", adems del valor de la variable "num".
La clase ofrece varios mtodos al exterior:
Un constructor "Ventana", que recibe el nombre de la ventana e inicializa la ventana al estado PAUSED. Un mtodo "setNum" para cambiar el valor de la variable "num" Un mtodo "getEstado" para devolver el estado. Un mtodo "setEstado" para cambiar el estado de la ventana.
TAREA2: Compilar Xlet2.java para ser utilizada por los siguientes xlets. Xlet2 hace uso de la ventana auxiliar anterior (Ventana.java) para mostrar su estado en la pantalla. Si el xlet est en el estado de PAUSED, la ventana deber estar en ese mismo estado. Si el xlet est en el estado ACTIVE, la ventana deber estar en RUNNING.
TAREA3: Cambiad el nombre de la ventana para aadirle el vuestro. Compilar y situar en el mismo directorio que la ventana de la pgina anterior. Cargar en el xletview y hacerla cambiar de estado mediante el men "Lifecycle". Observar cmo la ventana cambia de color y de texto.
Si lo prefieres, puedes compilar directamente los xlet, sin entorno de ayuda. Pon el fuente del xlet y los jars auxiliares en la misma carpeta y complalo en una ventana de comandos:
Xlet3: es similar al Xlet2, pero ahora debe atender a los botones de colores del mando a distancia.
El comportamiento buscado consiste en que, segn la tecla pulsada, el propio xlet debe cambiar de estado: si se pulsa el amarillo, debe pasar a estado PAUSED; si se pulsa el verde, debe pasar a estado ACTIVE; si se pulsa el rojo debe destruirse.
En el cdigo del Xlet3 falta completar (en el mtodo Keypressed) lo que se ejecuta cuando se detecta cada tecla, y que hace que se produzca efectivamente ese cambio de estado.
TAREA4: Rellenar lo que falta para implementar el comportamiento descrito, aadiendo los mensajes de informacin para que quede claro lo que est pasando. Compilar el Xlet3 y probar. Enviarme el cdigo fuente del resultado una vez finalizado
Xlet4: Tal como podemos ver en los anteriores xlets, tras recibir una solicitud de cambio de estado a travs de los mtodos del interfaz Xlet, el xlet devuelve inmediatamente el control. Para que un xlet pueda estar haciendo algo permanentemente, debe crear un nuevo hilo, que ser el que realice una tarea en segundo plano.
Es igual al anterior (Xlet3), pero crea un nuevo hilo que sigue ejecutndose (mtodo "run"). Este segundo hilo despierta cada segundo, incrementa un contador, se lo pasa a la ventana con "setNum" y repinta la ventana si est en RUNNING. Como consecuencia, la ventana incrementa su contador cada segundo, mostrando actividad permanente.
TAREA5: Compilar y probar. Hacer que el xlet atienda al botn azul (VK_COLORED_KEY_3). Si se pulsa este botn, dejar de incrementarse el contador. Enviarme el cdigo fuente del resultado una vez finalizado