Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación...

117
Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación “Aplicación de Java en Tecnología Móvil”

Transcript of Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación...

Page 1: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Rogelio Ferreira EscutiaInstituto Tecnológico de Morelia

Departamento de Sistemas y Computación

“Aplicación de Javaen Tecnología Móvil”

Page 2: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

“Ser o no ser, ése es el dilema”

Shakespeare

“Comprar Motorola, Nokia, Samsung o Sony-Ericcson, ése es el dilema”

Rogelio F.

Page 3: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Tendencias

Page 4: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

ARPANET

4

Esquema básico de Arpanet en 1969

• Arpanet http://www.techweb.com/encyclopedia/ - septiembre 2002

Page 5: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

5

Page 6: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Celulares

6

En los últimos años se ha incrementado el mercado de dispositivos móviles, sólo en el área de teléfonos celulares se estiman 150 millones de suscriptores en el 2001 y con una tendencia de hasta 800 millones en el 2005.

• [6] Wireless Markup Language - http://wmclub.com/docs/mercamundo.htm, octubre 2003

Page 7: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Bluetooth

7

Conceptos:

Es parte de las redes de tipo PAN y WPAN. Bluetooth es un estándar abierto para procesamiento y

transmisión de información inalámbrica de corto alcance. Inició su desarrollo en 1998 a partir de un grupo auspiciado por

Ericsson, IBM, Intel, Nokia y Toshiba (Bluetooth Special Interest Group).

Su objetivo es transferir información entre dispositivos móviles (laptops, PDA´s, teléfonos, etc.).

Soporta programación para comunicación punto a punto y multipunto.

Bluetooth soporta hasta 720 Kbps de transferencia de datos dentro de un rango de 10 a 100 metros.

Utiliza ondas de radio omnidireccionales que pueden atravesar paredes de material no metálico.

Transmite en la banda de 2.4 GHz.

• Bluetooth http://www.techweb.com/encyclopedia - mayo 2003

Page 8: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Bluetooth

8

Al poner el portafolio en el escritorio se sincroniza la PDA con la PC y se transfieren información como correos, citas, agenda, etc.

Al llegar a la casa, al acercarse el PDA, emite la orden para abrir la puerta, prender luces y activar y ajustar el aire acondicionado.

En las carreras de caballos puedes realizar tus apuestas vía PDA y llevar las estadísticas de las carreras, a la vez, puedes ordenar bebidas o comida.

• Motorola Bluetooth http://e-ww.motorola.com/webapp/sps/site/overview.jsp?nodeId=03GGqrXlR5yzptj7TrmpMH - mayo 2003

Page 10: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

10

Febrero 2005Febrero 2005 Enero 2005Enero 2005 % cambio% cambio

Número de sesiones/visitas por mesNúmero de sesiones/visitas por mes 2929 3131 -5.94-5.94

Dominios visitados por persona por Dominios visitados por persona por mesmes

5858 6262 -6.92-6.92

Páginas web por persona por mesPáginas web por persona por mes 1,0531,053 1,1271,127 -6.56-6.56

Páginas vistas por sesiónPáginas vistas por sesión 3636 3636 00

Tiempo utilizado en la PC por mesTiempo utilizado en la PC por mes 25:14:0925:14:09 27:18:2527:18:25 -7.59-7.59

Tiempo utilizado en la PC por sesiónTiempo utilizado en la PC por sesión 0:51:210:51:21 0:52:160:52:16 -1.75-1.75

Tiempo empleado por páginaTiempo empleado por página 0:00:450:00:45 0:00:450:00:45 00

Usuarios de internet activosUsuarios de internet activos 295,830,166295,830,166 300,869,02300,869,0222

-1.67-1.67

Usuarios de internet totalesUsuarios de internet totales 455,368,387455,368,387 454,601,77454,601,7711

+0.17+0.17

Crecimiento de usuarios en internet

• Nielsen//NetRatings - http://www.netratings.com/news.jsp?section=dat_gi - octubre 2005

Page 11: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Servicios MóvilesServicios Móviles

11• -

Page 12: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Historia

Page 13: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Fusión de TecnologíasFusión de Tecnologías

13• Java 2 Micro Edition: Java in Small Things, James White y David Hemphill, Manning Publications 2002

Page 14: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

La edición Java 2 Micro Edition fue presentada en 1999 por Sun Microsystems con el propósito de habilitar aplicaciones Java para pequeños dispositivos.

En esta presentación, lo que realmente se enseñó fue una primera versión de una nueva Java Virtual Machine (JVM) que podía ejecutarse en dispositivos Palm.

