jsr

22
 JSR-179 Location API para J2ME: Posicionamiento geográfico en nuestras aplicaciones (GPS) Clase 1. javax.microedition.localizacion.Location  2. javax.microedition.localizacion.Orientation  3. javax.microedition.localizacion.ProximityListener  4. javax.microedition.localizacion .LandmarkStore.m anagement  5. javax.microedition.localizacion.LandmarkStore.read  6. javax.microedition.localizacion .LandmarkStore.w rite  7. javax.microedition.localizacion.LandmarkStore.category  J2ME, Java Wireless Message API (WMA) El API está compuesto exclusivamente de interfaces ubicadas bajo el páquete javax.wireless.messaging . Estas interfaces son:  javax.wireless.me ssaging.Message : Define la funcionalidad genérica de todos los tipos de men sajes. Permite: a. Especificar el destinatario del mensaje. public void setAddress(String addr) b. Obtener el emisor del mensaje. public String getAddress() c. Obtener la fecha de envio del mensaje. java.util.Date getTimestamp()  javax.wireless.me ssaging.TextMessa ge: Represe nta a un mensaje d e texto. Hereda la funcionalidad de javax.wireless.messaging.Message añadiendo los métodos public void setPayloadText(String data) y public String getPayloadText() para especificar u obtener los datos del mensaje.  javax.wireless.me ssaging.BinaryMessage: Represent a a un mensaje binario. Hereda la funcionalidad de javax.wireless.messaging.Message añadiendo los métodos public void setPayloadData(byte[] data) y public byte[] getPayloadData() para especificar u obtener los datos del mensaje.  javax.wireless.me ssaging.Message Listener: Oyente de mensaje s entrantes. Esta interfaz es útil en javax.wireless.messaging.MessageConnectionque funcionan en modo servidor. (Será explicada más adelante.)  javax.wireless.me ssaging.Message Connection: Interfaz a través de la cual se realiza el envío y la recep ción de mensajes. (Será explicada más adelante.)

Upload: patricia-lopez

Post on 11-Jul-2015

70 views

Category:

Documents


1 download

TRANSCRIPT

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 1/22

 

JSR-179 Location API para J2ME: Posicionamientogeográfico en nuestras aplicaciones (GPS)

Clase

1.  javax.microedition.localizacion.Location 2.  javax.microedition.localizacion.Orientation 

3.  javax.microedition.localizacion.ProximityListener 

4.  javax.microedition.localizacion.LandmarkStore.management 

5.  javax.microedition.localizacion.LandmarkStore.read 

6.  javax.microedition.localizacion.LandmarkStore.write 

7.  javax.microedition.localizacion.LandmarkStore.category 

J2ME, Java Wireless Message API

(WMA)El API está compuesto exclusivamente de interfaces ubicadas bajo el páquetejavax.wireless.messaging. Estas interfaces son:

 javax.wireless.messaging.Message: Define la funcionalidad genérica de todos los tipos de mensajes.Permite:

a.  Especificar el destinatario del mensaje. public void setAddress(String addr) 

b.  Obtener el emisor del mensaje. public String getAddress() 

c.  Obtener la fecha de envio del mensaje. java.util.Date getTimestamp() 

 javax.wireless.messaging.TextMessage: Representa a un mensaje de texto.Hereda la funcionalidad de javax.wireless.messaging.Messageañadiendo los métodos

public void setPayloadText(String data) y public String getPayloadText() 

para especificar u obtener los datos del mensaje.

 javax.wireless.messaging.BinaryMessage: Representa a un mensaje binario.Hereda la funcionalidad de javax.wireless.messaging.Messageañadiendo los métodos

public void setPayloadData(byte[] data) y public byte[] getPayloadData() 

para especificar u obtener los datos del mensaje.

 javax.wireless.messaging.MessageListener: Oyente de mensajes entrantes.

Esta interfaz es útil en javax.wireless.messaging.MessageConnectionque funcionan en

modo servidor. (Será explicada más adelante.)

 javax.wireless.messaging.MessageConnection: Interfaz a través de la cual se realiza el envío y la recepciónde mensajes. (Será explicada más adelante.)

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 2/22

 

En J2ME, todas las comunicaciones que requieren los MIDLets con el exterior (Bluetooth, Socket, Http, etc.)

