You are on page 1of 7

JAVA MICRO EDITION

La plataforma Java Micro Edition (Java ME), o anteriormente Java 2 Micro Edition (J2ME), es una especificacin de un subconjunto de la plataforma Java orientada a proveer una coleccin certificada de APIs de desarrollo de software para dispositivos con recursos restringidos. Est orientado a productos de consumo como PDAs, telfonos mviles o electrodomsticos. Java ME se ha convertido en una buena opcin para crear juegos en telfonos mviles debido a que se puede emular en un PC durante la fase de desarrollo y luego subirlos fcilmente al telfono. Al utilizar tecnologas Java el desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante econmico de portar a otros dispositivos. Java ME fue desarrollado mediante el Java Community Process bajo la especificacin JSR 68. La evolucin de la plataforma ha propiciado el abandono de las Java Specification Request (peticiones de especificacin para Java) en favor de JSRs separadas para las distintas versiones de Java ME.

PDAs:
Un PDA (del ingls personal digital assistant (asistente digital personal)), tambin denominado ordenador de bolsillo u organizador personal, es una computadora de mano originalmente diseada como agenda electrnica (calendario, lista de contactos, bloc de notas y recordatorios) con un sistema de reconocimiento de escritura. Hoy en da (2012) estos dispositivos, pueden realizar muchas de las funciones que hace una computadora de escritorio (ver pelculas, crear documentos, juegos, correo electrnico, navegar por Internet, reproducir archivos de audio, etc.) pero con la ventaja de ser porttil.

Telefona Mvil o Celular:


El telfono mvil es un dispositivo inalmbrico electrnico que permite tener acceso a la red de telefona celular o mvil. Se denomina celular en la mayora de pases latinoamericanos debido a que el servicio funciona mediante una red de celdas, donde cada antena repetidora de seal es una clula, si bien tambin existen redes telefnicas mviles satelitales. Su principal caracterstica Lic. Hctor Luyo Chumpitaz Pgina 1

es su portabilidad, que permite comunicarse desde casi cualquier lugar. La principal funcin es la comunicacin de voz, como el telfono convencional. A partir del siglo XXI, los telfonos mviles han adquirido funcionalidades que van mucho ms all de limitarse solo a llamar o enviar mensajes de texto, se podra decir que se han unificado (que no sustituido) con distintos dispositivos tales como PDA, cmara de fotos, agenda electrnica, reloj despertador, calculadora, microproyector, GPS o reproductor multimedia, as como poder realizar multitud de acciones en un dispositivo pequeo y porttil que lleva prcticamente todo el mundo de pases desarrollados. A este tipo de evolucin del telfono mvil se le conoce como smartphone. La primera red comencial automtica fue la de NTT de Japn en el 1979 y seguido por la NMT en simultaneamente en Suecia, Dinamarca, Noruega y Finlandia en 1981 usando telfonos de Ericsson y Mobira (el ancestro de Nokia). Arabia Saudita tambien usaba la MNT y la puso en operacin un mes antes que los paises nrdicos. El primer antecedente respecto al telfono mvil en Estados Unidos es de la compaa Motorola, con su modelo DynaTAC 8000X. El modelo fue diseado por el ingeniero de Motorola Rudy Krolopp en 1983. El modelo pesaba poco menos de un kilo y tena un valor de casi 4000 dlares estadounidenses. Krolopp se incorporara posteriormente al equipo de investigacin y desarrollo de Motorola liderado por Martin Cooper. Tanto Cooper como Krolopp aparecen como propietarios de la patente original. A partir del DynaTAC 8000X, Motorola desarrollara nuevos modelos como el Motorola MicroTAC, lanzado en 1989, y el Motorola StarTAC, lanzado en 1996 al mercado. En la actualidad tienen gran importancia los telfonos mviles tctiles

COMPONENTES JAVA ME:


Perfiles, configuraciones y mquinas virtuales. La edicin micro de Java se compone, adems del lenguaje, de una mquina virtual, configuraciones, perfiles y paquetes adicionales. La mquina virtual es la base de la plataforma, es el interprete del lenguaje y sobre la cual se han de ejecutar las aplicaciones, tambin sobre esta mquina virtual corren las configuraciones (CDC y CLDC), las cuales incorporan APIs bsicas para la creacin de

Lic. Hctor Luyo Chumpitaz

Pgina 2

aplicaciones y sirven de soporte a los perfiles. Los perfiles incluyen la mayor parte de las clases y APIs que se van a utilizar en la programacin, como pueden ser instrucciones de entrada y salida o de inicio y terminacin de la aplicacin. Los paquetes adicionales son aquellos que la especificacin de la tecnologa inalmbrica Java (JSR185) no establece como obligatorios para incorporar en los dispositivos. Ejemplos de esto pueden ser las APIs de mensajes inalmbricos (WMAPI) y de multimedia (WMAPI).

