Está en la página 1de 27

J2ME

Tecnologa java para dispositivos con recursos limitados

Java 2 Micro Edition


J2ME es una versin de la plataforma J2SE adaptada a las limitaciones de los mviles, PDAs y muchos dispositivos con capacidad limitada.

Limitaciones de los dispositivos

Memoria Reducida (entre 128Kb y 2Mb aprox.)


Poca potencia computacional (processadores de 16 o 32 bits) Pantallas pequeas (mnimo de 97 x 54 pixels)

Arquitectura de J2ME
Perfiles

MIDP
JSR 37

PDAP
JSR 75

FP
JSR 46

PBP
JSR 129

PP
JSR 62

Configuraciones

CLDC
JSR 30

CDC
JSR 36

Mquina Virtual

KVM
Kilobyte virtual machine

CVM
Compact virtual machine

SO

Depende del dispositivo

Configuraciones
Las configuraciones proveen la base funcional para un rango de dispositivos con caractersticas similares. Especifican los siguientes aspectos: - El subconjunto del lenguaje java que puede ser usado. - El subconjunto de funciones de la Mquina Virtual Java. - Las APIs fundamentales para este tipo de desarrollo. - Los requerimientos de hardware de los dispositivos enfocados a sta.

Configuraciones
Actualmente existen dos configuraciones:

Connected Limited Device Configuration (CLDC): Est diseada para dispositivos con conexin intermitente, poco procesador, y memoria limitada como los telfonos mviles y PDAs (procesador de 16-32 bits y memorias de 128Kb como mnimo). Connected Device Configuration (CDC): Est diseada para equipos con ms memoria, procesadores ms rpidos y conexiones de mayor ancho de banda, sistemas telemticos de vehculos o computadores de mano de gran capacidad (procesador de 32 bits y memoria de 2Mb o ms).

Perfiles
Un perfil define un conjunto de APIs caractersticas comunes para un conjunto de dispositivos.

Mobile Information Device Profile


MIDP es un perfil diseado para desarrollar aplicaciones enfocadas a mviles, PDAs y dispositivos soportados por la configuracin CLDC. Se encarga de las siguientes funcionalidades: - Interfaz de usuario (javax.microedition.lcdui) - Funciones de red (aade funciones a javax.microedition.io) - Almacenamiento persisitente (javax.microedition.rms)

MIDP 1.0 y 2.0


La versin ms reciente es la 2.0 (sobre CLDC 1.1), sin embargo, la mayor parte de dispositivos que hay en el mercado actual funcionan sobre MIDP 1.0 (CLDC 1.0).

MIDP 2.0
MIDP 1.0 CLDC
Javax.microedition.media Javax.microedition.lcdui.game Javax.microedition.pki Javax.microedition.lcdui Javax.microedition.midlet Javax.microedition.rms Java.io Java.util Java.lang Javax.microedition.io

Diferencias entre MIDP y J2SE

Tipos de datos: CLDC no soporta los tipos float y double (son muy costosos). Preverificacin: J2SE verifica el cdigo en tiempo de ejecucin. En J2ME una parte se verifica antes (fuera del dispositivo) reduciendo as la carga de la mquina. Descriptor y manifiesto: Cada aplicacin incluye archivos adicionales con informacin referente a las aplicaciones. No hay recolector de basura: Hay que eliminar de forma explcita los elementos que no vayan a usarse ms.

La mquina virtual: La KVM es una versin reducida de la JVM diseada para dispositivos limitados.
No hay main: El equivalente sera la funcin startApp().

Javax.microedition.midlet
Las aplicaciones midp heredan de la la classe MIDLet. sta es la encargada de gestionar el ciclo de vida de la aplicacin, mediante las funciones startApp, pauseApp y destroyApp.

Javax.microedition.lcdui

Javax.microedition.lcdui

Por cada MIDlet tenemos una instancia de la clase Display. La aplicacin llama al mtodo getDisplay() desde la constructora para poder referenciar a dicha instancia. Los Displayable se emplazan en la display mediante la funcin setCurrent(Displayable)

Javax.microedition.lcdui
La calse Displayable tiene dos descendientes: - Canvas: Permite el control total de la pantalla a bajo nivel. Se usa en aplicaciones que capturan eventos y realizan llamadas grficas. Llama al mtodo paint(Graphics) para dibujar en la pantalla. - Screen: Ofrece estructuras predefinidas (Form, Alert, TextBox, List). No accede a las caractersticas nativas del dispositivo. Permite un mayor grado de portabilidad.

Javax.microedition.lcdui
El manejo de eventos utiliza dos componentes: - Command: Es un generador de eventos que podemos asociar a un displayable mediante el mtodo addCommand(Command). - CommandListener: Es una interfaz que permite escuchar eventos generados por Commands al objeto que la implemeta. Se invoca al mtodo CommandAction(Command,Displayable) cada vez que se produce un nuevo evento. Se asocia a un Displayable con el mtodo de esta clase setCommandListener(CommandListener).

