30
CHM-2008 Seminario de Telemática II 1 Capítulo 5 Introducción al Desarrollo de Aplicaciones Móviles usando J2ME Universidad Técnica Federico Santa María Departamento de Electrónica Telemática TEL-352 Seminario de Telemática II

Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 1

Capítulo 5Introducción al Desarrollo de

Aplicaciones Móviles usando J2ME

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Telemática

TEL-352Seminario de Telemática II

Page 2: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 2

• Introducir los principales conceptos de la plataforma de desarrollo J2ME.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Objetivos

Page 3: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 3

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Introducción a J2ME

Page 4: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 4

• Java 2 Plataform, Micro Edition (J2ME) es la versión liviana de java para dispositivos pequeños.

• Ventajas:– El desarrollo en general es independiente de la

plataforma móvil, o con pocos cambios.– Características de seguridad que provienen de java.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Introducción a J2ME

Page 5: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 5

• J2ME es java para dispositivos pequeños.• Está dividido en:

– Configurations– Profiles– Optional APIs.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Principales Aspectos

Page 6: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 6

• Define un tipo específico de dispositivo, con restricciones de memoria y poder de procesamiento.

• Esto especifica un tipo de máquina virtual que debe soportar el dispositivo.

• También define un subconjunto de clases J2SE, y un conjunto de APIs opcionales.

• Incluye: CLDC 1.0, 1.1

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Configuration

Page 7: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 7

• Define aspectos más específicos de la configuración.• Está basado en la configuración y provee APIs

adicionales tales como interfaz de usuario, almacenamiento persistente, etc.

• Incluye: MIDP 1.0, 2.0, 2.1

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Profiles

Page 8: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 8

• Definen ciertas funcionalidades adicionales que pueden ser incluidas en la configuración o profile.

• Stack: configuration, profile y optional apis.– Ejemplo: CLDC 1.0 + MIDP 2.0 + MMAPI

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Optional APIs

Page 9: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 9

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Configuraciones y Profiles Comunes

Page 10: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 10

JSR Nombre30 Connected, Limited Device Configuration (CLDC) 1.0139 Connected, Limited Device Configuration (CLDC) 1.136 Connected Device Configuration 1.0.1218 Connected Device Configuration 1.1

* Para ver detalles de JSR: http://jcp.org/jsr/detail/<JSR>.jsp

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Configurations

Page 11: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 11

JSR Nombre37 Mobile Information Device Profile 1.0118 Mobile Information Device Profile 2.075 PDA Profile 1.046 Foundation Profile 1.0129 Personal Basis Profile 1.062 Personal Profile 1.0219 Foundation Profile 1.1217 Personal Basis Profile 1.1

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Profiles

Page 12: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 12

JSR Nombre75 PDA Optional Packages for J2ME82 Java APIs for Bluetooth135 Mobile Media API 1.1184 Mobile 3D Graphics179 Location API for J2ME120 Wireless Messaging API 1.0205 Wireless Messaging API 2.0172 J2ME Web Services APIs66 RMI Optional Package

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Optional APIs

Page 13: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 13

• Existen dos tipo de configuraciones:– CDC: Connected Device Configuration.– CLDC: Connected, Limited Device Configuration.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Configurations

Page 14: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 14

• 512 KB de memoria ROM mínimo.• 256 KB de memória RAM mínimo.• Algún tipo de conexión de red.• Diseñado para:

– sep-top boxes.– Sistema de navegación de autos.– PDA de alta gama.– Versiones CDC 1.0.1 y 1.1

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Connected Device Configuration

Page 15: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 15

• Está pensada para dispositivos más pequeños que CDC.• Describe limitaciones:

– Resolución de display– Memoria– Poder de CPU– Tamaño del display– Entrada– Batería– Conexión a red

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Connected, Limited DeviceConfiguration

Page 16: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 16

• Mobile Information Device Profile (MIDP).• De acuerdo a la especificación MIDP 2.0 (JSR-118) un

dispositivo tiene las siguientes características:– Mínimo de 256 KB de ROM para la implementación

MIDP.– Mínimo de 128 KB de RAM para el java runtime

heap.– Mínimo de 8 KB de memoria no volátil para

almacenamiento persistente.– Mínimo de 96x54 pixeles.– Algún dispositivo de entrada.– Dos conexiones de red, posiblemente intermitentes.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Profiles

Page 17: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 17

