You are on page 1of 45

Juan Felipe Maillane Tabares

Versiones de Java
Objetivo: proporcionar las herramientas necesarias para cubrir las necesidades de todos los usuarios.
Se crearon distintas versiones de Java de acuerdo a las necesidades de cada uno.
JavaSE (Java Standard Edition) orientada al desarrollo de

aplicaciones independientes de la plataforma. JavaEE (Java Enterprise Edition) orientada al entorno empresarial. JavaME (Java Micro Edition) orientada a dispositivos con capacidades restringidas

La Plataforma
Java Platform, Micro Edition (Java ME) proporciona un entorno robusto y flexible para aplicaciones que se ejecutan en dispositivos mviles de varios tipos como:
Telfonos mviles
Asistentes digitales personales (PDA) TV set-top boxes

Impresoras

Portabilidad
Las aplicaciones basadas en Java ME son portables a travs de muchos dispositivos, sin embargo, permite aprovechar las capacidades nativas de cada dispositivo.

Nociones bsicas de JavaME


Se dispone de una serie de mquinas virtuales Java con

diferentes requisitos, cada una para diferentes tipos de pequeos dispositivos. son un conjunto de clases bsicas orientadas a conformar el corazn de las implementaciones para dispositivos de caractersticas especficas. Existen 2 configuraciones definidas en JavaME: Connected Limited Device Configuration (CLDC) enfocada a dispositivos con restricciones de procesamiento y memoria, y Connected Device Configuration (CDC) enfocada a dispositivos con ms recursos. a implementar funcionalidades de ms alto nivel para familias especficas de dispositivos.

Configuraciones:

Perfiles: son bibliotecas Java de clases especficas orientadas

Composicin de un entorno de ejecucin para Java ME


El entorno se compone de una seleccin de:
Mquina virtual. Configuracin. Perfil. Paquetes Opcionales.

KVM
Es la Mquina Virtual ms pequea desarrollada por Sun. Su nombre proviene de Kilobyte (haciendo referencia a la baja ocupacin de memoria, entre 40Kb y 80Kb). Es una implementacin de Mquina Virtual reducida y orientada a dispositivos con bajas prestaciones. Est escrita en lenguaje C, y fue diseada para ser:
Pequea, con una carga de memoria entre los 40Kb y los

80 Kb, dependiendo de la plataforma y las opciones de compilacin. Alta portabilidad. Lo ms completa y rpida posible y sin sacrificar caractersticas para las que fue diseada.

Limitaciones de la KVM con respecto a la JVM


No hay soporte para tipos en coma flotante. No

existen por tanto los tipos double ni float. Esta limitacin est presente porque los dispositivos carecen del hardware necesario para estas operaciones. No existe soporte para JNI (Java Native Interface) debido a los recursos limitados de memoria. No existen cargadores de clases (class loaders) definidos por el usuario. Slo existen los predefinidos. No se permiten grupos de hilos.

Limitaciones de la KVM con respecto a la JVM - 2


No existe la finalizacin de instancias de clases. No

existe el mtodo Object.finalize(). Limitada capacidad para el manejo de excepciones debido a que el manejo de stas depende en gran parte de las APIs de cada dispositivo por lo que son stos los que controlan la mayora de las excepciones. No existe reflexin.

Conceptos
Configuraciones Especificacin mnima para agrupar dispositivos Define particularmente restricciones de memoria y procesador
Perfiles Extienden las configuraciones Son especficas para una 'familia' de dispositivos

Configuraciones
CDC: Connected Device Configuration Dispositivos mas avanzados (ej: Sistemas de navegacin)
CLDC: Connected Limited Device Configuration Dispositivos simples (ej: celulares, PDA )

Configuracin de dispositivos limitados con conexin (CLDC)


Orientada a dispositivos dotados de conexin y con

limitaciones en cuanto a capacidad grfica, cmputo y memoria. Se emplea en telfonos mviles, buscapersonas, PDAs, organizadores personales, etc. CLDC est orientado a dispositivos con ciertas restricciones. Algunas de stas restricciones vienen dadas por el uso de la KVM, necesaria al trabajar con la CLDC debido a su pequeo tamao. A partir de CLDC 1.1 soporte de punto flotante.

Requisitos
Disponer entre 160 Kb y 512 Kb de memoria total

disponible. Como mnimo se debe disponer de 128 Kb de memoria no voltil para la Mquina Virtual Java y las bibliotecas CLDC, y 32 Kb de memoria voltil para la Mquina Virtual en tiempo de ejecucin. Procesador de 16 o 32 bits con al menos 25 Mhz de velocidad. Ofrecer bajo consumo, debido a que stos dispositivos trabajan con suministro de energa limitado, normalmente bateras. Tener conexin a algn tipo de red, normalmente sin cable, con conexin intermitente y ancho de banda limitado (unos 9600 bps).

Configuracin de dispositivos con conexin (CDC)


La CDC est orientada a dispositivos con cierta capacidad computacional y de memoria. Por ejemplo, decodificadores de televisin digital, televisores con internet, algunos electrodomsticos y sistemas de navegacin en automviles.
CDC usa una Mquina Virtual Java similar en sus caractersticas a una de Java SE, pero con limitaciones en el apartado grfico y de memoria del dispositivo.

Requisitos
Procesador de 32 bits.
Disponer de 2 Mb o ms de memoria total, incluyendo

memoria RAM y ROM. Poseer la funcionalidad completa de la Mquina Virtual Java. Conectividad a algn tipo de red.

Perfiles
Es el que define las APIs que controlan el ciclo de vida de la aplicacin, interfaz de usuario, etc.
Ms concretamente, un perfil es un conjunto de APIs orientado a un mbito de aplicacin determinado. Los perfiles identifican un grupo de dispositivos por la funcionalidad que proporcionan (electrodomsticos, telfonos mviles, etc.) y el tipo de aplicaciones que se ejecutarn en ellos

Arquitectura del entorno de ejecucin de Java ME

Foundation Profile
Este perfil define una serie de APIs sobre la CDC orientadas a dispositivos que carecen de interfaz grfica como, por ejemplo, decodificadores de televisin digital. Este perfil incluye gran parte de los paquetes de la J2SE, pero excluye totalmente los paquetes java.awt Abstract Windows Toolkit (AWT) y java.swing que conforman la interfaz grfica de usuario (GUI) de J2SE. Si una aplicacin requiriera una GUI, entonces sera necesario un perfil adicional.

Personal Profile
El Personal Profile es un subconjunto de la plataforma J2SE v1.3, y proporciona un entorno con un completo soporte grfico AWT. El objetivo es el de dotar a la configuracin CDC de una interfaz grfica completa, con capacidades web y soporte de applets Java. Este perfil requiere una implementacin del Foundation Profile.

RMI Profile
Este perfil requiere una implementacin del Foundation Profile, se construye encima de l. El perfil RMI soporta un subconjunto de las APIs J2SE v1.3 RMI. Algunas caractersticas de estas APIs se han eliminado del perfil RMI debido a las limitaciones de cmputo y memoria de los dispositivos.

PDA Profile
El PDA Profile est construido sobre CLDC.
Pretende abarcar PDAs de gama baja, tipo Palm, con una pantalla y algn tipo de puntero (ratn o lpiz) y una resolucin de al menos 20.000 pixels (al menos 200x100 pixels).

Mobile Information Device Profile (MIDP)


Este perfil est construdo sobre la configuracin CLDC. Al igual que CLDC fue la primera configuracin definida para JavaME, MIDP fue el primer perfil definido para esta plataforma.

Caractersticas de los dispositivos para MIDP


Reducida capacidad computacional y de memoria.
Conectividad limitada. Capacidad grfica muy reducida (mnimo un display de

96x54 pixels monocromo). Entrada de datos alfanumrica reducida. 128 Kb de memoria no voltil para componentes MIDP. 8 Kb de memoria no voltil para datos persistentes de aplicaciones. 32 Kb de memoria voltil en tiempo de ejecucin para la pila Java.

Caractersticas de los dispositivos para MIDP


Los tipos de dispositivos que se adaptan a estas caractersticas son: telfonos mviles o PDAs de gama baja con conectividad. El perfil MIDP establece las capacidades del dispositivo, por lo tanto, especifica las APIs relacionadas con:

Interfaz de usuario. Almacenamiento persistente. Trabajo en red. Temporizadores

Definicin
Los MIDlets son aplicaciones creadas usando la especificacin MIDP. Estn diseados para ser ejecutados en dispositivos con poca capacidad grfica, de cmputo y de memoria. En estos dispositivos reside un software que es el encargado de ejecutar los MIDlets y gestionar los recursos que stos ocupan. Este software es el gestor de aplicaciones.

El Gestor de Aplicaciones
El gestor de aplicaciones o AMS (Application Management System) es el software encargado de gestionar los MIDlets. Este software reside en el dispositivo y es el que permite ejecutar, pausar o destruir aplicaciones Java ME.

Funciones del Gestor de Aplicaciones


Gestiona el ciclo de vida de los MIDlets. Es el encargado de controlar los estados por los que

pasa el MIDlet mientras est en la memoria del dispositivo, es decir, en ejecucin.

Ciclo de vida de un MIDlet


El ciclo de vida de un MIDlet pasa por 5 fases: localizacin, instalacin, ejecucin, actualizacin y borrado.

Descubrimiento
Esta fase es la etapa previa a la instalacin del MIDlet y es dnde se selecciona a travs del gestor de aplicaciones la aplicacin a descargar. Por tanto, el gestor de aplicaciones tiene que proporcionar los mecanismos necesarios para realizar la eleccin del MIDlet a descargar. El AMS puede ser capaz de realizar la descarga de aplicaciones de diferentes maneras, dependiendo de las capacidades del dispositivo. Por ejemplo, esta descarga se puede realizar mediante un cable conectado a un PC o mediante una conexin inalmbrica.