se obtienen a través la clase javax.microedition.io.Connectorque forma

parte del CLDC. Esta clase devuelve una instancia de una clase que implementa la interfaz

javax.microedition.io.Connectionpara el modo de comunicación

deseada. Pues bien, la interface

javax.wireless.messaging.MessageConnection no es más que

un javax.microedition.io.Connection para comunicación via SMS.

Métodos de la clase:

public javax.wireless.messaging.Message newMessage(java.lang.String type, java.lang.String address)

Crea un nuevo mensaje para ser enviado.

En el argumento type especificamos el tipo de mensaje que deseamos enviar:MessageConnection.TEXT_MESSAGE para mensajes de textoMessageConnection.BINARY_MESSAGE para mensajes binarios.

En el argumento address debemos especificar la dirección del destinatario del mensaje. Normalmente, sunúmero de teléfono.

public int numberOfSegments(javax.wireless.messaging.Message msg)

Devuelve el número de segmentos que son necesarios para enviar la información a través de la red.

Por ejemplo, si queremos enviar el Quijote via SMS pues seguro que son necesarios más de un segmento(un segmento es igual a un SMS como lo conocen los usuarios) y este método nos devolvería o bien un

número grande o bien el valor 0 indicando que no se puede enviar la información deseada.

public javax.wireless.messaging.Message receive() throws IOException, InterruptedIOException

Devuelve un mensaje enviado a nuestra aplicación. Hay que tener varias cosas importantes en mente:

1.  Es un método bloqueante, por lo que generalmente deberá ser invocado en un hilo distinto alhilo principal donde está ejecutandose el Midlet.

2.  Nuestra aplicación es responsable de guardar la información recibida a memoria no volátil encaso de ser necesario.

public void send(javax.wireless.messaging.Message msg) throws IOException, InterruptedIOException

Envia el mensaje al destinatario.

Este método debe ser invocado en un hilo distinto al hilo principal donde está ejecutandose el Midlet.

Para especificar el destinatario del mensaje se debe usar el método

setAddress(java.lang.String addr) definido en la interfaz

javax.wireless.messaging.Messagede la que heradan

javax.wireless.messaging.TextMessagey

javax.wireless.messaging.BinaryMessage.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 3/22

 

public void setMessageListener(javax.wireless.messaging.MessageListener l) throws IOException

Registrar una clase que implemante la interfaz

javax.wireless.messaging.MessageListener, el plataforma J2ME invocará el método

notifyIncomingMessage() cuando reciba un mensaje.

Este método sólo tiene sentido para javax.wireless.messaging.MessageConnectionquefuncionen en modo servidor

J2ME. Internacionalización de aplicaciones para móviles

J2ME, ha especificado un estandar que permite a los desarrolladores internacionalizar sus aplicaciones y

todas sus clases se ubican en el paquete javax.microedition.global

J2ME, FileConnection API. Acceso a tarjetas de memoriasdesde MIDlets

La gran mayoría de las aplicaciones necesitan guardar información en memorias permanentes cuando laaplicación finalice.

CLDC, nos proporciona a través de las clases del paquete javax.microedition.io de un mecanismo

estándar de almacenamiento de bloques de bytes (RecordStore) que sólo pueden ser leídos,

modificados y borrados por el MIDlet que lo creó.

Aunque en la mayoría de las aplicaciones este mecanismo es más que suficiente, en otras se ve la necesidadde tener un tratamiento más completo que permita la lectura, la escritura, el borrardo y la búsqueda dearchivos y carpetas.

Entre otras cosas, esto último lo que podemos realizar a través del API FileConnection.

FileConnection es una especificación opcional, por lo que la implementación de esta en cada terminaldepende del fabricante.

 javax.microedition.io.file.FileSystemRegistry

 javax.microedition.io.file.FileSystemListener

Es una interfaz que deberán implementar las clases que deseen ser registradas. Contiene un sólo métodoque será invocado por el sistema cuando se añada o elimine la tarjeta de memoria.

public void rootChanged(int eventType, java.lang.String rootName) 

EventType podrá ser una de las dos constantes estáticas definidas en la interface: ROOT_ADDED o

