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.