Instalacin
Una vez descargado el MIDlet en el dispositivo, comienza el proceso de instalacin. En esta fase el gestor de aplicaciones controla todo el proceso informando al usuario tanto de la evolucin de la instalacin como de si existie algn problema durante sta. Cundo un MIDlet est instalado en el dispositivo, todas sus clases, archivos y almacenamiento persistente estn preparados y listos para su uso.

Ejecucin
Mediante el gestor de aplicaciones se podr iniciar la ejecucin de los MIDlets. En esta fase, el AMS tiene la funcin de gestionar los estados del MIDlet en funcin de los eventos que se produzcan durante esta ejecucin.

Actualizacin
El AMS tiene que ser capaz de detectar despus de una descarga si el MIDlet descargado es una actualizacin de un MIDlet ya presente en el dispositivo. Si es as, debe informar de ello, adems de dar la oportunidad de decidir si se quiere realizar la actualizacin pertinente o no.

Borrado
En esta fase el AMS es el encargado de borrar el MIDlet seleccionado del dispositivo. El AMS pedir confirmacin antes de proceder a su borrado e informar de cualquier circunstancia que se produzca.

Estados de un MIDlet en fase de ejecucin


Adems de gestionar el ciclo de vida de los MIDlets, como, el AMS es el encargado de controlar los estados del MIDlet durante su ejecucin. Durante sta el MIDlet es cargado en la memoria del dispositivo y es aqu donde puede pasar entre 3 estados diferentes: Activo, en pausa y destruido

Estados de un MIDlet en fase de ejecucin


Activo: El MIDlet est actualmente en ejecucin. Pausa: El MIDlet no est actualmente en ejecucin. En

este estado el MIDlet no debe usar ningn recurso compartido. Para volver a pasar a ejecucin tiene que cambiar su estado a Activo. Destruido: El MIDlet no est en ejecucin ni puede transitar a otro estado. Adems se liberan todos los recursos ocupados por el MIDlet.

Estados de un MIDlet en fase de ejecucin

Cambio de estados de un MIDlet


Un MIDlet puede cambiar de estado mediante una llamada a los mtodos MIDlet.startApp(), MIDlet.pauseApp() o MIDlet.destroyApp(). El gestor de aplicaciones cambia el estado de los MIDlets haciendo una llamada a cualquiera de estos mtodos. Un MIDlet tambin puede cambiar de estado por s mismo

La Clase MIDlet
Para crear un MIDlet, la aplicacin debe extender de la

clase abstracta MIDlet para que el AMS pueda gestionar sus estados y tener acceso a sus propiedades. El MIDlet puede por s mismo realizar cambios de estado invocando a los mtodos apropiados.

Metodos de la clase MIDlet


protected MIDlet(): Constructor de clase sin argumentos. Si la

llamada a este constructor falla, se lanzara la excepcin SecurityException.

public final int checkPermission(String permiso) protected abstract void destroyApp(boolean incondicional)

throws MIDletstateChangeException public final String getAppProperty(String key) public final void notifyDestroyed() public final void notifyPaused() protected abstract void pauseApp() public final boolean platformRequest(String url) public final void resumeRequest() protected abstract void startApp() throws MIDletstateChangeException

Estructura de un MIDlet
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HolaMundo extends MIDlet{
private Display pantalla; private Form formulario = null; public HolaMundo(){
pantalla = Display.getDisplay(this); formulario = new Form(Hola Mundo);

} public void startApp(){ pantalla.setCurrent(formulario); } public void pauseApp(){ } public void destroyApp(boolean unconditional){
pantalla = null; formulario = null; notifyDestroyed();

Como funciona
Un MIDlet es una aplicacin basada en eventos. Todas las rutinas ejecutadas en el MIDlet se invocan en respuesta a un evento reportado por el gestor de aplicaciones al MIDlet. El evento inicial que se produce es cuando el MIDlet se inicia y el gestor de aplicaciones invoca el mtodo startApp(). El startApp() en un MIDlet tpico contiene una declaracin que muestra una pantalla de datos y solicita al usuario que introduzca datos.

Como funciona
La naturaleza y el nmero de opciones es dependiente de la pantalla del MIDlet. Un objeto de comando se utiliza para ofrecer al usuario una seleccin de opciones para elegir cuando se muestra una pantalla. Cada pantalla debe tener un CommandListener. Un CommandListener monitorea los eventos de interaccin del usuario con la pantalla y hace que el cdigo apropiado se ejecute en funcin del evento actual.

Bibliografa
JAVA A TOPE: JavaME (JAVA 2MICRO EDITION). EDICIN ELECTRNICA. SERGIO GLVEZ ROJAS, LUCAS ORTEGA DAZ

You might also like