ROOT_REMOVED 

 javax.microedition.io.file.FileConnection

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 4/22

 

Se trata de una interfaz que será implementada por cada dispositivo y que nos proporciona decenas demétodos para crear, leer, escribir, consultar y eliminar información relacionada con archivos ydirectorios. Debido a la extensión de la misma sólo voy a enumerar algunos de ellos, debiendo dirigirseusted a la especificación oficial si necesita más información.

public long availableSize() 

Devuelve el número de bytes dispobibles en la memoria.

public long directorySize(boolean includeSubDirs) throwsjava.io.IOException 

Devuelve el número de bytes que ocupa un directorio teniendo en cuenta o no los subdirectorios.

public void fileSize() throws java.io.IOException 

Devuelve el número de bytes que ocupa el fichero.

public java.util.Enumeration list() throws java.io.IOException 

Devuelve una enumeracion de java.lang.String de todos los archivos y carpetas que contiene el

directorio actual. Los directorios se distinguen fácilmente de los archivos normales por que acaban con el caracter

"/". 

public void setFileConnection(java.lang.String fileName) throwsjava.io.IOException 

Sirve para reutilizar instancias de FileConnection y así no malgastar recursos. Puede usarse el nombre ".."para ir al directorio padre.

public void rename(java.lang.String newName) throwsjava.io.IOException 

Renombra un archivo o carpeta.

public void delete() throws java.io.IOException 

Elimina un archivo o carpeta.

public java.io.InputStream openInputStream() throwsjava.io.IOException 

Obtiene un java.io.InputStream para leer el archivo.

public java.io.OutputStream openOutputStream() throwsjava.io.IOException 

Obtiene un java.io.OutputStream para escribir información en el archivo.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 5/22

 

Java 2 Micro Edition

J2ME es una versión de la plataforma J2SE adaptada a las limitaciones delos móviles, PDA’s y muchos dispositivos con capacidad limitada.

PerfilesUn perfil define un conjunto de APIs características comunes para unconjunto de dispositivos

Mobile Information Device Profile

MIDP es un perfil diseñado para desarrollar aplicaciones enfocadas amó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 mayorparte de dispositivos que hay en el mercado actual funcionan sobre MIDP1.0 (CLDC 1.0).

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 6/22

 

Javax.microedition.midlet

Las aplicaciones midp heredan de la la classe MIDLet. Ésta es la encargadade gestionar el ciclo de vida de la aplicación, mediante las funcionesstartApp, pauseApp y destroyApp.

Javax.microedition.lcdui

Este paquete contiene las clases necesarias para implementar la interficiede usuario.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 7/22

 

 

Javax.microedition.lcdui

  Por cada MIDlet tenemos una instancia dela 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ónsetCurrent(Displayable)

Javax.microedition.lcdu

La calse Displayable tiene dos descendientes:

- Canvas: Permite el control total de la pantalla a bajo nivel. Se usaen aplicaciones que capturan eventos y realizan llamadas gráficas. Llamaal 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.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 8/22

 

Javax.microedition.lcdui

El manejo de eventos utiliza dos componentes:

- Command: Es un generador de eventos que podemos asociar a undisplayable mediante el método addCommand(Command).

- CommandListener: Es una interfaz que permite escuchar eventosgenerados por Commands al objeto que la implemeta. Se invoca al métodoCommandAction(Command,Displayable) cada vez que se produce un nuevoevento. Se asocia a un Displayable con el método de esta clasesetCommandListener(CommandListener).

Javax.microedition.lcdui.game

  MIDP 2.0 incorpora este paquete diseñado especialmente para eldesarrollo de juegos.

  Ofrece una subclase de Canvas que permite trabajar con layers ocapas y controlar colisones entre éstas.

Javax.microedition.lcdui.game

  GameCanvas: Canvas con capacidades adicionales.

- Los métodos getGraphics() y flushGraphics(g) nos permitentrabajar off-screen.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 9/22

 

- El método getKeyState() permite trabajar por encuesta o polling yconsultar 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 pantalladonde seran visibles los layers asignados.

  Layer: Clase abstracta que representa un elemento visual de laaplicació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ágenespara realizar animaciones.

- Sprite(Image,width,height) crea el Sprite a partir de la imagen y eltamaño de sus secciones.

