Download 5.1 Diferencias con Java ME: Arquitectura

Document related concepts
no text concepts found
Transcript
5.1 Diferencias con Java ME: Arquitectura - Software de Comunicaciones
Software de
Comunicaciones
Programación en
dispositivos móviles
portables
Search this site
Programación en dispositivos móviles portables > Android > 5. Android vs Java ME >
5.1 Diferencias con Java ME: Arquitectura
Java ME
Android
1. Introducción
La comparativa que se expone a continuación está centrada en la arquitectura específica MIDP/CLDC/KVM (CLDC 1.1
2. Conceptos Generales
y MIDP 2.0), respecto al SO Android 1.6.
3. Librerías Básicas
4. Desarrollo de
aplicaciones
5. Android vs Java ME
■ Librerías y Descriptores
6. Referencias
→ APIS que controlan el ciclo de vida de la aplicación.
Móviles Android en el
Mercado
ANDROID: Principalmente se usan android.app.Activity y android.app.ListActivity.
Palm webOS
1. ¿Qué es Palm Web Os?
2. Generalidades
3. Desarrollo de
aplicaciones
4. J2ME vs Palm webOS
5. Futuro
MIDP/CLDC: Principalmente se usa javax.microedition.midlet.MIDLET .
→ APIS que definen la interfaz de usuario de la aplicación.
--> Alto Nivel
ANDROID: Principalmente se usan android.widget.ArrayAdapter y android.widget.ListAdapter
6. Referencias
iPhoneOS
MIDP/CLDC: Esencialmente son javax.microedition.lcdui.Display y
1. Introducción
javax.microedition.lcdui.Displayable
2. Generalidades
--> Bajo Nivel
3. Desarrollo de
aplicaciones
ANDROID: Principalmente se usan android.graphics.drawable.Drawable y android.view.View
4. Comparativa con
JavaME
MIDP/CLDC: Esencialmente son javax.microedition.lcdui.game.GameCanvas y 4. Referencias
javax.microedition.lcdui.Displayable.Canvas
Files
Join Our Discussion
→ APIS media: Bluetooth, Multimedia y sensores.
--> Bluetooth
ANDROID: Android ofrece la siguiente librería para usar esta interfaz, android.bluetooth .
MIDP/CLDC: CLDC tiene un paquete opcional para usar Bluetooth (JSR 82): “Bluetooth API”.
Traductor de Google
--> Multimedia
ANDROID: Ofrece la siguiente librería para reproducción de audio y vídeo, android.media: MediaPlayer .
Join the Discussion
MIDP/CLDC: CLDC ofrece el paquete opcional “MMAPI” y un soporte básico en la API de MIDP 2.0: Manager , Player
y Control en los paquetes javax.microedition.media y javax.microedition.media.control .
--> Sensores y acelerómetro
ANDROID:Android proporciona la clase android.hardware.SensorManager, la cual sirve para manejar el sensor de https://sites.google.com/site/swcuc3m/home/android/android_javame/diff[22/07/2013 03:32:44 p.m.]
5.1 Diferencias con Java ME: Arquitectura - Software de Comunicaciones
orientación, y el acelerómetro.
MIDP/CLDC: CLDC tiene un paquete opcional para gestionar los sensores conectados al móvil (JSR 256): “Mobile
Sensor API”.
→ Descriptores.
ANDROID: AndroidManifest.xml
Los componentes que necesita la aplicación se enumeran en un archivo llamado AndroidManifest.xml, el cual es un
fichero XML donde se declaran los componentes y cuáles son sus capacidades y requerimientos.
MIDP/CLDC: Descriptor JAD
Permite describir las propiedades de la aplicación y los componentes que forman parte de la misma. De esta manera, el
AMS (Application Management System) podrá verificar si es posible instalar la aplicación antes de descargarla. Es un fichero
de texto con extensión .jad.
■ Arquitectura: Ciclo de vida de la aplicación
ANDROID: En Android existen 4 grandes bloques de construcción: Activity, Intent , Service y Content Provider,
de los cuales, el bloque Activity es el componente más habitual de las aplicaciones para Android, es decir, un
componente Activity refleja una determinada actividad llevada a cabo por una aplicación, y que lleva asociada típicamente
una ventana o interfaz de usuario. Los cuatro posibles estados que definen su ciclo de vida son: Activa, pausada, parada
y reiniciada. MIDP/CLDC: La clase encargada del ciclo de vida de una aplicación, es la clase MIDlet , y los métodos que gestionan
el ciclo de vida de una aplicación son tres: activa, pausada y destruida.
■ Máquina Virtuales: KVM y CVM (Java ME) vs. Dalvik (Android)
ANDROID:La JVM que utiliza Android es la máquina virtual DalvikVM. En ella podemos encontrar una gran diferencia
con respecto a la máquina virtual Java (JVM), ya que la máquina virtual de Google no está basada en una pila.
MIDP/CLDC: En el perfil MIDP, la JVM es la máquina virtual KVM, la cual es la máquina virtual más pequeña
desarrollada por Sun, y se usa con la configuración CLDC. Se trata de una implementación reducida y especialmente
orientada a dispositivos con bajas capacidades computacionales y de memoria.
■ Herencia de interfaz ráfica de Java
ANDROID: Android hereda las siguientes librerías de Java:
· java.awt.font .* Para definir propiedades del estilo y tamaño de la letra. (Subconjunto de J2SE)
· java.beans .*: Para definir beans con los métodos get y set.(Subconjunto de J2SE)
· java.io .*: Conexión genérica.
· java.lang .* Clases de la VM. (Subconjunto de J2SE)
· java.math .* Para operaciones matemáticas.
· java.nio .* Para definir buffers.
· java.security .* Clases para definir el modelo de seguridad. (Subconjunto de J2SE)
· java.sql .* API para usar JDBC y gestión de base de datos con SQL.
· java.text .* Para definir diferentes formatos de texto.
· java.util .* Clases para utilidades estándar. (Subconjunto de J2SE)
https://sites.google.com/site/swcuc3m/home/android/android_javame/diff[22/07/2013 03:32:44 p.m.]
5.1 Diferencias con Java ME: Arquitectura - Software de Comunicaciones
· javax.crypto .* Clases para realizar operaciones criptográficas.
· javax.microedition.khronos. * Clases orientadas a diseño de interfaces 3D.
· javax.net .* Clases para aplicaciones de Red. (Subconjunto de J2SE)
· javax.xml .* Para usar lenguaje XML en el Descriptor de la aplicación.
MIDP/CLDC: El perfil MIDP, hereda las siguientes librerías de Java:
· java.io. * Clases y paquetes estándar de E/S. (Subconjunto de J2SE)
· java.lang .* Clases e interfaces de la VM. (Subconjunto de J2SE)
· java.util .* Clases, interfaces y utilidades estándar. (Subconjunto de J2SE)
Además, incorpora las siguientes tecnologías heredadas de Java:
- SWING: El Perfil “Personal Profile” sobre CDC ofrece un perfil gráfico basado en AWT.
- JDBC: Paquete opcional en CDC.
- RMI: Paquete opcional en CDC.
■ Mensajería instantánea: SIP(Java ME) vs. XMPP(Android)
ANDROID: Android ofrece una API para desarrollar protocolos de mensajería instantánea, concretamente XMPP (Extensible Messaging and Presence Protocol), protocolo de intercambio de mensajes basado en XML.
MIDP/CLDC: Java ME con el perfil MIDP ofrece un paquete opcional para utilizar protocolos de mensajería instantánea,
concretamente SIP (Session Initition Protocol).
■ Almacenamiento de Datos: RMS(Java ME) vs. SQLite(Android)
ANDROID: Android ofrece la superclase android.content.ContentProvider para el manejo y almacenamiento de
datos, conocido también como “proveedor de contenido”. Este bloque de construcción, permite compartir datos entre
procesos y aplicaciones.
Además, Android soporta BBDD SQLite y proporciona funciones de control que permiten almacenar datos complejos en
forma de objeto.
MIDP/CLDC: MIDP ofrece la librería javax.microedition.rms para memoria persistente, lo cual consiste en una
base de datos binaria sencilla (sin usar SQL) orientada a almacenes de registros ( RecordStore ).
■ Navegador (Java ME) vs. WebKit (Android)
ANDROID: El SO Android dispone de un navegador integrado basado en el motor del proyecto abierto WebKit.
MIDP/CLDC: CLDC ofrece la posibilidad de desarrollar clientes web con “Web Services APIs”.
■ Portabilidad de Aplicaciones
ANDROID:
En este ámbito, Java ME tiene una enorme ventaja sobre Android, ya que tiene una VM “totalmente Java”,
mientras que la VMde Google (Dalvik), a pesar de sus grandes ventajas ya comentadas, hace que la migración de una
aplicación open-source de Linux x86 sea realmente dura. Todos los interfaces de usuario y la lógica han de ser reescritos
https://sites.google.com/site/swcuc3m/home/android/android_javame/diff[22/07/2013 03:32:44 p.m.]
5.1 Diferencias con Java ME: Arquitectura - Software de Comunicaciones
desde cero.
MIDP/CLDC: La existencia de diferentes perfiles en Java ME consiguen garantizar la portabilidad de las aplicaciones,
que utilizan un API no tan complejo y extenso como en el caso de Android, pero suficiente para que el código sea portable
entre diferentes dispositivos móviles.
¿Puede ejecutarse un Proyecto Java ME en un móvil con ANDROID?
Claro que si, usando MicroEmu (Emulador de J2ME hecho en Java) o bien con el J2ME MIDP Runner.
Si se tiene interés en este tema, se recomienda meterse en el foro del grupo de desarrolladores de Google,
en el siguiente enlace:
http://groups.google.es/group/desarrolladores-android/web
Comentarios
No tienes permiso para agregar comentarios.
Iniciar sesión | Informar de uso inadecuado | Imprimir página | Eliminar acceso | Con la tecnología de Google Sites
https://sites.google.com/site/swcuc3m/home/android/android_javame/diff[22/07/2013 03:32:44 p.m.]