• Dada la cantidad de configuraciones, profiles y optionalAPIs, ¿cuál sería configuración típica?.

• Sun respondió definiendo JSR-185: Java Technology for de Wireless Industry (JTWI).

– MIDP 2.0– CLDC 1.0 o 1.1– WMA (Wireless Message API – JSR 120).– MMAPI (Mobile Media API) para dispositivos con

audio y video.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Estandarización de la Plataforma

Page 18: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 18

• Las aplicaciones se componen de paquetes CLDC y MIDP.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Anatomía de Aplicaciones J2ME

Page 19: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 19

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Anatomía de Aplicaciones J2ME

Page 20: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 20

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Componentes del Software MIDP

Page 21: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 21

• Portabilidad:– Una aplicación escrita usando MIDP puede ser

directamente portable en cualquier dispositivo MIDP.– La característica multi-plataforma es prácticamente

transparente.• Seguridad:

– Seguro para ejecutar aplicaciones descargadas.– La aplicación no puede escapar del confinamiento

JVM.– Permite aplicaciones firmadas.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Ventajes de MIDP

Page 22: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 22

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Construcción de MIDlets

Page 23: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 23

• J2ME Wireless Toolkit de Sun: http://java.sun.com/products/sjwtoolkit/

– Contiene las herramientas básicas para construir y empaquetar MIDlets.

• Ofuscador:http://wireless.java.sun.com/midp/ttips/proguard/

– Reduce el tamaño del MIDlet.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Herramientas Básicas

Page 24: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 24

• Borland JBuilder MobileSet: http://www.borland.com/jbuilder/mobileset/ • IBM WebSphere Studio Device Developer: http://www-

3.ibm.com/software/pervasive/products/wsdd/• Metrowerks CodeWarrior Wireless Studio:

http://www.metrowerks.com/MW/Develop/Wireless/Wireless_Studio/default.htm

• Research In Motion BlackBerry Java Development Environment: http://www.blackberry.net/developers/na/java/start/download.shtml

• Sun ONE Studio, Mobile Edition: http://wwws.sun.com/software/sundev/jde/features/me-features.html

• Zucotto Wireless WHITEboard SDK: http://www.zucotto.com/products/wb/whiteboard.html

• Netbeans: http://www.netbeans.org/• Eclipse: http://www.eclipse.org/

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

IDEs Disponibles

Page 25: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 25

• Ant:– Es una herramienta para automatizar la compilación.– Es similar a “make”.– Es open source, parte del proyecto Apache Jakarta:

http://ant.apache.org

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Otras Herramientas

Page 26: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 26

• Construcción con Wireless Toolkit• Construcción con Netbeans

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Ejemplo

Page 27: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 27

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

MIDlets

Page 28: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 28

• Las aplicaciones son una instancia de javax.microedition.midlet.MIDlet.

• Tienen un ciclo de vida específico respecto de métodos y comportamientos de la clase MIDlet.

• Una parte del software del dispositivo es el ApplicationManager, que controla la instalación, ejecución y ciclo de vida del MIDlet.

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

MIDlets

Page 29: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 29

• Un MIDlet pasa a través de los siguientes estados:– Cuando se ejecuta el MIDlet, se crea una instancia de éste. Se

ejecuta el constructor y el MIDlet pasa a estado Pausado.– A continuación, el MIDlet entra en estado Activo luego que el

application manager llama a startApp().– Cuando el MIDlet está en estado Activo, el aplicación manager

puede suspender la ejecución llamando a pauseApp(). Esto pone al MIDlet en Pausado. Un MIDlet puede ponerse en Pausado por si mismo si llama al notifyPaused().

– Cuando el MIDlet está en estado Pausado, el applicactionmanager puede llamar a startApp() para volver el MIDlet a estado activo.

– El application manager puede terminar la ejecución del MIDletllamando a destroyApp(). Un MIDlet se puede terminar asímismo llamando a notifyDestroyed().

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Ciclo de Vida del MIDlet

Page 30: Introducción al Desarrollo de Aplicaciones Móviles usando J2MEiwg101/examples/j2me-1.pdf · 2008-06-18 · javax.microedition.midlet.MIDlet. • Tienen un ciclo de vida específico

CHM-2008 Seminario de Telemática II 30

Universidad Técnica Federico Santa MaríaDepartamento de Electrónica

Capítulo 5

Ciclo de Vida del MIDlet