- Ofrece métodos para controlar colisiones con otros layers.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 10/22

 

Javax.microediton.lcdui.game

  TiledLayer: Esta compuesto por una parrilla de tiles en la que a cadauno 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 mediantesetAnimatedTile(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.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 11/22

 

 

Javax.microedition.rms

Este paquete proporciona una clase (RecordStore) y varias interfaces parael almacenamiento persistente.

Consiste en un mecanismo simple orientado a registros que permiteguardar datos, salir de la aplicación y recuperarlos en una ejecuciónposterior.

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

  Cuando se modifica un RecordStore se lanza un evento alRecordListener asociado.

  Hay 3 tipos de eventos:

  recordAdded(RecordStore rs,int recordId)

  recordChanged(RecordStore rs,int recordId)

  recordDeleted(RecordStore rs,int recordId)

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 12/22

 

Javax.microedition.io

  Contiene varias interfaces que ofrecen distintas posibilidades decomunicació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

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 13/22

 

http://www.dccia.ua.es/dccia/inf/asignaturas/TW/docs/j2me.pdf 

Capas de Java ME

Paquetes opcionales: APIs para características especiales de algunos modelos – Acceso a la cámara

 – 3DPerfiles: APIs para una familia de dispositivosConfiguración: API para un gran conjunto de dispositivos – CLDC: teléfonos móviles• Máquina virtual limitada (KVM)  – CDC: PDAs 

CLDC: teléfonos y similaresDispositivos con memoria del orden de los KB

 – Puede funcionar con sólo 128KB – Teléfonos móviles y PDAs de gama baja

Se ejecuta sobre KVM (Kilobyte Virtual Machine )Muy limitada, para poder funcionar con escasos recursos – P.ej, no soporta reales (tipos float y double)Perfil MIDP (el más común, aunque hay otros)

 – Dispositivos móviles de información (MIDs) – Paquetes:• javax.microedition.lcdui • javax.microedition.midlet • javax.microedition.rms 

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 14/22

 

Paquetes opcionalesWireless Messaging API (WMA)

 – Envío y recepción de mensajes cortos (SMS)Mobile Media API (MMAPI)

 – Multimedia, reproducción y captura de video y audio

Bluetooth API – Permite establecer conexiones vía BluetoothJ2ME Web Services

 – Invocación de servicios web desde dispositivos móvilesMobile 3D Graphics

 – Permite incorporar gráficos 3D a las aplicaciones y juegos

Otros APIs comunes de Java ME Algunas operaciones “comunes” en Java ME Conexión con el servidor

 – Se pueden recibir/enviar datos vía HTTPEnvío/recepción de SMSs – Se puede utilizar también para comunicar aplicaciones entre síActivación por push 

 – Disparar una aplicación automáticamente cuando sucede unevento (hora, recepción de un SMS,…)  Almacenamiento de datos persistentes

 – RMS: una especie de “ficheros de acceso aleatorio”  

Conexión con el servidorSe pueden abrir conexiones HTTP

No es habitual leer/enviar HTML (para eso usaríamos uncliente thin , no thick ). Se suele leer/enviar – XML: + descriptivo – Datos binarios: +compacto (-coste)Para leer/enviar datos binarios, hay que usar una serie demétodos del paquete java.io

Envío/recepción de SMS

API opcional llamado WMA (recordad que opcional = no todos los móviles compatibles Java ME están obligados a tenerlo )

Envío MessageConnection mc = ( MessageConnection)Connector.open("sms://+34555000000:6226");String texto ="Este es un mensaje corto de texto";TextMessage msg = mc.newMessage(mc.TEXT_MESSAGE);msg.setPayloadText(texto);mc.send (msg);

Recepción MessageConnection mc = ( MessageConnection)Connector.open("sms://:6226");

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 15/22

 

 Message msg = mc.receive();

Activación por push Pull: el usuario pone en marcha la aplicaciónPush: la aplicación se pone en marcha por algún evento

 – Temporizador (alarma) – Conexión entrante (p.ej.SMS recibido)Por ejemplo, el servidor puede mandar un SMS por un puerto determinado para avisar deque hay una nueva entrada en el blog.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 16/22

 

PAQUETES USADOS EN J2MEInformation Module Profile (IMP), JSR 195:

Es un paquete que se puede combinar con CLDC y MIDP.Proporciona un entorno de aplicacion para dispositivos embebidos que no tiene grandescapacidades graficas o con recursos limitados de alguna otra manera: paneles de emergencia,

parquimetros, sistemas de alarma domesticos y similares. Un uso tipico puede ser, por ejemplo,en una maquina expendedora, donde los modulos wireless pueden enviar alertas cuando lasmaquinas necesitan que las repongan.IMP proporciona la funcionalidad de aplicacion basica para aplicaciones maquina-maquina,incluyendo conectividad de red, almacenamiento local y gestion del ciclo de vida de laaplicacion.

Wireless Messaging API (WMA); JSR 120, JSR 205

Es un paquete que se puede utilizar sobre CLDC y MIDP (1.0 y 2.0) y CDC y sus perfiles.El API para mensajeria sin cables (Wireless Messaging API, WMA) proporciona acceso

independiente de plataforma a recursos de comunicacion sin cable como la mensajeria SMS(Short Message Service, SMS).Existen dos especificaciones:

-)WMA 1.0, la especificacion original a partir de JSR 120.

