Download Máquina Virtual
Document related concepts
no text concepts found
Transcript
Desarrollo de una aplicación Java en Pocket Pc J2ME J2ME (Java 2 Micro Edition) Versión del lenguaje java orientada al desarrollo de aplicaciones para dispositivos pequeños, con capacidades restringidas tanto graficas como de almacenamiento y procesador Arquitectura de J2ME Componentes de J2ME Una Máquina Virtual (CVM - KVM) de reducido tamaño que ejecuta el "bytecode" de las clases java Conjuntos de Clases básicas, llamadas Configuraciones, orientadas a conformar el corazón de las implementaciones para dispositivos de características específicas Librerías Java, llamadas Perfiles, orientadas a implementar funcionalidades de más alto nivel para familias específicas de dispositivos Maquinas Virtuales KVM (Kilobyte Virtual Machine) Una máquina virtual Java cuyo tamaño se mide en unos cientos de Kbytes La más pequeña de las desarrolladas por Sun No soporta operaciones en coma flotante ni finalización de objetos Maquinas Virtuales CVM (Compact Virtual Machine) Es la MV de referencia para la configuración CDC Dispositivos con mayores capacidades Configuraciones En J2ME una configuración define la plataforma mínima Java para una determinada familia de dispositivos con similares requerimientos de memoria y capacidad de proceso Una Configuración combina la máquina virtual (KVM o CVM) con un conjunto de APIs apropiadas para una amplia categoría de dispositivos Configuraciones CLDC CLDC Connected Limited Device Configuration Orientada a dispositivos con grandes limitaciones 128K ROM (mínimo) y 32K RAM (mínimo) Procesador de 16 o 32 bit con al menos 25 MHz de velocidad Capacidades gráficas muy restringidas No existe soporte para operaciones en punto flotante Configuraciones CLDC Utiliza 37 clases que provienen de los paquetes: java.lang java.io java.util Clases específicas de CLDC (red) javax.microedition.io Configuraciones CDC CDC Connected Device Configuration Orientada a dispositivos de mayores capacidades de procesamiento y memoria Procesador de 32 bits. Disponer de 2 Mb o más de memoria total, incluyendo memoria RAM Configuraciones CDC Librerias incluidas: java.io java.lang java.math java.net java.security java.text java.util javax.microedition.io Perfiles Un conjunto de APIs de Java que añadidas a una configuración conforman una plataforma completa para un tipo específico de dispositivo Permiten el acceso a funcionalidades específicas de los dispositivos Perfiles Foundation Profile (FP) Construido sobre CDC Memoria > 1024K ROM y > 512K RAM Complementa CDC en el nivel mas basico Para dispositivos que carecen de interfaz grafico No incluye interfaz de usuario Perfiles Personal Profile (PP) Complemento de Foundation Profile Orientado a dispositivos con interfaz grafica Añade un interfaz de usuario Permite ejecución de applets Perfiles RMI Profile Permite comunicacion entre dispositivos PDA Profile Desarrollado sobre CLDC Orientado a PDAs tipo Palm Perfiles Mobile Information Device Profile (MIDP) Desarrollado sobre CLDC Diseñado para teléfonos moviles y PDAs Aplicaciones se llaman MIDlets Incluye interfaz de usuario Perfil mas usado en la programacion de dispositivos moviles Otras Plataformas JAVA Javacard EmbeddedJava Entorno de desarrollo para tarjetas inteligentes Orientado a dispositivos como computadores de automóviles, maquinas de ventas. PersonalJava Versión reducida de la JVM 1.1 y de APIs de JDK 1.1 Absorbida por J2ME Otras Maquinas Virtuales Java Insignia's Jeode JVM Mas utilizada Basada en CDC y CLDC Creada para Pocket PC y PDAs Windows CE , PocketPC, Linux Versión Comercial Otras Maquinas Virtuales Java IBM WebSphere Studio Orientada a desarrollar aplicaciones para Teléfonos y PDAs Basada en CLDC y MIDP IBM's J9 VM Orientada a PocketPC y PDAs Basada en MV de J2ME y las configuraciones CDC y CLDC Otras Maquinas Virtuales Java SuperWaba No es realmente una MV Java Propia MV y clases. Sintaxis subconjunto de Java. Gratis. Desarrollo de una aplicación Java en Pocket PC Pasos a seguir para desarrollar con Java en Pocket PC 1. Elegir una implementación de Java disponible. Personal Java Waba u otras implementaciones “alternativas” J2ME CDLC -> “Middlets” Desarrollo de una aplicación Java en Pocket PC 2. Elegir un ambiente de desarrollo (IDE) Personal Java: Cualquier IDE compatible con Java 1.1.8 Waba y alternativos: IDE´s propios J2ME CDLC: Eclipse y Netbeans con “mobility packs”. Desarrollo de una aplicación Java en Pocket PC 3. Compilación y chequeo Compatibilidad Personal Java: JDK 1.1.8 y referencias de la JVM utilizada Waba y alternativos: Herramientas propias J2ME: Ambientes de desarrollo incluyen utilidades para ello Desarrollo de una aplicación Java en Pocket PC 4. Test de una aplicación Probar la aplicación en el lugar de desarrollo: Detectar errores de lenguaje Probar la aplicación en el dispositivo o emulador: Detectar problemas de uso / implementación. Desarrollo de una aplicación Java en Pocket PC Ejemplo práctico Un simple cliente de chat Implementación de Java: Personal Java IDE: Eclipse Compilación: JDK 1.1.8 Checkeo de compatibilidad: Manual de la JVM elegida ( Jeode) Desarrollo de una aplicación Java en Pocket PC Ejemplo práctico ¿Cómo funciona el programa? ¿Cómo compilar? ¿Cómo se ejecuta desde el Pocket PC? Conclusiones Ventajas Personal Java sobre J2ME Transición mucho mas clara y rápida desde J2SE. Real acceso al hardware de los dispositivos, no existe una “sandbox” Desventajas Personal Java esta basado sobre JDK 1.1 A la fecha, SUN no ha desarrollado una JVM para Pocket PC que soporte J2ME Conclusiones Situación Actual Personal Java: End Of Live Announcement Mayoría celulares actuales soportan J2ME (excepción serie P Sonny Ericson) Personal Profile/CDC debería ser el sucesor de Personal Java, pero aun no se encuentra implementado. Conclusiones Otras alternativas a Java Utilizar implementaciones alternativas de Java: Escasa adhesión Desarrollar en C# utilizando .Net Compact Framework Desarrollo nativo de operaciones: Microsoft Embedded C++ Conclusiones Finalmente.. ¿Conviene utilizar Java cuando se quiere desarrollar un programa para Pocket PC? Código más simple. Menor soporte, pocas referencias Microsoft promueve el uso de evC++, .Net Compact Framework.