Download Error - Universidad de Cádiz
Document related concepts
no text concepts found
Transcript
INTRODUCCIÓN A LA PROGRAMACIÓN DE DISPOSITIVOS MÓVILES CONTENIDO: J2ME. Arquitectura Conceptos Básicos APIs Principales MIDLets Herramientas de Desarrollo Ejemplo BIBLIOGRAFÍA: [Gal] Java a Tope: J2ME. Gálvez&Ortega. U. de Málaga [Fro] J2ME: Manual de Usuario y Tutorial. Froufe et al. Ed. Rama. INTRODUCCIÓN A JAVA2 JAVA2 http://java.sun.com • J2EE (Java 2 Enterprise Edition) • J2SE (Java 2 Standard Edition) • J2ME (Java 2 Mobile Edition) J2SE vs J2ME • J2ME no soporta tipos de datos como float ni doubles. • La verificación del código en J2SE se hace en tiempo de ejecución mientras que en J2ME se hace off-line. • J2ME añade dos nuevos tipos de ficheros: .jad y manifiest.mf • Nueva librería gráfica (javax.microedition.lcuid) • Inexistencia del método main(), sustituido por el método startApp(). • Ausencia del recolector de basura de J2SE. La destrucción de los objetos a de hacerse manualmente. ARQUITECTURA J2ME PERFILES CONFIGURACIONES KVM (Kilo Virtual Machine) SISTEMA OPERATIVO ARQUITECTURA J2ME • KVM: Versión de la JVM pensada para dispositivos de 16 ó 32 bits y memoria de 128 Kb. Mantiene sus aspectos más importantes. • CONFIGURACIÓN: Conjunto mínimo de características de la KVM y librerías para un conjunto de dispositivos. • PERFIL: Conjunto de API mínimas sobre una configuración para una familia de dispositivos. • PERFIL MIDP: APIs java para creación de interfaces, conexiones de red, audio seguridad, etc. EJERCICIO ¿Cuáles son las principales caracteríticas de la KVM? Analice las diferencias ente CDC y CLDC. Elabore un documento con ellas llamado cdc_vs_cldc.pdf Establezca los requisitos principales de CLDC. Elabora un documento llamado cld_req.pdf API CLDC: Paquetes Heredados java.lang: subconjunto de sus homólogas en j2se. No incluye Float y Double. Sí incluye Object, Class, Thread, etc. java.io: subcojunto de sus homólogas en j2se. java.util: subonjunto de sus homólogas en j2se, incluyendo vector, stack, etc. API CLDC: Paquetes Específicos java.microedition.io: clase Connector. java.microedition.lcdui: interfaces gráficas. java.microedition.midlet: contiene la clase MIDlet, que implemente las aplicaciones. MÁS CONCEPTOS • MIDlet: Cualquier aplicación realizada en J2ME. Se agrupan en ficheros jar. Un conjunto de MIDlet son llamados MIDLetSuite. En J2ME es una clase de la que hay que heredar forzosamente. • MANIFIESTO (manifiest.mf): Fichero que describe el contenido del jar. Contiene información acerca de su tamaño, recursos que emplea, clase MIDlet que lo forma, así como el perfil para el que está diseñado el MIDlet. • JAVA DESCRIPTOR (jad): Fichero parecido al manifiesto que proporciona la información necesaria al Application Management, el cual se encarga de gestionar las descargas de MIDlet, así como evaluar su compatibilidad. CONCEPTOS PREVIOS • EJEMPLO DE MANIFIESTO MIDlet-1: prueba, icono.png MIDlet-Name: prueba MIDlet-Vendor: Universidad de Cádiz MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 CONCEPTOS PREVIOS • EJEMPLO DE DESCRIPTOR JAVA MIDlet-1: prueba, icono.png ej3MIDlet-Jar-Size: 1691 MIDlet-Jar-URL: http://neptuno.uca.es/prueba.jar MIDlet-Name: prueba MIDlet-Vendor: Universidad de Cádiz MIDlet-Version: 1.0 MIDlet: GENERALIDADES • MIDlet: Cualquier aplicación realizada en J2ME. • Es el equivalente a un Applet de Java usando AWT. • Cualquier MIDlet hereda forzosamente de la clase MIDlet definida en javax.microedition.midlet. • Un MIDlet puede estar en tres estados: ACTIVO, PASIVO y DESTRUIDO. Por defecto un MIDlet está en estado ACTIVO mientras no se pase a otro estado. MIDlet: COMPONENTES Un MIDlet posee 3 métodos entre otros: • startApp() Equivalente a un método main() de una aplicación cualquiera en J2SE. Se liberan todos los recursos que • destroyApp() hayan sido declarados. Recuérdese que no existen destructores ni recolector de basura en J2ME. • pauseApp() Permite intercambiar de un MIDlet que se está ejecutando pasándolo de activo a pasivo. MIDlet: CICLO DE VIDA PREVERIFICACIÓN programa.java compilador intérprete programa.class preverificador programa.class programa.class=programa.class+atributos verificador HERRAMIENTAS J2ME OBLIGATORIAS J2SDK J2METK (Java 2 ME Wireless Toolkit) OPCIONALES JBUILDER + MOBILE SET SUN ONE STUDIO 4 NETBEANS + WTK MIDLET “HOLA MUNDO” import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class HolaMIDlet extends MIDlet implements CommandListener { private Form Formulario; public HolaMIDlet() { Formulario = new Form("MIDlet Hola Mundo"); Formulario.append(new StringItem(null, "Hola mundo cruel...!")); Formulario.addCommand(new Command("Salir", Command.EXIT, 0)); Formulario.setCommandListener(this); } public void startApp() { Display.getDisplay(this).setCurrent(Formulario); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable s) { notifyDestroyed(); } } EJERCICIO Abrir MIDlet con JCreator Ejecutar el WTK Abrir “un nuevo proyecto” Darle un nombre y establecer el nombre de la clase que define al MIDlet Plataforma objetivo: MSA Guardar el código del MIDlet en la subcarpeta … src de la carpeta del proyecto (bajo apps) OTROS MIDLETS Descargue EventEx1.java y repita el proceso Abra el proyecto PhotoAlbum que incorpora el WTK, compile y ejecute Repita lo anterior con el proyecto AudioAlbum