-)WMA 1.1, especificacion que incluye cambios para considerar el framework de seguridad y laarquitectura de comunicacion de MIDP 2.0

Mobile Media API (MMAPI); JSR 135

Es un paquete que se puede utilizar sobre CLDC y MIDP (1.0 y 2.0) y CDC y sus perfiles.Este paquete extiende la funcionalidad de la plataforma J2ME incorporando soporte de audio,video y otros tipos de datos multimedia basados en tiempo a dispositivos de recursos limitados.Existen dos especificaciones:

-)WMA 1.0, la especificacion original a partir de JSR 135.

-)WMA MMAPI 1.1, especificacion que incluye cambios para considerar el framework deseguridad de MIDP 2.0

Location API for J2ME (JSR-179)

Es un paquete que se puede utilizar sobre CLDC 1.1 y CDC.Esta especificacion permite la localizacion de dispositivos moviles para dispositivos conrecursos limitados. El API se ha diseñ ado para generar informacion sobre la localizaciongeografica actual del terminal para las aplicaciones Java. El API cubre la obtencion de lalocalizacion geografica presente y la orientacion del terminal y acceder a una base de datos demapas almacenados en el terminal.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 17/22

 

SIP API for J2ME (JSR-180)

Es un paquete que se puede utilizar sobre CLDC.El protocolo Session Initiation Protocol (SIP) se utiliza para establecer y gestionar sesiones IPmultimedia. El mismo mecanismo se puede utilizar para proporcionar mensajeria instantanea,presencia y servicios de juego.

El API se ha diseñ ado para permitir que las aplicaciones Java envien y reciban mensajesSIP.

Security and Trust Services API for J2ME (JSR-177)

Es un paquete que se puede utilizar sobre CLDC.Este paquete amplia las caracteristicas de seguridad para la plataforma J2ME añ adiendoAPIs de cifrado, servicio de firma digital y gestion de credenciales de usuario.

Mobile 3D Graphics (JSR-184)

Es un paquete que se puede utilizar sobre CLDC y MIDP (1.0 y 2.0) El paquete Mobile 3DGraphics API (M3G) permite generar graficos tridimensionales a frecuencias de imageninteractivas en dispositivos mobiles de recursos restringidos.Tambien incluye utilizadades parala gestion de escenas 3D y animaciones asi como un formato de archivo para despliegue eficasOTA para contenido 3D.

J2ME Web Services APIs (WSA), JSR 172

Es un paquete que se puede utilizar sobre CLDC y MIDP (1.0 y 2.0).El paquete J2ME Web Services APIs (WSA) amplia la plataforma de servicios web para incluir

J2ME. Estas APIs permiten que los dispositivos J2ME puedan ser clientes de servicios webmediante un modelo de programacion consistente con la plataforma estandar de servicios web.

Bluetooth API (JSR- 82, Motorola, Java Partner Site)

Es un paquete que se puede utilizar sobre CLDC y MIDP (1.0 y 2.0).Proporciona un estandar para la creacion de aplicaciones Bluetooth, de forma que lasaplicaciones desarrolladas con el paquete opcional puedan ejecutarse utilizando estatecnologia.