Java Micro Edition es la versión del lenguaje Java que está orientada al desarrollo de aplicaciones para dispositivos pequeños con capacidades restringidas tanto en pantalla gráfica, como de procesamiento y memoria (teléfonos móviles, PDA`s, Handhelds, Pagers, etc).

J2ME - HistoriaJ2ME - Historia

14• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 15: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Posibles Plataformas – J2MEPosibles Plataformas – J2ME

15• Java 2 Micro Edition: Java in Small Things, James White y David Hemphill, Manning Publications 2002

Page 16: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

2) Características de J2ME

Page 17: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Arquitectura JavaArquitectura Java

17• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 18: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Un entorno de ejecución de J2ME se compone de:

a) Máquina virtual.b) Configuración.c) Perfil.d) Paquetes Opcionales.

Entorno de EjecuciónEntorno de Ejecución

18• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 19: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Las diferentes tecnologías Java comparten un conjunto más o menos amplio de APIs básicas del lenguaje, agrupadas principalmente en los paquetes java.lang y java.io.

J2ME contiene una mínima parte de las APIs de Java.

J2ME usa 37 clases de la plataforma J2SE provenientes de los paquetes java.lang, java.io, java.util.

J2ME a diferencia de J2SE utiliza una máquina virtual distinta de la clásica JVM denominada KVM.

Esta KVM tiene unas restricciones que hacen que no posea todas las capacidades incluidas en la JVM. J2ME es un subconjunto de J2SE (excepto por el paquete javax.microedition).

Clases y Máquina VirtualClases y Máquina Virtual

19• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 20: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Las configuraciones, que son un conjunto de clases básicas orientadas a conformar el corazón de las implementaciones para dispositivos de características específicas.

Existen 2 configuraciones definidas en J2ME:

Connected Limited Device Configuration (CLDC) enfocada a dispositivos con restricciones de procesamiento y memoria. La VM (Virtual Machine) de la configuración CLDC se denomina KVM.

Connected Device Configuration (CDC) enfocada a dispositivos con más recursos. La VM (Virtual Machine) de la CDC se denomina CVM.

ConfiguracionesConfiguraciones

20• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 21: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Relación entre J2SE y J2MERelación entre J2SE y J2ME

21• Java 2 Micro Edition: Java in Small Things, James White y David Hemphill, Manning Publications 2002

Page 22: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

KVM es la Máquina Virtual más pequeña desarrollada por Sun.

Su nombre KVM proviene de Kilobyte (haciendo referencia a la baja ocupación de memoria, entre 40Kb y 80Kb).

Se trata de una implementación de Máquina Virtual reducida y especialmente orientada a dispositivos con bajas capacidades computacionales y de memoria.

La KVM está escrita en lenguaje C, aproximadamente unas 24000 líneas de código.

KVMKVM

22• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 23: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Pequeña, con una carga de memoria entre los 40Kb y los 80 Kb, dependiendo de la plataforma y las opciones de compilación.

Alta portabilidad.

Modular.

Lo más completa y rápida posible y sin sacrificar características para las que fue diseñada.

KVM - CaracterísticasKVM - Características

23• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 24: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

No hay soporte para tipos en coma flotante, no existen los tipos double ni float.

No existe soporte para JNI (Java Native Interface).

No existen cargadores de clases (class loaders) definidos por el usuario, sólo existen los predefinidos.

No se permiten los grupos de hilos o hilos daemon.

No existe la finalización de instancias de clases.

No hay referencias débiles.

Limitada capacidad para el manejo de excepciones

Reflexión.

KVM - DesventajasKVM - Desventajas

24• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 25: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Ejecución en JavaEjecución en Java

25• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 26: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

La CVM (Compact Virtual Machine) ha sido tomada como Máquina Virtual Java de referencia para la configuración CDC y soporta las mismas características que la Máquina Virtual de J2SE.

Está orientada a dispositivos electrónicos con procesadores de 32 bits de gama alta y en torno a 2Mb o más de memoria RAM.

CVMCVM

26• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 27: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Sistema de memoria avanzado. Tiempo de espera bajo para el recolector de basura. Separación completa de la VM del sistema de memoria. Recolector de basura modularizado. Portabilidad. Rápida sincronización. Ejecución de las clases Java fuera de la memoria de sólo lectura

(ROM). Soporte nativo de hilos. Baja ocupación en memoria de las clases. Proporciona soporte e interfaces para servicios en Sistemas

Operativos de Tiempo Real. Conversión de hilos Java a hilos nativos. Soporte para todas las características de Java2 v1.3 y librerías

de seguridad, referencias débiles, Interfaz Nativa de Java (JNI), invocación remota de métodos (RMI), Interfaz de depuración de la Máquina Virtual (JVMDI).

CVM - CaracterísticasCVM - Características

27• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 28: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CDC y CLDCCDC y CLDC

28• -

Page 29: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Dispositivos Soportados - J2MEDispositivos Soportados - J2ME

29• Java 2 Micro Edition: Java in Small Things, James White y David Hemphill, Manning Publications 2002

Page 30: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CDC (Connected Limited Configuration) está orientada a dispositivos con cierta capacidad computacional y de memoria, por ejemplo, decodificadores de televisión digital, televisores con internet, algunos electrodomésticos y sistemas de navegación en automóviles.

CDC usa una Máquina Virtual Java similar en sus características a una de J2SE, pero con limitaciones en el apartado gráfico y de memoria del dispositivo. Ésta Máquina Virtual se denomina como CVM (Compact Virtual Machine).

CDCCDC

30• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 31: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CDC está enfocada a dispositivos con las siguientes capacidades:

Procesador de 32 bits.

Disponer de 2 Mb o más de memoria total, incluyendo memoria RAM y ROM.

Poseer la funcionalidad completa de la Máquina Virtual Java2.

Conectividad a algún tipo de red.

CDC - CaracterísticasCDC - Características

31• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 32: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CDC - PaquetesCDC - Paquetes

32• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

NOMBRE DE PAQUETE CDC DESCRIPCIONjava.io Clases de interfaces estándar de E/S.java.lang Clases básicas del lenguaje.java.lang.ref Clases de referencia.java.lang.reflect Clases e interfaces de reflection.java.math Paquete de matemáticas.java.net Clases e interfaces de red.java.security Clases e interfaces de seguridad.java.security.cert Clases de certificados de seguridad.java.text Paquete de texto.java.util Clases de utilidades estándar.java.util.jar Clases y utilidades para archivos .JAR.java.util.zip Clases y utilidades para archivos ZIP y comprimidos.javax.microedition.io Clases e interfaces para conexión genérica CDC.

Page 33: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC (Connected Limited Device Configuration) está orientada a dispositivos dotados de conexión y con limitaciones en cuanto a capacidad gráfica, cómputo y memoria.

Algunos de estos dispositivos son: teléfonos móviles, buscapersonas (pagers), PDAs, organizadores personales, etc.

CLDC está orientado a dispositivos con ciertas restricciones, algunas de éstas restricciones vienen dadas por el uso de la KVM, necesaria al trabajar con la CLDC debido a su pequeño tamaño.

CLDCCLDC

33• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 34: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Disponer entre 160 Kb y 512 Kb de memoria total disponible.

Como mínimo se debe disponer de 128 Kb de memoria no volátil para la Máquina Virtual Java y las bibliotecas CLDC, y 32 Kb de memoria volátil para la Máquina Virtual en tiempo de ejecución.

Procesador de 16 o 32 bits con al menos 25 Mhz de velocidad.

Ofrecer bajo consumo, debido a que éstos dispositivos trabajan con suministro de energía limitado, normalmente baterías.

Tener conexión a algún tipo de red, normalmente sin cable, con conexión intermitente y ancho de banda limitado (unos 9600 bps).

CLDC - RequisitosCLDC - Requisitos

34• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 35: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Un subconjunto del lenguaje Java y todas las restricciones de su Máquina Virtual (KVM).

Un subconjunto de las bibliotecas Java del núcleo.

Soporte para E/S básica.

Soporte para acceso a redes.

Seguridad.

CLDC - CaracterísticasCLDC - Características

35• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 36: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC - PaquetesCLDC - Paquetes

36• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

NOMBRE DE PAQUETE CLDC DESCRIPCION

java.io Clases y paquetes estándar de E/S. Subconjunto de J2SE.java.lang Clases e interfaces de la Máquina Virtual. Subconjunto de J2SE.java.util Clases, interfaces y utilidades estándar. Subconjunto de J2SE.javax.microedition.io Clases e interfaces de conexión genérica CLDC.

Page 37: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Los perfiles identifican un grupo de dispositivos por la funcionalidad que proporcionan (electrodomésticos, teléfonos móviles, etc.) y el tipo de aplicaciones que se ejecutarán en ellos.

Las librerías de la interfaz gráfica son un componente muy importante en la definición de un perfil. Aquí nos podemos encontrar grandes diferencias entre interfaces, desde el menú textual de los teléfonos móviles hasta los táctiles de los PDAs.

El perfil establece unas APIs que definen las características de un dispositivo, mientras que la configuración hace lo propio con una familia de ellos. Esto hace que a la hora de construir una aplicación se cuente tanto con las APIs del perfil como de la configuración.

PerfilesPerfiles

37• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 38: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Para la configuración CDC tenemos los siguientes perfiles:

Foundation Profile. Personal Profile. RMI Profile.

Para la configuración CLDC tenemos los siguientes: PDA Profile. Mobile Information Device Profile (MIDP).

Tipos de PerfilesTipos de Perfiles

38• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 39: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

PerfilesPerfiles

39• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 40: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Este perfil define una serie de APIs sobre la CDC orientadas a dispositivos que carecen de interfaz gráfica como, por ejemplo, decodificadores de televisión digital.

Este perfil incluye gran parte de los paquetes de la J2SE, pero excluye totalmente los paquetes “java.awt” Abstract Windows Toolkit (AWT) y “java.swing” que conforman la interfaz gráfica de usuario (GUI) de J2SE.

Si una aplicación requiriera una GUI, entonces sería necesario un perfil adicional.

Perfil CDC: Foundation ProfilePerfil CDC: Foundation Profile

40• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 41: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Perfil CDC: Foundation ProfilePerfil CDC: Foundation Profile

41• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

PAQUETES DEL FOUNDATION PROFILE DESCRIPCIONjava. Lang Soporte del lenguaje.java.util Añade soporte completo para zip y otras funcionalidades (java.util.Timer)java.net Incluye sockets TCP/IP y conexiones HTTP.java.io Clases Reader y Writer de J2SE.java.text Incluye soporte para internacionalización.java.security Incluye códigos y certificados.

Page 42: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

El Personal Profile es un subconjunto de la plataforma J2SE v1.3, y proporciona un entorno con un completo soporte gráfico AWT.

El objetivo es el de dotar a la configuración CDC de una interfaz gráfica completa, con capacidades web y soporte de applets Java.

Este perfil requiere una implementación del Foundation Profile.

Perfil CDC: Personal ProfilePerfil CDC: Personal Profile

42• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 43: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Perfil CDC: Personal ProfilePerfil CDC: Personal Profile

43• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

PAQUETES DEL PERSONAL PROFILE DESCRIPCION

java. applet Clases necesitadas para crear applets o que son usadas por ello.java.awt Clases para crear GUIs con AWT.java.awt.datatransfer Clases e interfaces para transmitir datos entre aplicaciones.java.awt.event Clases e interfaces para manejar eventos AWT.java.awt.font Clases e interfaces para manipulación de fuentes.java.awt.im Clases e interfaces para definir métodos editores de entrada.java.awt.im.spi Interfaces que añaden el desarrollo de métodos editores de entrada.java.awt.image Clases para crear y modificar imágenes.java.beans Clases que soportan JavaBeans .javax.midlet.xlet Interfaces que usan el Personal Profile para la comunicación.

Page 44: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Este perfil requiere una implementación del Foundation Profile se construye encima de él.

El perfil RMI soporta un subconjunto de las APIs J2SE v1.3 RMI. Algunas características de estas APIs se han eliminado del perfil RMI debido a las limitaciones de cómputo y memoria de los dispositivos.

Las siguientes propiedades se han eliminado del J2SE RMI v1.3:

Java.rmi.server.disableHTTP. Java.rmi.activation.port. Java.rmi.loader.packagePrefix. Java.rmi.registry.packagePrefix. Java.rmi.server.packagePrefix.

Perfil CDC: RMI ProfilePerfil CDC: RMI Profile

44• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 45: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Pretende abarcar PDAs de gama baja, tipo Palm, con una pantalla y algún tipo de puntero (ratón o lápiz) y una resolución de al menos 20000 pixels (al menos 200x100 pixels) con un factor 2:1.

Este perfil se encuentra en fase de definición.

Perfil CLDC: PDA ProfilePerfil CLDC: PDA Profile

45• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 46: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Al igual que CLDC fue la primera configuración definida para J2ME, MIDP fue el primer perfil definido para esta plataforma.

Este perfil está orientado para dispositivos con las siguientes características:

Reducida capacidad computacional y de memoria. Conectividad limitada (en torno a 9600 bps). Capacidad gráfica muy reducida (mínimo un display de

96x54 pixels monocromo). Entrada de datos alfanumérica reducida. 128 Kb de memoria no volátil para componentes MIDP. 8 Kb de memoria no volátil para datos persistentes de

aplicaciones. 32 Kb de memoria volátil en tiempo de ejecución para la

pila Java.

Perfil CLDC: MID Profile (MIDP)Perfil CLDC: MID Profile (MIDP)

46• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 47: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

A los tipos de dispositivos que se adaptan a estas características son:

Teléfonos móviles, buscapersonas (pagers) o PDA´s de gama baja con conectividad.

El perfil MIDP establece las capacidades del dispositivo, por lo tanto, especifica las API´s relacionadas con:

La aplicación (semántica y control de la aplicación MIDP). Interfaz de usuario. Almacenamiento persistente. Trabajo en red. Temporizadores.

MIDP - CaracterísticasMIDP - Características

47• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 48: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

MIDP - PaquetesMIDP - Paquetes

48• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

PAQUETES DEL MIDP DESCRIPCION

javax.microedition.Icdui Clases e interfaces para GUIs.javax.microedition.rms Soporte para el almacenamiento persistente del dispositivo.javax.microedition.midlet Clases de definición de la aplicación.javax.microedition.io Clases e interfaces de conexión genérica.java.io Clases e interfaces de E/S básica.java.lang Clases e interfaces de la Máquina Virtual.java.util Clases e intefaces de utilidades estándar.

Page 49: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Las aplicaciones que realizamos utilizando MIDP reciben el nombre de MIDlets (por simpatía con APPlets).

Por lo tanto, un MIDlet es una aplicación Java realizada con el perfil MIDP sobre la configuración CLDC.

Actualmente, y con un punto de vista práctico, MIDP es el único perfil actualmente disponible.

MIDletsMIDlets

49• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 50: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

3) Descargar una aplicación en un dispositivo móvil

Page 51: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Los dispositivos deben proporcionar mecanismos mediante los cuales podamos encontrar los MIDlets que deseemos descargar.

En algunos casos, descargamos los MIDlets a través de un navegador WAP o a través de una aplicación residente escrita específicamente para identificar MIDlets.

Otros mecanismos como Bluetooth, cable serie, etc, pueden ser soportados por el dispositivo.

El programa encargado de manejar la descarga y ciclo de vida de los MIDlets en el dispositivo se llama Gestor de Aplicaciones o AMS (Application Management Software).

Descarga de MIDletsDescarga de MIDlets

51• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 52: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Un dispositivo que posea la especificación MIDP debe ser capaz de:

Localizar archivos JAD vinculados a un MIDlet en la red. Descargar el MIDlet y el archivo JAD al dispositivo desde

un servidor usando el protocolo HTTP 1.1 u otro que posea su funcionalidad.

Enviar el nombre de usuario y contraseña cuando se produzca una respuesta HTTP por parte del servidor 401 (Unauthorized) o 407 (Proxy Authentication Required).

Instalar el MIDlet en el dispositivo. Ejecutar MIDlets. Permitir al usuario borrar MIDlets instalados.

MIDP y MIDletsMIDP y MIDlets

52• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 53: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

El descubrimiento de una aplicación es el proceso por el cual un usuario a través de su dispositivo localiza un MIDlet.

El usuario debe ser capaz de ver la descripción del MIDlet a través de un enlace que, una vez seleccionado, inicializa la instalación del MIDlet.

Si éste enlace se refiere a un archivo JAR, el archivo y su URL son enviados al AMS del dispositivo para empezar el proceso de instalación.

Localización de la AplicaciónLocalización de la Aplicación

53• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 54: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

La instalación de la aplicación es el proceso por el cual el MIDlet es descargado al dispositivo y puede ser utilizado por el usuario.

Cuando existan múltiples MIDlets en la aplicación que deseamos descargar, el usuario debe ser avisado de que existen más de uno.

Durante la instalación, el usuario debe ser informado del progreso de ésta y se le debe de dar la oportunidad de cancelarla.

La interrupción de la instalación debe dejar al dispositivo con el mismo estado que cuando se inició ésta.

Instalación de MIDletsInstalación de MIDlets

54• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 55: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

La actualización se realiza cuando instalamos un MIDlet sobre un dispositivo que ya contenía una versión anterior de éste.

El dispositivo debe ser capaz de informar al usuario cual es la versión de la aplicación que tiene instalada.

Cuando comienza la actualización, el dispositivo debe informar si la versión que va a instalar es más nueva, más vieja o la misma de la ya instalada y debe obtener verificación por parte del usuario antes de continuar con el proceso.

En cualquier caso, un MIDlet que no posea firma no debe de reemplazar de ninguna manera a otro que sí la tenga.

Actualización de MIDletsActualización de MIDlets

55• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 56: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Cuando un usuario comienza a ejecutar un MIDlet, el dispositivo debe invocar a las clases CLDC y MIDP requeridas por la especificación MIDP.

Si existen varios MIDlets presentes, la interfaz de usuario debe permitir al usuario seleccionar el MIDlet que desea ejecutar.

Los dispositivos deben permitir al usuario eliminar MIDlets. Antes de eliminar una aplicación el usuario debe dar su confirmación. El dispositivo debería avisar al usuario si ocurriese alguna circunstancia especial durante la eliminación del MIDlet. Por ejemplo, el MIDlet a borrar podría contener a otros MIDlets, y el usuario debería de ser alertado ya que todos ellos quedarían eliminados.

Ejecución de MIDletsEjecución de MIDlets

56• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 57: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

4) Instalación de Herramientas de Desarrollo

Page 58: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Es necesario instalar primero el J2SE (Java 2 Standard Edition) versión para Windows, la cual se descarga de:) versión para Windows, la cual se descarga de:

http://java.sun.com/j2se/1.5.0/download.jsphttp://java.sun.com/j2se/1.5.0/download.jsp

En esta dirección se descarga el archivo denominado:En esta dirección se descarga el archivo denominado:

jdk-1_5_0-windows-i586.exejdk-1_5_0-windows-i586.exe

Este archivo tiene un tamaño de 43.93 MB y se ejecuta para Este archivo tiene un tamaño de 43.93 MB y se ejecuta para que instale la máquina virtual de Java.que instale la máquina virtual de Java.

Instalación de JavaInstalación de Java

58• -

Page 59: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Para probar si quedo instalado se teclea “java –version” en una terminal de Windows.

Instalación de JavaInstalación de Java

59• -

Page 60: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Una vez instalada la máquina virtual, se procede a descargar el J2ME, el cual se descarga de:cual se descarga de:

http://www.sun.com

En esta dirección se descarga el archivo denominado:En esta dirección se descarga el archivo denominado:

j2me_wireless_toolkit-2_2-windows.exe

Este archivo es la versión para Windows, se ejecuta y se Este archivo es la versión para Windows, se ejecuta y se instala el J2ME.instala el J2ME.

Instalación de J2MEInstalación de J2ME

60• -

Page 61: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Para arrancar el J2ME se ejecuta “ktoolbar” del menu inicio de J2ME.

Instalación de J2MEInstalación de J2ME

61• -

Page 62: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Existen otras herramientas que implementan algunas xisten otras herramientas que implementan algunas características, módulos, librerías, emuladores, etc. de características, módulos, librerías, emuladores, etc. de J2MEJ2ME..

Algunas de estas herramientas son:Algunas de estas herramientas son:

Sun One Studio Mobile EditionSun One Studio Mobile Edition Forte for JavaForte for Java JbuilderJbuilder VisualAge MicroeditionVisualAge Microedition CodeWarrior for JavaCodeWarrior for Java Nokia Developer’s Suite for J2MENokia Developer’s Suite for J2ME

Entornos de Desarrollo J2MEEntornos de Desarrollo J2ME

62• -

Page 63: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

5) Desarrollo de Aplicaciones

Page 64: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

El proceso para llevar a cabo la creación de un MIDlet es el siguiente:

Crear el MIDlet Escribir el código y compilar. Preverificar el código. Empaquetar en JAR y crear el archivo JAD. Ejecutar el emulador.

Creación de un MIDletCreación de un MIDlet

64• -

Page 65: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Las aplicaciones MIDP deben implementar los siguientes tres métodos:

startApp (): Este método es utilizado para la ejecución del MIDlet. Su objetivo es ejecutar la aplicación y solicitar recursos.

pauseApp (): Este método es invocado por el sistema para solicitarle al MIDlet que haga una pausa. Libera los recursos adquiridos por el método starApp ().

destroyApp (boolean unconditional): Este método es llamado por el sistema antes de que sea destruido el MIDlet. Además libera todos los recursos adquiridos

Métodos BásicosMétodos Básicos

65• -

Page 66: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Métodos BásicosMétodos Básicos

66• -

Page 67: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Los MIDlets son empaquetados en carpetas .JAR junto a imágenes, logos, para formar una MIDlet suite.

Cada archivo .JAR lleva asociado un archivo .JAD (Java Application Descriptor, Descriptor de Aplicación Java) que es utilizado para gestionar la instalación.

El archivo .JAM (Java Application Manager, Manejador de Aplicaciones Java) es el encargado de gestionar la descarga y la instalación de los MIDlets..

Archivos .JARArchivos .JAR

67• -

Page 68: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Los MIDlets tienen atributos obligatorios y opcionales

Atributos de un MIDletAtributos de un MIDlet

68• -

ATRIBUTOS OBLIGATORIOS ATRIBUTOS OPCIONALES

MIDlet-Name MIDlet-DescriptionMIDlet-Versión MIDlet-IconMIDlet-Vendor MIDlet-Info-URLMIDlet-<n> (name, icon, class) MIDlet-Data-SizeMicroEdition-ProfileMicroEdition-Configuration

Page 69: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Para poder instalar un MIDlet en un teléfono celular del cliente se siguen los siguientes pasos:

Paso 1: El Cliente pide una el fichero JAD.

Paso 2: El fichero JAD es descargado al Cliente.

Paso 3: El JAM verifica el fichero JAD.

Paso 4: Se descarga la MIDlet suite al Cliente.

Instalar un MIDlet en un celularInstalar un MIDlet en un celular

69• -

Page 70: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Instalar un MIDlet en un celularInstalar un MIDlet en un celular

70• -

Page 71: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Se arranca J2ME (ejecutando “KToolBar”).

Se crea un proyecto nuevo (“New Project””).

Se teclea el código fuente (“hola.java”) en un editor.

Se guarda el código fuente en “C:\WTK22\apps\hola\src”.

Se compila el proyecto (“Build”).

Por último se ejecuta (“Run”).

Se observará en el simulador del J2ME la aplicación. Para iniciar la aplicación se hace click en “Launch”.

““hola Mundo” en J2MEhola Mundo” en J2ME

71• -

Page 72: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Programa “hola Mundo” corriendo en el simulador del J2ME con el “DefaultColorPhone”.

““hola Mundo”hola Mundo”

72• -

Page 73: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Dentro del J2ME se seleccionan las características con que cuenta el celular donde se descargará el programa (“Settings”).

Se genera el archivo “hola.JAR” por medio del menú “SettingsProject / Package / Create Package”.

Este archivo se genera en el directorio “C:\WTK22\apps\hola\bin”.

Se envía el archivo “hola.JAR” al celular por medio de algún medio (infrarrojo, USB, Bluetooth ó WiFi).

Se ejecuta la aplicación en el celular.

““hola Mundo” en un Celularhola Mundo” en un Celular

73• -

Page 74: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Pantalla “settings” del J2ME

““hola Mundo” en un Celularhola Mundo” en un Celular

74• -

Page 75: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Existen varias API´s, las cuales son soportadas por algunos celulares, esto depende del modelo y del fabricante. Las mas conocidas son las siguientes:

Connected Limited Device Configuration (CLDC) 1.1 (JSR 139) Mobile Information Device Profile (MIDP) 2.0 (JSR 118) Java Technology for the Wireless Industry (JTWI) 1.0 (JSR 185) Wireless Messaging API (WMA) 2.0 (JSR 205) Mobile Media API (MMAPI) 1.1 (JSR 135) PDA Optional Packages for the J2ME Platform (JSR 75) Java APIs for Bluetooth (JSR 82) J2ME Web Services Specification (JSR 172) Mobile 3D Graphics API for J2ME (JSR 184)

““hola Mundo” en un Celularhola Mundo” en un Celular

75• -

Page 76: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Celular Sendo XCelular Sendo X

76• -

Page 77: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Celular Sendo XCelular Sendo X

77• -

Page 78: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

6) MIDlets

Page 79: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Ciclo de vida de un MIDletCiclo de vida de un MIDlet

79• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 80: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Estados de un MIDletEstados de un MIDlet

80• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 81: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Estructura de un MIDletEstructura de un MIDlet

81• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Los MIDlets, al igual que los applets carecen de la función main(). Aunque existiese, el gestor de aplicaciones la ignoraría por completo.

Un MIDlet tampoco puede realizar una llamada a System.exit(). Una llamada a este método lanzaría la excepción SecurityException.

Page 82: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

import javax.microedition.midlet.*;

public class prueba extends MIDlet {public prueba() {

// Éste es el constructor de clase// Aquí debemos inicializar nuestras variables

}public void startApp(){

// Aquí incluiremos el código que queremos que el// MIDlet ejecute cuándo se active.

}public void pauseApp(){

// Aquí incluiremos el código que queremos que el// MIDlet ejecute cuándo entre en el estado de pausa (Opcional)

}public void destroyApp(boolean unconditional){

// Aquí incluiremos el código que queremos que el// MIDlet ejecute cuándo sea destruido. Normalmente// aquí se liberaran los recursos ocupados por el//MIDlet como memoria, etc. (Opcional)

}}

Estructura de un MIDletEstructura de un MIDlet

82• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 83: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

import javax.microedition.midlet.*;import javax.microedition.lcdui.*;

public class hola extends MIDlet {private Display pantalla;private Form formulario = null;public hola() {

pantalla = Display.getDisplay(this);formulario = new Form("Hola Mundo");

}public void startApp(){

pantalla.setCurrent(formulario);}public void pauseApp(){}public void destroyApp(boolean unconditional){

pantalla = null;formulario = null;notifyDestroyed();

}}

““Hola Mundo” en J2MEHola Mundo” en J2ME

83• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 84: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC - Clases HeredadasCLDC - Clases Heredadas

84• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

CLDC proporciona un conjunto de clases heredadas de la plataforma J2SE.

En total, usa unas 37 clases provenientes de los paquetes java.lang, java.util y java.io.

Cada una de estas clases debe ser idéntica o ser un subconjunto de la correspondiente clase de J2SE.

Tanto los métodos como la semántica de cada clase deben permanecer invariables.

Page 85: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC - Clases HeredadasCLDC - Clases Heredadas

85• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Clases de datos heredadas de J2SE

Clases de Datos(Subconjunto de java.lang)

java.lang.Booleanjava.lang.Bytejava.lang.Characterjava.lang.Integerjava.lang.Longjava.lang.Shortjava.lang.Booleanjava.lang.Bytejava.lang.Characterjava.lang.Integerjava.lang.Longjava.lang.Short

Page 86: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC - Clases HeredadasCLDC - Clases Heredadas

86• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Clases de datos heredadas de J2SE

Clases de Utilidades(Subconjunto de java.util)

java.util.Calendarjava.util.Datejava.util.Enumerationjava.util.Hashtablejava.util.Randomjava.util.Stackjava.util.TimeZonejava.util.Vector

Page 87: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC - Clases HeredadasCLDC - Clases Heredadas

87• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Clases de datos heredadas de J2SE

Clases de E/S(Subconjunto de java.io)

java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.DataInputjava.io.DataOutputjava.io.DataInputStreamjava.io.DataOutputStreamjava.io.InputStreamjava.io.InputStreamReaderjava.io.OutputStreamjava.io.OutputStreamWriterjava.io.PrintStreamjava.io.Readerjava.io.Writer

Page 88: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC - Clases PropiasCLDC - Clases Propias

88• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

La plataforma J2SE contiene a los paquetes java.io y java.net encargados de las operaciones de E/S, debido a las limitaciones de memoria de CLDC no es posible incluir dentro de él a todas las clases de estos paquetes.

No se han incluido tampoco las clases del paquete java.net, basado en comunicaciones TCP/IP ya que los dispositivos CLDC no tienen por qué basarse en este protocolo de comunicación.

Para suplir estas “carencias” CLDC posee un conjunto de clases más genérico para la E/S y la conexión en red que recibe el nombre de “Generic Connection Framework”. Estas clases están incluidas en el paquete javax.microedition.io

Page 89: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

CLDC - Clases PropiasCLDC - Clases Propias

89• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Clases e interfaces incluidos en el paquete javax.microedition.io

Clase Descripción

Connector Clase genérica que puede crear cualquier tipo de conexión.Connection Interfaz que define el tipo de conexión más genérica.InputConnection Interfaz que define una conexión de streams de entrada.OutputConnection Interfaz que define una conexión de streams de salida.StreamConnection Interfaz que define una conexión basada en streams.ContentConnection Extensión a StreamConnection para trabajar con datos.Datagram Interfaz genérico de datagramas.DatagramConnection Interfaz que define una conexión basada en datagramas.StreamConnectionNotifier Interfaz que notifica una conexión. Permite crear una

conexión en el lado del servidor.

Page 90: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

MIDP - PaquetesMIDP - Paquetes

90• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

PAQUETES DEL MIDP DESCRIPCION

javax.microedition.Icdui Clases e interfaces para GUIs.javax.microedition.rms Soporte para el almacenamiento persistente del dispositivo.javax.microedition.midlet Clases de definición de la aplicación.javax.microedition.io Clases e interfaces de conexión genérica.java.io Clases e interfaces de E/S básica.java.lang Clases e interfaces de la Máquina Virtual.java.util Clases e intefaces de utilidades estándar.

Page 91: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

7) Interfaces de Usuario

Page 92: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Interfaces – Alto NivelInterfaces – Alto Nivel

92• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

En la Interfaz de Alto Nivel se usan componentes tales como botones, cajas de texto, formularios, etc.

Estos elementos son implementados por cada dispositivo y la finalidad de usar las API´s de alto nivel es su portabilidad.

Al usar estos elementos, perdemos el control del aspecto de nuestra aplicación ya que la estética de estos componentes depende exclusivamente del dispositivo donde se ejecute.

En cambio, usando estas API´s de alto nivel ganaremos un alto grado de portabilidad de la misma aplicación entre distintos dispositivos.

Page 93: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Interfaces – Bajo NivelInterfaces – Bajo Nivel

93• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Al crear una aplicación usando las API´s de bajo nivel, tendremos un control total de lo que aparecerá por pantalla.

Estas API´s nos darán un control completo sobre los recursos del dispositivo y podremos controlar eventos de bajo nivel como, por ejemplo, el rastreo de pulsaciones de teclas.

Generalmente, estas API´s se utilizan para la creación de juegos donde el control sobre lo que aparece por pantalla y las acciones del usuario juegan un papel fundamental.

El paquete javax.microedition.lcdui incluye las clases necesarias para crear interfaces de usuario, tanto de alto nivel como de bajo nivel.

Page 94: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

clase Displayclase Display

94• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

La clase Display representa el manejador de la pantalla y los dispositivos de entrada.

Todo MIDlet debe poseer por lo menos un objeto Display.

En este objeto Display podemos incluir tantos objetos Displayable como queramos.

La clase Display puede obtener información sobre las características de la pantalla del dispositivo donde se ejecute el MIDlet, además de ser capaz de mostrar los objetos que componen nuestras interfaces.

Page 95: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

clase Displayclase Display

95• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 96: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Métodos de la clase DisplayMétodos de la clase Display

96• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Métodos Descripciónvoid callSerially(Runnable r) Retrasa la ejecución del método run() del objeto r

para no interferir con los eventos de usuario.boolean flashBacklight(int duracion) Provoca un efecto de flash en la pantalla.int getBestImageHeight(int imagen) Devuelve el mejor alto de imagen para un tipo dado.int getBestImageWidth(int imagen) Devuelve el mejor ancho de imagen para un tipo dado.int getBorderStyle(bolean luminosidad) Devuelve el estilo de borde actual.int getColor(int color) Devuelve un color basado en el parámetro pasado.Displayable getCurrent() Devuelve la pantalla actual.static Display getDisplay(MIDlet m) Devuelve una referencia a la pantalla del MIDlet m.boolean isColor() Devuelve true o false si la pantalla es de color o b/n.int numAlphaLevels() Devuelve el número de niveles alpha soportados.int numColors() Devuelve el número de colores aceptados por el MID.void setCurrent(Alert a, Displayable d) Establece la pantalla d despues de la alerta avoid setCurrent(Displayable d) Establece la pantalla actualvoid setCurrent(Item item) Establece la pantalla en la zona dónde se encuentre el itemboolean vibrate(int duracion) Realiza la operación de vibración del dispositivo.

Page 97: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Creación de una pantallaCreación de una pantalla

97• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Todo MIDlet debe poseer al menos una instancia del objeto Display. Para obtenerla se utiliza:

Display pantalla = Display.getDisplay(this)

La llamada a este método se realiza dentro del constructor del MIDlet, de esta forma se asegura que el objeto Display esté disponible durante toda la ejecución del programa. Dentro del método startApp tendremos que hacer referencia a la pantalla que queramos que esté activa haciendo uso del método:

setCurrent()

Hay que tener en cuenta que cada vez que salimos del método pauseApp, entramos en el método startApp, por lo que la construcción de las pantallas y demás elementos que formarán parte de nuestro MIDlet la tendremos que hacer en el método constructor.

Page 98: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Métodos de la clase DisplayableMétodos de la clase Displayable

98• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Métodos Descripciónvoid addComand(Command cmd) Añade el Command cmd.int getHeight() Devuelve el alto de la pantalla.Ticker getTicker() Devuelve el Ticker (cadena de texto que

se desplaza) asignado a la pantalla.String getTitle() Devuelve el título de la pantalla.int getWidth() Devuelve el ancho de la pantalla.bolean isShown() Devuelve true si la pantalla está activa.void removeCommand(Command cmd) Elimina el Command cmd.void setCommandListener(CommandListener l) Establece un listener para la captura de

eventos.void setTicker(Ticker ticker) Establece un Ticker a la pantalla.void setTitle(String s) Establece un título a la pantalla.protected void sizeChanged(int w, int h) El AMS llama a este método cuándo el

área disponible para el objeto Displayable es modificada.

Page 99: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

clase Itemclase Item

99• Java a tope: J2ME, Sergio Gálvez Rojas y Lucas Ortega Díaz, Universidad de Málaga

Page 100: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Investigación en el ITM

Page 101: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

101• -

Page 102: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

102• -

Page 103: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

103• -

Page 104: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

104• -

Page 105: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

105• -

Page 106: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

106• -

Page 107: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

107• -

Page 108: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

108• -

Page 109: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

109• -

Page 110: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

110• -

Page 111: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

111• -

Page 112: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

112• -

Page 113: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

InvestigaciónInvestigación

113• -

Page 114: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Privacidad Seguridad. Procesos inteligentes (Agentes). Industria Automotríz. Adaptación de Contenido. Interacción Social. Televisión. Materiales Biodegradables. Sistemas Operativos. Mensajería. Localización Desarrollo de Interfaces Domótica. Ruteo. Descubrimiento de servicios.

Retos para el FuturoRetos para el Futuro

114• -

Page 115: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Amor a lo que se hace

115

Yo y mi Elektra IBM PC Compatible 8088, 1987

Hasta que los Hasta que los celulares nos celulares nos

separenseparen

Page 116: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Listos para el Futuro¡ Mayores Oportunidades !

if ((yo = “me gusta mi profesión”) then

else{PROBLEMAS;yo = “ingeniero tutifruti y del montón”;Trabajo = pocas oportunidades;Futuro = dedicarse a lo que sea, menos a lo que estudié;}

Page 117: Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Aplicación de Java en Tecnología Móvil.

Rogelio Ferreira Escutia

Instituto Tecnológico de MoreliaDepartamento de Sistemas y Computación

http://antares.itmorelia.edu.mx/~kaosE-mail: [email protected]

[email protected]