Javax.microedition.lcdui.game

MIDP 2.0 incorpora este paquete diseado especialmente para el desarrollo de juegos.
Ofrece una subclase de Canvas que permite trabajar con layers o capas y controlar colisones entre stas.

Javax.microedition.lcdui.game

GameCanvas: Canvas con capacidades adicionales. - Los mtodos getGraphics() y flushGraphics(g) nos

permiten trabajar off-screen. - El mtodo getKeyState() permite trabajar por encuesta o polling y consultar en todo momento la tecla pulsada.

LayerManager:Permite la gestin de los layers.


- Mediante el mtodo append(Layer) le asignamos layers. - setViewWindow(x,y,width,height) define la regin de la pantalla donde seran visibles los layers asignados.

Layer: Clase abstracta que representa un elemento visual de la aplicacin. - Todas sus subclases deben implementar el mtodo
paint(Graphics).

Javax.microedition.lcdui.game

Sprite: Consiste en un layer formado por una secuencia de imgenes para realizar animaciones.
- Sprite(Image,width,height) crea el Sprite a partir de la imagen y el tamao de sus secciones. - Ofrece mtodos para controlar colisiones con otros layers.

Javax.microediton.lcdui.game

TiledLayer: Esta compuesto por una parrilla de tiles en la que a cada uno podemos asignarle secciones de una imagen. - tiledLayer(cols,rows,img,width,height)
-Permite crear tiles animados llamando al mtodo int createAnimatedTile(tileIndex) i modificarlo mediante setAnimatedTile(animatedTileIndex,staticTileIndex)

Imgenes

MIDP slo acepta el formato png.

Hay varias maneras de mostrar imgenes: - Un archivo incluido en el MIDlet.


- Un array de bytes: - Almacenado en memoria persistente - Descargado de un servidor - Includo en el propio programa

El mtodo createImage de la classe Image ofrece todas estas possibilades.

Javax.microedition.rms
Este paquete proporciona una clase (RecordStore) y varias interfaces para el almacenamiento persistente.
Consiste en un mecanismo simple orientado a registros que permite guardar datos, salir de la aplicacin y recuperarlos en una ejecucin posterior.

La clase RecordStore es una coleccin de registros en la que cada uno se identifica por un entero (Record ID).

Javax.microedition.rms

La interface RecordListener permite monitorizar los cambios en un RecordStore. Cuando se modifica un RecordStore se lanza un evento al RecordListener asociado. Hay 3 tipos de eventos:

recordAdded(RecordStore rs,int recordId) recordChanged(RecordStore rs,int recordId) recordDeleted(RecordStore rs,int recordId)

Javax.microedition.io

Contiene varias interfaces que ofrecen distintas posibilidades de comunicacin. La clase connector permite crear las conexiones:
Connection connector.open(String url) url = [protocol] : [direccin]

Valores de protocol

http Datagram Comm File Socket

Estructura bsica de una aplicacin


import java.lang.*; // Packetes cldc, midp y opcionales public class NetClientMIDlet extends MIDlet implements CommandListener { private Display display; private Form form; private Command exit; public NetClientMIDlet() { display = Display.getDisplay(this); } Public void startApp(){ form.setCommandListener(this); display.setCurrent(form); } public void pauseApp() { } public void destroyApp() { } public void commandAction(Command if (c == exit) destroyApp(); } // Interficie de usuario // Objeto Displayable // Commando

// Inicializacin de la interficie

// Gestor de eventos // Asignacin de la pantalla

c, Displayable d) { // Tratamiento de eventos

Instalacin de las aplicaciones


Cuando compilamos una aplicacin con el Wireless toolkit se generan 2 ficheros:
- JAR: Contiene todas las clases e imgenes que usa la aplicacin y un fichero llamado manifiesto con informacin sobre su contenido (versin, midlets, etc) - JAD: Es igual que el manifiesto y adicionalmente incluye una entrada con la url donde se encuentra el jar y otra con su tamao. Solo hace falta este fichero para instalar la aplicacin ya que durante la instalacin se descarga automaticamente el jar de la url especificada.

Herramientas para el desarrollo

Java 2 SDK versin 1.4 o superior


J2ME Wireless Toolkit Entorno de Desarrollo Visual (IDE) Opcional. SunONE, JBuilder (Mobile Set), NetBeans.

Bibliografia

Toda la informacin usada para desarrollar este documento ha sido obtenida en las siguientes direcciones: - http://java.sun.com/j2me/
- http://www.forum.nokia.com
- http://www.microjava.com

También podría gustarte