Download nociones básicas de j2me
Document related concepts
no text concepts found
Transcript
DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán sgalan@ujaen.es INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME Creada por Sun Microsystems Presentada oficialmente en 1995 El empujón definitivo ü Acuerdo con Netscape para la integración de la tecnología en sus navegadores ü Hasta entonces, las páginas Web no eran interactivas ü INGENIERÍA DE TELECOMUNICACIÓN Los applets Java permitían añadir interactividad DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME J2SE: (Java 2 Standard Edition) Ø Inspirado en C++ incluyendo componentes de alto nivel como soporte nativo de strings y recolector de basura. Ø Código independiente de la plataforma, precompilado a bytecodes intermedio y ejecutado en el cliente por una JVM (Java Virtual Machine). Ø Modelo de seguridad tipo sandbox proporcionado por la JVM. Ø Abstracción del sistema operativo subyacente mediante un juego completo de APIs de programación. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME J2EE: (Java 2 Enterprise Edition) Ø Orientada al entorno empresarial. Ø Pensado no para ejecutarse en un equipo, sino para ejecutarse sobre una red de ordenadores de forma distribuida y remota mediante EJBs (Enterprise Java Beans). Ø Edición orientada al desarrollo de servicios Web, servicios de nombres, persistencia de objetos, XML, autenticación, APIs para la gestión de transacciones, etc. Ø En definitiva, se amplia la J2SE para dar soporte a los requisitos de las aplicaciones de empresa. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME J2ME: (Java 2 Micro Edition) Ø Enfocada a la aplicación de la tecnología Java en dispositivos con capacidades de computación y gráficas muy reducidas, tales como los teléfonos móviles, PDAs o electrodomésticos inteligentes. Ø Dispone de componentes básicos que la diferencian de las otras versiones, como el uso de una KVM (Kilo Virtual Machine, necesita pocos Kbytes de memoria para funcionar), o como el uso de un pequeño y rápido recolector de basura, etc. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME J2ME J2SE J2EE javax.microedition.* INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME ENTORNO DE EJECUCIÓN: Ø Máquinas virtuales Java con diferentes requisitos, cada una para diferentes tipos de pequeños dispositivos. Ø Configuraciones: conjunto de clases básicas que forman el corazón de las implementaciones para dispositivos con características específicas. CLDC: (Connected Limited Device Configuration) enfocada a dispositivos con restricciones de procesamiento y memoria CDC: (Connected Device Configuration) dispositivos con más recursos. INGENIERÍA DE TELECOMUNICACIÓN enfocada DPTO. TELECOMUNICACIONES -- a ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME Ø Perfiles: bibliotecas Java de clases específicas orientadas a implementar funcionalidades de más alto nivel para familias específicas de dispositivos. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME MÁQUINAS VIRTUALES JAVA Una MVJ es un programa encargado de interpretar código intermedio (bytecode) de los programas Java precompilados a código máquina ejecutable por la plataforma, efectuar las llamadas pertinentes al sistema operativo subyacente y observar las reglas de seguridad y corrección definidas para el lenguaje Java. Ø KVM para CLDC. Ø CVM para CDC. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME KVM (Kilobyte Virtual Machine) Es un implementación muy reducida y especialmente orientada a dispositivos con bajas capacidades computacionales y de memoria. Escrita en lenguaje C con las siguientes características: Ø Ø Ø Ø Entre 40 y 80 Kbytes. Alta portabilidad. Modulable. Lo más completa y rápida posible sin sacrificar características para las que fue diseñada. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME KVM Ø Ø Ø Ø Ø Ø Ø Ø Ø Limitaciones respecto a la clásica Java Virtual Machine (JVM) No hay soporte para tipos en coma flotante. No existe soporte para JNI (Java Native Interface). No existen cargadores de clases definidos por el usuario. No se permiten los grupos de hilos o hilos daemon. No existe finalización de instancias de clases. Object.finalize(); No hay referencias débiles. Limitada capacidad para el manejo de excepciones. Reflexión. ... INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME KVM Limitaciones respecto a la clásica Java Virtual Machine (JVM) Ø Verificación de clases. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CVM (Compact Virtual Machine) Ø Ha sido tomada como la máquina virtual de Java de referencia para la configuración CDC. Ø Soporta las mismas características que la MV de J2SE. Ø Orientada a dispositivos con procesadores de 32 bits de gama alta y en torno a 2 MB o más de memoria RAM. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CONFIGURACIONES Una configuración es el conjunto mínimo de APIs Java que permiten desarrollar aplicaciones para un conjunto de dispositivos. Estas APIs definen las características básicas comunes a todos los dispositivos: Ø Características soportadas del lenguaje de programación Java. Ø Características soportadas por la la Máquina Virtual Java. Ø Bibliotecas básicas de Java y APIs soportadas. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CONFIGURACIÓN CLDC Orientada a dispositivos dotados de conexión y limitaciones en cuanto a capacidad, cómputo y memoria: con Teléfonos móviles. Buscapersonas (pagers). PDAs. Organizadores personales. ... INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CONFIGURACIÓN CLDC Estos dispositivos deben cumplir los siguientes requisitos: Ø Disponer entre 160 y 512 KB de memoria total disponible. 128 KB como mínimo de memoria no volátil para la MVJ y las bibliotecas CLDC, y 32 KB de memoria volátil para la MV en tiempo de ejecución. Ø Procesador de 16 ó 32 bits con al menos 25MHz de velocidad. Ø Bajo consumo, debido a su funcionamiento con baterías. Ø Conexión a alguna red, normalmente sin cable, con conexión intermitente y ancho de banda limitado (9600bps). INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CONFIGURACIÓN CLDC Nombre del paquete CLDC Descripción java. io Clases y paquetes estándar de la E/S Subconjunto de J2SE. java.lang Clases e interfaces de la MV. 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 INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CONFIGURACIÓN CDC Orientada a dispositivos con cierta capacidad computacional y de memoria: Decodificadores de televisión digital. Televisores con Internet. Algunos electrodomésticos. Sistemas de navegación en automóviles. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CONFIGURACIÓN CDC Estos dispositivos deben cumplir los siguientes requisitos: Ø Procesador de 32 bits. Ø Disponer de 2MB o más de memoria total. Ø Poseer la funcionalidad completa de la Máquina Virtual Java2. Ø Conectividad a algún tipo de red. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME CONFIGURACIÓN CLDC Nombre del paquete CDC java. io java.lang java.lang.ref java.lang.reflect java.math java.net java.security java.security.cert java.text java.util java.util.jar java.util.zip javax.microedition.io INGENIERÍA DE TELECOMUNICACIÓN Descripción Clases y paquetes estándar de la E/S. Clases básicas del lenguaje. Clases de referencia. Clases e interfaces de reflection. Paquete de matemáticas. Clases e interfaces de red. Clases e interfaces de seguridad. Clases de certificados de seguridad. Paquete de texto. Clases de utilidad estándar. Clases y utilidades de archivos JAR. Clases y utilidades para archivos ZIP y comprimidos Clases e interfaces de conexión genérica CLDC DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME PERFILES Definen las APIs que controlan el ciclo de vida de la aplicación, interfaz de usuario, etc. Un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado y que define las características de un dispositivo. Los perfiles identifican un grupo de dispositivos por la funcionalidad que proporcionan. Para CDC: Foundation Profile Personal Profile RMI Profile INGENIERÍA DE TELECOMUNICACIÓN Para CLDC: PDA Profile (Mobile Information Device Profile (MIDP) DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME INGENIERÍA DE TELECOMUNICACIÓN Entorno de ejecución J2ME DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME Mobile Information Device Profile (MIDP) Dispositivos con reducida capacidad computacional. Conectividad limitada (9600 bps). Capacidad gráfica muy reducida (mínimo display de 96x54 pixel 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 para la pila Java. APIs relacionadas con: La aplicación (semántica y control de la aplicación MIDP). Interfaz de Usuario. Almacenamiento persistente. Trabajo en red. Temporizadores. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME Mobile Information Device Profile (MIDP) CONFIGURACIÓN CLDC Nombre del paquete MIDP javax.microedition.lcdui javax.microedition.rms javax.microedition.midlet javax.microedition.io java.io java.lang java.util INGENIERÍA DE TELECOMUNICACIÓN Descripción Clases e interfaces para GUIs Record Management Storage. Clases de definición de la aplicación. Clases e interfaces de conexión genérica. Clases e interfaces de E/S básica. Clases e interfaces de la máquina virtual. Clases e interfaces de utilidades estándar. DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME Mobile Information Device Profile (MIDP) Las aplicaciones realizadas utilizando MIDP reciben el nombre de MIDlets. Un MIDlet es una aplicación Java realizada con el perfil MIDP sobre la configuración CLDC. uDistribución JAR (Java ARchive) üArchivo .ZIP que contiene todas las clases compiladas y los recursos del MIDlet. JAD (Java Archive Descriptor) üInformación sobre el MIDlet: nombre, descripción, autor, URL de la descarga, requisitos, iconos, etc. INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME • Revisiones más destacadas – CLDC • 1.0 (2000) : No soporta operaciones en coma flotante • 1.1 (2003) : Sí soporta operaciones en coma flotante – MIDP • 1.0 (2000) : – Versión inicial. Parco soporte multimedia – Los fabricantes añadieron sus propias clases Java para facilitar la creación de juegos à INCOMPATIBILIDADES • 2.0 (2002) : – – – – Gran soporte multimedia Mejora sustancial de compatibilidad entre terminales Soporte de conexiones seguras (HTTPS) Registro “push” INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME • Combinaciones más habituales • CLDC 1.0 + MIDP 1.0 • CLDC 1.0 + MIDP 2.0 • CLDC 1.1 + MIDP 2.0 • Otras APIs – Los fabricantes suelen añadir otras funcionalidades • Estándares – Java APIs for Bluetooth (JSR-82) – Mobile 3D Graphics (JSR-184) • No estándares – Nokia UI – Siemens Color Game API INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME JSR (Java Specification Requests) Ø Grupos de trabajo que definen estándares en la comunidad Java Ø J2ME Technologies CLDC Technology • • • • • • • • • • • • • Connected Limited Device Configuration (CLDC); JSR 30, JSR 139Mobile Information Device Profile (MIDP); JSR 37, JSR 118Information Module Profile, (IMP); JSR 195Java Technology for the Wireless Industry, (JTWI); JSR 185Wireless Messaging API (WMA); JSR 120, JSR 205Mobile Media API (MMAPI); JSR 135Location API for J2ME; JSR 179SIP API for J2ME; JSR 180Security and Trust Services API for J2ME, (SATSA); JSR-177Mobile 3D Graphics; JSR-184J2ME Web Services APIs, (WSA); JSR 172Bluetooth API (JSR-82, Motorola, Java Partner Site)J2ME Content Handler API, (CHAPI); JSR 211 http://java.sun.com/j2me/index.jsp INGENIERÍA DE TELECOMUNICACIÓN DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME • Ejemplo: SonyEricsson K700i – – – – – Presentado en marzo 2004 99 x 46.5 x 19.5 mm, 93 gr. 176x220 píxeles, 65536 colores CLDC 1.1 + MIDP 2.0 Memoria • Java Heap: 512KB~1.5MB • Memoria almacenamiento: 41MB internos – Soporte multimedia • Reproducción MP3, AAC, MIDI, AMR, WAV • Captura de vídeo/imágenes fijas • Radio FM – Otras Java APIs – – – – INGENIERÍA DE TELECOMUNICACIÓN JSR 120: Wireless Messaging API (WMA) JSR 135: Mobile Media API (MMAPI) JSR 184: Mobile 3D Graphics JSR 185: JTWI DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA DESARROLLO DE APLICACIONES APLICACIONES PARA TELEFONÍA MÓVIL 5.4. JAVA 2 MICRO EDITION (J2ME) NOCIONES BÁSICAS DE J2ME • Ejemplo: SonyEricsson K750i – – – – – Presentado en marzo 2005 100 x 46 x 20.5 mm, 99 gr. 176x220 píxeles, 262144 colores CLDC 1.1 + MIDP 2.0 Memoria • Memoria almacenamiento: 32MB internos + MemoryStickDuo Pro (¡hasta 4GB!) – Soporte multimedia • Cámara de 2Mpíxeles con autoenfoque y modo macro • Radio FM con RDS – Otras Java APIs – – – – – – INGENIERÍA DE TELECOMUNICACIÓN JSR 75: PIM API (acceso al sist. de ficheros) JSR 82: Java APIs for Bluetooth JSR 120: Wireless Messaging API (WMA) JSR 135: Mobile Media API (MMAPI) JSR 184: Mobile 3D Graphics JSR 185: JTWI DPTO. TELECOMUNICACIONES -- ÁREA DE INGENIERÍA TELEMÁTICA