MIDP 2. Hasta este momento es el nico perfil aplicado a los dispositivos en el mercado, aunque se estn investigando algunos otros, como el especializado en PDA. MIDP 2.0 incorpora APISs de interfaz de usuario, de ciclo de vida del programa, almacenamiento persistente, juegos, trabajo en red y multimedia. Segn la especificacin de la tecnologa inalmbrica de Java todo dispositivo que soporte MIDP 2.0 debe incluir mnimamente las siguientes caractersticas: Debe permitir archivos Java (JAR) de ms de 64 KB. y archivos descriptores de aplicaciones (JAD) mayores a 5 KB. Se debe permitir a cada MIDlet la utilizacin de 30 KB de almacenamiento persistente y se recomienda que las MIDlets incluyan informacin acerca de el almacenamiento mnimo con el que trabajan correctamente. El espacio de memoria libre para una aplicacin ejecutndose (Heap o del montn) debe ser por lo menos de 256 KB. Soporte para pantallas de 125 x 125 pixeles, con una profundidad de color de 12 bits. Se deben incluir la capacidad de que el dispositivo reaccione a eventos de tiempo (una alarma a determinada hora, los llamados ticklers o despertadores). Mecanismos para tomar un nmero telefnico del directorio del equipo. Soporte para imgenes en formato JPEG y PNG. Acceso a contenidos multimedia por el protocolo HTTP 1.1.

CLDC 1.1 Adems de la Configuracin para Dispositivos Conectados (CDC), CLDC (Connected Limited Device Configuration) es la nica opcin en configuraciones en la tecnologa inalmbrica Java, aunque esta ltima est dedicada a la clase de aparatos que nos ocupan. CLDC es la base para que los perfiles (como MIDP o PDAP) funcionen, proveyendo las APIs bsicas y la mquina virtual (KVM). CLDC est diseada para equipos Lic. Hctor Luyo Chumpitaz Pgina 3

microprocesadores RISC o CISC de 16 a 32 bits y con una memoria mnima de 160 KB para la pila de la tecnologa Java. La JSR185 pide como requisitos mnimos para todo equipo que implemente CLDC 1.0 o 1.1: Soporte mnimo para diez hilos relacionados con aplicaciones (MIDlets). Usar zonas de tiempo personalizables, con referencia en el formato de zonas de tiempo GMT (GMT \7:00, por ejemplo). Soporte para propiedades de carcter y conversiones maysculas-minsculas en los bloques suplementales Unicode para Basic Latin y Latin-1 (nuestros caracteres). KVM Como ya se explic anteriormente la mquina virtual es la base de la plataforma Java. En el caso de la plataforma J2ME, debido a las capacidades limitadas de almacenamiento, memoria, procesamiento y pantalla de los dispositivos; no se puede integrar una mquina virtual Java (JVM) del las dimensiones de J2SE o J2EE. Por esto se ha creado una nueva mquina virtual: KVM (Kilobyte Virtual Machine) KVM es una mquina virtual Java compacta y portable especficamente diseada para ser la base de desarrollo en dispositivos pequeos y de recursos limitados. Actualmente CLDC trabaja sobre KVM. Adems KVM est diseada para mantener los aspectos centrales del lenguaje Java ejecutndose en unos cuantos kilobytes de memoria (de ah su nombre). Aunque KVM deriva de la mquina virtual J2SE (JVM), algunas caractersticas de esta ltima han sido eliminadas para soportar CLDC, debido a que resultan demasiado costosas de implementar o su presencia supone problemas de seguridad, resultando una KVM con las siguientes limitantes: Soporte de punto flotante.- KVM no soporta nmeros de punto flotante, esto debido a que la mayora de los dispositivos en los que se implementa no lo soportan tampoco. Finalizacin.- Las APIs CLDC no incluyen el mtodo object.finalize, as que no se pueden hacer operaciones de limpieza final antes de que el recolector de basura tome los objetos. Manejo de errores.- CLDC slo define tres clases error: java.lang.Error, java.lang.OutOfMemoryError y java.lang.VirtualMachineError. Todo tipo Pgina 4

Lic. Hctor Luyo Chumpitaz

de errores que no sean en tiempo de ejecucin se manejan de modo dependiente del dispositivo, esto incluye la finalizacin de una aplicacin o reinicio del dispositivo. Interfaz Nativa Java (JNI).-No se implementa JNI (posibilidad de incluir cdigo en C dentro de clases Java), primeramente por motivos de seguridad, aunque tambin es considerado excesivo dadas las limitantes de memoria del dispositivo al que se dirige. Cargadores de clases definidas por el usuario.- KVM debe tener un cargador de clases que no pueda ser manipulado o remplazado por el usuario, principalmente por razones de seguridad. No hay soporte para la API reflection. La API reflection es ms bien usada para aplicaciones de bajo nivel (depuradores, constructores GUI, etc). La falta de esta API impide tambin la serializacin de objetos. Grupos de hilos o hilos "demonio".- Aunque CLDC soporta programacin multihilo, no soporta grupos de hilos o hilos "demonio". Si requiere usar operaciones para grupos de hilos use objetos de coleccin para almacenar los objetos hilo a nivel de aplicacin. Referencias dbiles.- Ninguna aplicacin construida con CLDC puede requerir referencias dbiles.

Verificador de clases
En la mquina virtual de J2SE, el verificador de clases es el responsable de rechazar archivos de clase no vlidos. Una mquina virtual que soporte CLDC (ahora KVM) tambin debe ser capaz de rechazar estos archivos. Sin embargo, el proceso de verificacin de clases es tardado y costoso y, por lo tanto, no recomendable para equipos con recursos limitados. Los diseadores de KVM decidieron mover la mayor parte del trabajo de verificacin de clases fuera del dispositivo, es decir, hacia la computadora de escritorio donde las clases son compiladas o el servidor de donde se descargan. A este proceso de verificacin se le llama preverificacin. Los dispositivos son nicamente responsables de ejecutar algunas pruebas en la clase preverificada para asegurarse de que an es vlida. APIs en J2ME-CLDC Las APIs para CLDC tienen el objetivo de proveer un conjunto de bibliotecas mnimo y til para el desarrollo de aplicaciones y definicin de perfiles para una gran variedad de aparatos. Las APIs CLDC se pueden dividir en dos categoras: Clases derivadas de APIs J2SE. Estas se localizan en los paquetes java.lang, java.io y java.util y se Pgina 5

Lic. Hctor Luyo Chumpitaz

derivan de APIs del Java Developement Kit (JDK) 1.3. En la tabla 1 y 2 se muestra una lista detallada de las clases incluidas. Clases especficas para CLDC. Se localizan en el paquete javax.microedition y sus subpaquetes y se explican con detalle en la tablas 3.

Clases heredadas (derivadas) CLDC hereda algunas clases de sistema, entrada y salida (E/S) y utilidades de la plataforma J2SE, las tablas 1 y 2 muestran los paquetes y sus clases que se heredaron de la edicin estndar.

Tabla 1. Clases de NO excepcin heredadas de J2SE Paquete Clases Boolean, Byte, Character, Class, Integer, Long, Math, Object, Runnable, java.lang Runtime, Short, String, StringBuffer, System, Thread, Throwable ByteArrayInputStream, ByteArrayOutputStream, DataInput, DataOutput, java.io DataInputStream, DataOutputStream, InputStream, OutputStream, InputStreamReader, OutputStreamWriter, PrintStream, Reader, Writer java.util Calendar, Date, Enumeration, Hashtable, Random, Stack, TimeZone, Vector Tabla 2. Clases de excepcin heredadas de J2SE Paquete Clases ArithmeticException, ArrayIndexOutOfBoundException, ArrayStoreException, ClassCastException, ClassNotFoundException, Error, Exception, IllegalAccessException, IllegalArgumentException, IllegalMonitorStateException, IllegalThreadStateException, java.lang IndexOutOfBoundException, InstantiationException, InterruptedException, OutOfMemoryError, NegativeArraySizeException, NumberFormatException, NullPointerException, RuntimeException, SecurityException, StringIndexOutOfBoundException, VirtualMachineError EOFException, IOException, InterruptedException, java.io UnsupportedEncodingException, UTFDataFormatException java.util EmptyStackException, NoSuchElementException Soporte de propiedades En CLDC no hay implementacin para la clase java.util.Properties, sin embargo las propiedades mostradas en la tabla 3 estn disponibles y se pueden obtener llamando al mtodo System.getProperty(clave), donde clave puede ser cualquiera de las siguientes: Lic. Hctor Luyo Chumpitaz Pgina 6

Tabla 3. Claves de las propiedades CLDC. Clave microedition.platform Explicacin Valor predeterminado null

La plataforma o dispositivo husped. Codificacin predeterminada de microedition.encoding ISO8859_1 caracteres. microedition.configurations Configuracin y versin J2ME actual. CLDC-1.0 microedition.profiles Nombre de los perfiles soportados. null

Clases especficas de CLDC Las siguientes clases (Tabla 4) son especficas de CLDC y estn contenidas en el paquete javax.microedition.io: Tabla 4. Clases especficas de CLDC. Paquete Clases Connection, ConnectionNotFoundException, Connector, ContentConnector, Datagram, DatagramConnection, javax.microedition.io InputConnection, OutputConnection, StreamConnection, StreamConnectionNotifier Clases especficas de MIDP Adems de las clases especficas de MIDP contenidas en javax.microedition.rms, javax.microedition.midlet y javax.microedition.lcdui; estn disponibles las siguientes clases, interfaces y clases de excepcin: IllegalStateException. Clase en el paquete java.lang. Timer y TimerTask. Clases en el paquete java.util. HttpConnection. Interfaz para acceso a una red por el protocolo HTTP contenida en el paquete javax.microedition.io.

Lic. Hctor Luyo Chumpitaz

Pgina 7

You might also like