J2ME RMI Optional Package, (RMI OP); JSR 66

Es un paquete que se puede utilizar sobre CDC.EL paquete RMI Optional (RMI OP) permite a dispositivos de consumo y aplicacionesembebidas interactuar como y con aplicaciones distribuidas. Se amplian las caracteristicas deRMI existentes para que pequeños dispositivos interactuen entre si. RMI OP es unsubconjunto del API RMI de J2SE.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 18/22

 

 JDBC Optional Package for CDC/Foundation Profile API (JSR- 169)

Es un paquete que se puede utilizar sobre CDC.Es un paquete que define un subconjunto del API JDBC 3.0 que se puede utilizar en J2ME paraprocesar datos de repositorios, habitualmente BBDD relacionales, mediante SQL y para

manipular datos tabulares como si fueran JavaBeans.

Screens y FormsLa clase Alert La clase List La clase TextBoxLa clase Ticker La clase StringItemLa clase ImageItem La clase TextField

La clase DateField La clase ChoiceGroupLa clase Gauge

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 19/22

 

http://mami.uclm.es/j2me/J2ME/manuales/Curso_J2ME.pdf 

El API de CLDC 

El API de CLDC es un pequeño subgrupo del API de J2SE. A parte de estas clases e interfaces, el API de CLDC

contiene una serie de interfaces propias, dedicadas a los servicios de red.

El paquete java.lang

Las clases e interfaces del paquete java.lang, están relacionadas con el núcleo del lenguaje Java. Es decir, estás

clases incluyen soporte para las capacidades del lenguaje como los recubrimientos de los tipos primitivos de

variables, las cadenas, la excepciones y los threads, entre otras.Las clases e interfaces del lenguaje java.lang son :

Boolean.- Encapsula el tipo primitivo bolean

Byte. – Encapsula el tipo primitivo byte

Character. – Encapsula el tipo primitivo char

Class. – Proporciona información sobre la ejecución de una clase

Integer. – Encapsula el tipo primitivo int 

Long. – Encapsula el tipo primitivo long

Math. – Proporciona acceso a varias operaciones y constantes matemáticas

Object. – La superclase del resto de clases en Java

Runnable. – Interfaz que proporciona un significado a la creación de threads (hilos), sin heredar la clase

Thread

Runtime. – Proporciona acceso al entorno de ejecución

Short. – Encapsula el tipo primitivo short String. – Representa una cadena de texto constante

StringBuffer .– Representa una cadena de texto, de longitud y valor variable

System .– Proporciona acceso a los recursos del sistema

Thread .– Se usa para crear un “thread” (hilo) de ejecución dentro de un programa

Throwable .– Proporciona soporte para el control de excepciones

El paquete java.util

El paquete java.util , como en J2SE, incluye clases e interfaces con utilidades variadas, como puede ser el

manejo de fechas, estructuras de datos...

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 20/22

 

Las clases e interfaces de java.util son:

Calendar. – Proporciona funciones para manejar fechas y convertir valores numéricos en fechas

Date – Representa un instante de tiempo

Enumeration. – Es una interfaz que describe como manejar la iteración entre un grupo de valores

Hashtable .– Una colección que asocia valores y claves

Random. – Generador de números pseudoaleatorios

Stack. – Una colección con gestión LIFOTimeZone. – Representa la zona horaria

Vector. – Una colección en forma de matriz dinámica

El paquete java.io

Este paquete proporciona clases e interfaces de apoyo para leer y escribir datos. Aunque la funciones de

persistencia, recaen sobre los perfiles.

Las clases e interfaces de java.io son:

ByteArrayInputStream. – Un flujo (stream) de entrada que se gestiona internamente como una matriz de

bytes.

ByteArrayOutputStream. – Un flujo (stream) de salida que se gestiona internamente como una matriz de

bytes.

DataInput. – Una interfaz que define los métodos para leer datos desde un flujo (stream) binario a tiposprimitivos

DataInputStream. - Un flujo (stream) desde el cual se leen datos como tipos primitivos

DataOutput .– Una interfaz que define métodos para escribir datos en forma de tipos primitivos en un flujo

(stream) binario

DataOutputStream. – Escribe datos en tipos primitivos en un flujo (stream) en formato binario

InputStream .– La clase base para todos los flujos (streams) de entrada

InputStreamReader. – Un flujo (stream) desde el que se pueden leer caracteres de texto

OutputStream. – La clase base para todos los flujos (streams) de salida

OutputStreamWriter. – Un flujo (stream) en el que se pueden escribir caracteres detexto

PrintStream. – Un flujo (stream) de escritura que facilita el “envío” de datos en forma de tipos primitivos  

Reader. – Una clase abstracta para leer flujos (streams) de lectura

Writer. – Una clase abstracta para leer flujos (streams) de escritura

El GCF (Generic Connection Framework) de CLDC 

Debido a las dificultades para proveer soporte para funciones de red a nivel de configuración, por la variedad

en los dispositivos, el CLDC delega esta parte del API a los perfiles. Para realizar esta delegación de forma

satisfactoria, el CLDC ofrece un marco general de trabajo en red, conocido como el GCF ( Generic Connection

Framework ). El GCF está compuesto básicamente por una serie de interfaces de conexión, junto con una clase

“Conector” que es usada para establecer las diferentes conexiones. Todo esto, está dentro del paquete  

 javax.microedition.io.

Las interfaces del paquete javax.microedition.io son:

Connection. – Una conexión básica que sólo puede ser abierta y cerrada

ContentConnection. – Un flujo (stream) de conexión que proporciona acceso a datos web

DatagramConnection. – Una conexión para manejar comunicaciones orientadas a paquetes

InputConnection. – Una conexión de entrada para las comunicaciones del dispositivoOutputConnection. – Una conexión de salida para las comunicaciones del dispositivo

StreamConnection. – Una conexión en ambas direcciones para las comunicaciones del dispositivo

StreamConnectionNotifier. – Una conexión especial para notificaciones, que es usada para esperar que se

establezca una conexión

El API de MIDP 

El perfil de dispositivo, comienza donde la configuración para, en lo que se refiere a proveer funciones para

llevar a cabo importantes tareas en un determinado tipo de dispositivo.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 21/22

 

De forma similar a lo que hicimos con el API de CLDC, el API de MIDP se puede dividir en dos partes. Dos

clases heredadas directamente del API de J2SE y una serie de paquetes que incluyen clases e interfaces únicas

para el desarrollo de MIDP.

Las clases heredadas de J2SE

Sólo dos clases del API de MIDP, provienen directamente del API de J2SE. Estas clases están dentro del

paquete java.util , dentro del API de MIDP.

Timer – Proporciona funcionalidad para crear tareas programadas temporalmenteTimerTask – Representa una tarea que es temporizada a través de la clase Timer

Clases e interfaces propios de MIDP

La gran parte del API de MIDP, son una serie de clases e interfaces diseñadas explícitamente para la

programación de MIDLets. Aunque estas clases e interfaces son similares a algunas clases del API de J2SE, son

totalmente exclusivas del API de MIDP. Esta parte del API se divide en varios paquetes:

javax.microedition.midlet 

javax.microedition.lcdui

javax.microedition.io

javax.microedition.rms

El paquete javax.microedition.midlet Este es el paquete central del API de MIDP y contiene una sola clase:

MIDlet. Esta clase provee la funcionalidad básica para que una aplicación se puede ejecutar dentro de un

dispositivo con soporte para MIDLets.

El paquete javax.microedition.lcdui

Este paquete contiene clases e interfaces que soportan componentes de interfaz de usuario (GUI), específicos

para las pantallas de los dispositivo móviles. La funcionalidad de este paquete es similar a la del  Abstract 

Windowing Toolkit (AWT) de J2SE, aunque bastante más reducida, como es obvio.

Lcdui, corresponde al texto Liquid Crystal Displays User Interfaces.

Las pantallas de cristal líquido son comunes en los dispositivos móviles.

Un concepto básico dentro de la programación de MIDLets, es la pantalla ( screen), que es un componente GUI

genérico, que sirve de clase base para otros componentes. Las interfaces de usuario, se compondránañadiendo componentes a la clase base (screen). A parte de la creación de interfaces de usuario mediante esta

