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