J2ME - PowerPoint PPT Presentation

About This Presentation
Title:

J2ME

Description:

J2ME Tecnolog a java para dispositivos con recursos limitados Java 2 Micro Edition J2ME es una versi n de la plataforma J2SE adaptada a las limitaciones de los ... – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 28
Provided by: FIB
Category:
Tags: j2me | j2me

less

Transcript and Presenter's Notes

Title: J2ME


1
J2ME
  • Tecnología java para dispositivos con recursos
    limitados

2
Java 2 Micro Edition
  • J2ME es una versión de la plataforma J2SE
    adaptada a las limitaciones de los móviles, PDAs
    y muchos dispositivos con capacidad limitada.

3
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)

4
Arquitectura de J2ME
Perfiles MIDP JSR 37 PDAP JSR 75 FP JSR 46 PBP JSR 129 PP JSR 62
Configuraciones CLDC JSR 30 CLDC JSR 30 CDC JSR 36 CDC JSR 36 CDC JSR 36
Máquina Virtual KVM Kilobyte virtual machine KVM Kilobyte virtual machine CVM Compact virtual machine CVM Compact virtual machine CVM Compact virtual machine
SO Depende del dispositivo Depende del dispositivo Depende del dispositivo Depende del dispositivo Depende del dispositivo
5
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.

6
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 PDAs (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).

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

8
Mobile Information Device Profile
  • MIDP es un perfil diseñado para desarrollar
    aplicaciones
  • enfocadas a móviles, PDAs 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)

9
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 2.0 MIDP 2.0
MIDP 1.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
10
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().

11
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.

12
Javax.microedition.lcdui
  • Este paquete contiene las clases necesarias para
  • implementar la interficie de usuario.

13
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)

14
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.

15
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).

16
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.

17
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.
  • LayerManagerPermite 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).

18
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.

19
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,staticT
    ileIndex)

20
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.

21
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).

22
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)

23
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

24
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()

25
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.

26
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.

27
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
Write a Comment
User Comments (0)
About PowerShow.com