aproximación de alto nivel, también se puede acceder directamente a primitivas de dibujo, sobre la pantalla.

En este caso, la superficie de la pantalla del dispositivo es como un lienzo (canvas).

Las interfaces del paquete javax.microedition.lcdui son:

Choice – Una interfaz que describe una serie de elementos sobre los que el usuario puede escoger

CommandListener – Una interfaz de monitorización de eventos (listener ), para gestionar comandos a alto

nivel

ItemStateListener – Una interfaz de monitorización de eventos (listener ) para gestionar los eventos sobre el

estado de los elementos

Además de las interfaces antes enumeradas, el paquete lcdui, contiene también las siguientes clases:

Alert – Una pantalla que muestra información al usuario y después desaparece.

AlertType – Representa diferentes tipos de alertas, usadas junto con la clase Alert Canvas – Una superficie (lienzo) para dibujar a bajo nivel.

Permite dibujar las pantallas que mostrará el dispositivo, a bajo nivel

ChoiceGroup – Presenta un grupo de elementos seleccionables. Se usa junto con el interfaz Choice

Command – Representa un comando a alto nivel, que puede ser generado desde el MIDLet 

DateField – Representa una fecha y una hora que pueden ser editadas

Display – Representa la pantalla del dispositivo y acoge la recuperación de las acciones del usuario

Displayable. – Es un componente abstracto que se puede mostrar por pantalla. Es una superclase para otros

componentes.

Font. – Representa un tipo de letra y las métricas asociadas al mismo.

5/11/2018 JSR - slidepdf.com

http://slidepdf.com/reader/full/jsr 22/22

 

Form.– Es una pantalla que sirve como contenedor para otros componentes gráficos de usuario.

Gauge. – Muestra un valor, como un porcentaje dentro de una barra.

Graphics. – Encapsula operaciones gráficas bidimensionales, como son el dibujo de líneas, elipses, texto e

imágenes.

Image. – Representa una imagen.

ImageItem. – Es un componente que soporta la presentación (layout ) de una imagen.

Item. – Es un componente que representa un elemento con una etiqueta.List. – Es un componente que consiste en una lista de opciones para seleccionar.

Screen. – Representa una pantalla completa a alto nivel, y sirve como clase base para todos los componentes

del interfaz de usuario de MIDP.

StringItem. – Un componente que representa un elementoconsistente en una etiqueta y una cadena de texto

asociada.

TextBox. – Un tipo de pantalla que soporta la visualización y edición de texto.

TextField. – Un componente que soporta la visualización y edición de texto. A diferencia de un TextBox, este

componente puede ser añadido a un form, junto con otros componentes.

Ticker. – Un componente que muestra texto moviéndose horizontalmente, como una marquesina.

El paquete javax.microedition.io

El CLDC, descarga el trabajo con la red y la entrada/salida en al paquete  java.io y en el Generic Connection

Framework (GCF). El API de MIDP parte de esta base, añadiendo la interfaz HttpConnection, que pertenece alpaquete javax.microedition.io.

El paquete javax.microedition.rms

El API de MIDP, presenta un sistema de persistencia basado en registros para almacenar información. Este

sistema, conocido como Record Management System (RMS). Las interfaces del paquete javax.microedition.rms

son:

RecordComparator. – Para comparar dos registros.

RecordEnumeration. – Para iterar sobre los registros.

RecordFilter. – Para filtrar registros de acuerdo a un registro.

RecordListener. – Un monitorizador de eventos usado para controlar los cambios en los registros.

A parte de estas interfaces, tenemos una serie de clases, de las que debemos destacar la clase RecordStore, que

representa un recordstore (almacén de registros). Las clases del paquete javax.microedition.rms son:InvalidRecordException. – Se lanza cuando una operación falla porque el identificador del registro es invalido.

RecordStore. – Representa un “almacén de registros”.

RecordStoreException. – Se lanza cuando una operación falla por un error general.

RecordStoreFullException. - Se lanza cuando una operación falla porque el record store está completo.

RecordStoreNotFoundException. – Se lanza cuando una operación falla porque el record store no se ha podido

localizar.

RecordStoreNotOpenException. – Se lanza cuando se realiza una operación sobre un record store cerrado.