J2me tecnología java para dispositivos con recursos limitados Java 2 Micro Edition



Descargar 14,74 Kb.
Fecha de conversión01.07.2017
Tamaño14,74 Kb.

J2ME

Java 2 Micro Edition

  • J2ME es una versión de la plataforma J2SE adaptada a las limitaciones de los móviles, PDA’s 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 pequeñas (mínimo 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
  • Máquina
  • Virtual
  • CVM
  • Compact virtual machine
  • SO
  • Depende del dispositivo

Configuraciones

  • Las configuraciones proveen la base funcional para un rango
  • de dispositivos con características similares.
  • Especifican los siguientes aspectos:
  • - El subconjunto del lenguaje java que puede ser usado.
  • - El subconjunto de funciones de la Máquina 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á diseñada para dispositivos con conexión intermitente, poco procesador, y memoria limitada como los teléfonos móviles y PDA´s (procesador de 16-32 bits y memorias de 128Kb como mínimo).
  • Connected Device Configuration (CDC):
  • Está diseñada para equipos con más memoria, procesadores más rápidos y conexiones de mayor ancho de banda, sistemas telemáticos de vehículos o computadores de mano de gran capacidad (procesador de 32 bits y memoria de 2Mb o más).

Perfiles

  • Un perfil define un conjunto de APIs características
  • comunes para un conjunto de dispositivos.

Mobile Information Device Profile

  • MIDP es un perfil diseñado para desarrollar aplicaciones
  • enfocadas a móviles, PDA’s y dispositivos soportados por
  • la configuración CLDC.
  • Se encarga de las siguientes funcionalidades:
  • - Interfaz de usuario (javax.microedition.lcdui)
  • - Funciones de red (añade funciones a javax.microedition.io)
  • - Almacenamiento persisitente (javax.microedition.rms)

MIDP 1.0 y 2.0

  • La versión más 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).
  • Preverificación: J2SE verifica el código en tiempo de ejecución. En J2ME una parte se verifica antes (fuera del dispositivo) reduciendo así la carga de la máquina.
  • Descriptor y manifiesto: Cada aplicación incluye archivos adicionales con información referente a las aplicaciones.
  • No hay recolector de basura: Hay que eliminar de forma explícita los elementos que no vayan a usarse más.
  • La máquina virtual: La KVM es una versión reducida de la JVM diseñada para dispositivos limitados.
  • No hay “main”: El equivalente sería la función 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 aplicación,
  • mediante las funciones startApp, pauseApp y destroyApp.

Javax.microedition.lcdui

  • Este paquete contiene las clases necesarias para
  • implementar la interficie de usuario.

Javax.microedition.lcdui

  • Por cada MIDlet tenemos una instancia de
  • la clase Display.
  • La aplicación llama al método getDisplay()
  • desde la constructora para poder referenciar
  • a dicha instancia.
  • Los Displayable se emplazan en la display mediante la función 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 gráficas. Llama al método paint(Graphics) para dibujar en la pantalla.
  • - Screen: Ofrece estructuras predefinidas (Form, Alert, TextBox, List). No accede a las características
  • 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 método addCommand(Command).
  • - CommandListener: Es una interfaz que permite escuchar eventos generados por Commands al objeto que la implemeta. Se invoca al método CommandAction(Command,Displayable) cada vez que se produce un nuevo evento. Se asocia a un Displayable con el método de esta clase setCommandListener(CommandListener).

Javax.microedition.lcdui.game

  • MIDP 2.0 incorpora este paquete diseñado 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 métodos getGraphics() y flushGraphics(g) nos permiten trabajar off-screen.
  • - El método getKeyState() permite trabajar por encuesta o polling y consultar en todo momento la tecla pulsada.
  • LayerManager:Permite la gestión de los layers.
  • - Mediante el método append(Layer) le asignamos layers.
  • - setViewWindow(x,y,width,height) define la región de la pantalla donde seran visibles los layers asignados.
  • Layer: Clase abstracta que representa un elemento visual de la aplicación.
  • - Todas sus subclases deben implementar el método paint(Graphics).

Javax.microedition.lcdui.game

  • Sprite: Consiste en un layer formado por una secuencia de imágenes para realizar animaciones.
  • - Sprite(Image,width,height) crea el Sprite a partir de la imagen y el tamaño de sus secciones.
  • - Ofrece métodos 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 método
  • int createAnimatedTile(tileIndex) i modificarlo mediante setAnimatedTile(animatedTileIndex,staticTileIndex)

Imágenes

  • MIDP sólo acepta el formato png.
  • Hay varias maneras de mostrar imágenes:
  • - Un archivo incluido en el MIDlet.
  • - Un array de bytes:
  • - Almacenado en memoria persistente - Descargado de un servidor
  • - Incluído en el propio programa
  • El método 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 aplicación
  • y recuperarlos en una ejecución
  • posterior.
  • La clase RecordStore es una colección
  • 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 comunicación.
  • La clase connector permite crear las conexiones:
    • Connection connector.open(String url)
    • url = [protocol] : [dirección]
  • Valores de protocol
    • http
    • Datagram
    • Comm
    • File
    • Socket

Estructura básica de una aplicación

  • import java.lang.*; // Packetes cldc, midp y opcionales
  • public class NetClientMIDlet extends MIDlet implements CommandListener {
  • private Display display; // Interficie de usuario
  • private Form form; // Objeto Displayable
  • private Command exit; // Commando
  • public NetClientMIDlet() {
  • display = Display.getDisplay(this); // Inicialización de la interficie
  • …}
  • Public void startApp(){
  • form.setCommandListener(this); // Gestor de eventos
  • display.setCurrent(form); // Asignación de la pantalla
  • …}
  • public void pauseApp() {
  • …}
  • public void destroyApp() {
  • …}
  • public void commandAction(Command c, Displayable d) {
  • if (c == exit) destroyApp(); // Tratamiento de eventos
  • …}

Instalación de las aplicaciones

  • Cuando compilamos una aplicación con el Wireless
  • toolkit se generan 2 ficheros:
  • - JAR: Contiene todas las clases e imágenes que usa la aplicación y un fichero llamado manifiesto con información sobre su contenido (versión, 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 tamaño. Solo hace falta este fichero para instalar la aplicación ya que durante la instalación se descarga automaticamente el jar de la url especificada.

Herramientas para el desarrollo

  • Java 2 SDK versión 1.4 o superior
  • J2ME Wireless Toolkit
  • Entorno de Desarrollo Visual (IDE) Opcional. SunONE, JBuilder (Mobile Set), NetBeans.

Bibliografia

  • Toda la información 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


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal