410 likes | 567 Views
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN. APLICACIONES MOVILES CON J2ME. Ing. Ronald Criollo. J2ME SISTEMA OPERATIVO MAQUINA VIRTUAL CONFIGURACIONES PERFILES MIDLET. AGENDA.
E N D
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME Ing. Ronald Criollo
J2ME • SISTEMA OPERATIVO • MAQUINA VIRTUAL • CONFIGURACIONES • PERFILES • MIDLET AGENDA
Es una versión reducida de J2SE creada para poder desarrollar en dispositivos limitados como son los teléfonos móviles. J2ME
Las diferentes tecnologías de Java comparten un conjunto amplio de APIs básicas del lenguaje, agrupadas principalmente en los paquetes java.lang y java.io. • J2ME contiene una mínima parte de las APIs de Java, siendo un total de 37 clases de la plataforma J2SE provenientes de los paquetes java.lang, java.io, java.util. CARACTERISTICAS J2ME
Tipos de datos: J2ME no soporta los tipos float y double (son muy costosos y no disponen de una FPU Unidad de Coma Flotante ). • Preverificación: J2SE verifica el código en tiempo de ejecución mientras que en J2ME una parte se verifica antes (fuera del dispositivo) reduciendo así la carga de la máquina (Durante la compilación se comprueban que excepciones pueden producirse en lugar de comprobarlas en tiempo de ejecución). • Descriptor y manifiesto: Cada aplicación incluye archivos adicionales con información referente a las aplicaciones. • No hay recolector de basura: Hay que eliminar de forma explícita los elementos que no vayan a usarse más. • La máquina virtual: La KVM es una versión reducida de la JVM diseñada para dispositivos limitados. • No hay “main”: El equivalente sería la función startApp(). DIFERENCIAS ENTRE J2ME Y J2SE
Un entorno de ejecución de J2ME se compone de: • Perfiles. • Configuraciones. • Máquina virtual. • Sistema Operativo ENTORNO DE EJECUCIÓN DE J2ME
Symbian OS. • Blackberry OS. • Windows Mobile. • Android. • Iphone OS SISTEMA OPERATIVO
J2ME a diferencia de J2SE utiliza una máquina virtual distinta de la clásica JVM denominada KVM (Kilobyte Virtual Machine). • Esta KVM tiene unas restricciones que hacen que no posea todas las capacidades incluidas en la JVM. J2ME es un subconjunto de J2SE (excepto por el paquete javax.microedition). Máquina Virtual KVM
Las configuraciones son un conjunto de clases básicas orientadas a conformar el corazón de las implementaciones para dispositivos de características específicas. • Existen 2 configuraciones definidas en J2ME: • Connected Limited Device Configuration (CLDC) enfocada a dispositivos con restricciones de procesamiento y memoria. La VM (Virtual Machine) de la configuración CLDC se denomina KVM. CONFIGURACIONES J2ME
Connected Device Configuration (CDC) enfocada a dispositivos con más recursos. La VM (Virtual Machine) de la CDC se denomina CVM (Compact Virtual Machine). CONFIGURACIONES J2ME
Los perfiles determinan para que tipos de dispositivos estaremos programando como por ejemplo (electrodomésticos, teléfonos móviles, etc.) y el tipo de aplicaciones que se ejecutarán en ellos. • Las librerías de la interfaz gráfica son un componente muy importante en la definición de un perfil. Aquí nos podemos encontrar grandes diferencias entre interfaces, desde el menú textual de los teléfonos móviles hasta los táctiles de los PDAs. PERFILES J2ME
Para la configuración CDC tenemos los siguientes perfiles: • Foundation Profile. • Personal Profile. • RMI Profile. • Para la configuración CLDC tenemos los siguientes: • PDA Profile. • Mobile Information Device Profile (MIDP). PERFILES J2ME
Es una aplicación MIDP diseñada para dispositivos móviles. • Como se ejecuta?? • No tiene Main • Ni las configuraciones ni los perfiles poseen Main • Se encarga el AMS (Application Management System) de ejecutarlo. MIDLET
¿Que es el AMS? • Application Management System. • Programa pre-instalado dependiente del dispositivo y de la implementación del JME del fabricante. • Funcionalidad • Gestiona la descarga de los MIDLET • Gestiona la ejecución de los MIDLET • Controla el acceso a los recursos del dispositivo MIDLET: AMS
El AMS llama a los siguientes métodos para controlar la vida de un Midlet • starApp • pauseApp • destroyApp MIDLET: CICLO DE VIDA
Las aplicaciones MIDP deben implementar los métodos antes mencionados: • startApp (): Este método es utilizado para la ejecución del MIDlet. Su objetivo es ejecutar la aplicación y solicitar recursos. • pauseApp (): Este método es invocado por el sistema para solicitarle al MIDlet que haga una pausa. Libera los recursos adquiridos por el método starApp (). MIDLET
destroyApp (boolean unconditional): Este método es llamado por el sistema antes de que sea destruido el MIDlet. Además libera todos los recursos adquiridos. • Los MIDlets son empaquetados en carpetas .JAR junto a imágenes, logos, para formar una MIDlet suite. MIDLET
Cada archivo .JAR lleva asociado un archivo .JAD (Java Application Descriptor, Descriptor de Aplicación Java) que es utilizado para gestionar la instalación. • Los MIDlets tienen atributos obligatorios y opcionales JAR
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class hola extends MIDlet { private Display pantalla; private Form formulario = null; public hola() { pantalla = Display.getDisplay(this); formulario = new Form("Hola Mundo"); } J2ME
public void startApp(){ pantalla.setCurrent(formulario); } public void pauseApp(){ } public void destroyApp(boolean unconditional){ pantalla = null; formulario = null; notifyDestroyed(); } } J2ME
La clase Display representa el manejador de la pantalla y los dispositivos de entrada. • Todo MIDlet debe poseer por lo menos un objeto Display. • En este objeto Display podemos incluir tantos objetos Displayable como queramos. J2ME
La clase Display puede obtener información sobre las características de la pantalla del dispositivo donde se ejecute el MIDlet, además de ser capaz de mostrar los objetos que componen nuestras interfaces. • Todo MIDlet debe poseer al menos una instancia del objeto Display. Para obtenerla se utiliza: • Display pantalla = Display.getDisplay(this) J2ME
Dentro del método startApp tendremos que hacer referencia a la pantalla que queramos que esté activa haciendo uso del método: setCurrent() • Hay que tener en cuenta que cada vez que salimos del método pauseApp, entramos en el método startApp, por lo que la construcción de las pantallas y demás elementos que formarán parte de nuestro MIDlet la tendremos que hacer en el método constructor. J2ME
Las clases Específicas de JME son las siguientes Midlet: Jerarquía de clases
JME esta compuesto por varias APIs o JSRs (Java Specification Request) • API Alto Nivel • API Bajo Nivel • RMS • LWUIT • Bluetooth • MMAPI • … Midlet: API y JSR
Introducción • Elementos Alto Nivel • List • Alert • TextBox • Form JME: Introducción a la Interfaz de Alto Nivel
GUI Alto Nivel: List • Mediante la clase List podemos crear listas de elementos seleccionables. • Tipos: • EXCLUSIVE - Sólo se puede seleccionar un elemento • IMPLICIT - Se selecciona el elemento que tiene el foco • MULTIPLE - Permite la selección múltiple
GUI Alto Nivel: Alert • Permiten mostrar una pantalla durante un tiempo o hasta que se produzca un comando de tipo OK. Se utiliza para mostrar errores u otro tipo de mensajes al usuario. • Tipos • ALARM • CONFIRMATION • ERROR • INFO • WARNING
GUI Alto Nivel: TextBox • La clase TextBox permite introducir y editar texto a pantalla completa. Es como un pequeño editor de textos. • Las limitaciones pueden ser alguna de los siguientes: • ANY - Sin limitación • EMAILADDR - Sólo una dirección de email • NUMERIC - Sólo se permiten números • PASSWORD - Los caracteres no serán visibles • PHONENUMBER - Sólo números de teléfono • URL - Sólo direcciones URL
GUI Alto Nivel: Form • Un Form es un elemento de tipo contenedor, es decir, es capaz de contener una serie de elementos visuales con los que podemos construir interfaces más elaboradas.
Javax.microedition.Midlet • Define la funcionalidad de las aplicaciones y el entorno en el que se ejecutan • Javax.microedition.lcdui • Contiene clases asociadas con la interfaz grafica y el manejo de eventos • Javax.microedition.rms • Contiene clases para realizar almacenamiento persistentes de los datos • Javax.microedition.io • Continene clases que permiten la conectividad a una red LIBRERIAS MIDP
Interfaces: • Choice • CommandListener • ItemCommandListener • ItemStateListener javax.microedition.lcdui
javax.microedition.lcdui • Spacer • StringItem • TextBox • TextField • Ticket • Alert • AlertType • Canvas • ChoiceGroup • Command • CustomItem • DateField • Display • Displayable • Font • Form • Gauge • Graphics • Image • ImageItem • Item • List • Screen