Disertacion j2me

42
J2ME Ángel Pizarro Juan Sánchez Taller De Programación III Patricio Soto 27/11/2008

description

presentacion j2me para taller de programaciion III año 2008

Transcript of Disertacion j2me

Page 1: Disertacion j2me

J2ME

Ángel Pizarro Juan Sánchez

Taller De Programación IIIPatricio Soto27/11/2008

Page 2: Disertacion j2me

Índice

-introducción a J2ME-nociones básica del J2ME-JVM y KVM-Configuración y perfiles -Instalación de wireless toolkit-Practica de ejemplos -Conclusión en J2ME

Page 3: Disertacion j2me

Introducción

Los teléfonos celulares son ya parte de nuestra forma de vida. Cada día son mas los usuarios conectados a estos terminales.

Pero en estos momentos los celulares no son solo para llamar y recibir llamadas sino van mas allá agenda, alarmas, juegos, música, videos etc.

Todo esto lo podemos tener gracias a diferentes tecnologías y lenguajes como son WAP, WML, GPRS, MMS Y JAVA y es aquí en java donde nos vamos a

enfocar mas específicamente en su aplicación (j2me).

Page 4: Disertacion j2me

Introducción a j2me

La plataforma J2ME es una familia de especificaciones que definen varias versiones minimizadas de la plataforma Java 2; estas versiones minimizadas

pueden ser usadas para programar en dispositivos electrónicos; desde teléfonos celulares, en PDAs, hasta en tarjetas inteligentes, etc. Estos dispositivos

presentan en común que no disponen de abundante memoria ni mucha potencia en el procesamiento, ni tampoco necesitan de todo el soporte que brinda el J2SE,

(la plataforma estándar de Java usada en sistemas de escritorio y servidor)

Page 5: Disertacion j2me

J2ME

Cuando Sun decidió lanzar su nuevo estándar java, llamado java2, creo tres diferentes entornos para desarrollo y ejecución de aplicación que fueron. J2SE, J2EE, y J2ME.

J2SE: (java 2 estándar Edition) es , por decirlo de alguna manera , la base de las tecnologías java. Permite el desarrollo de aplets “aplicaciones que se ejecutan en un navegador Web” y aplicaciones independientes.

J2EE: (java 2 Enterprise Edition) esta basado en j2se pero añade una serie de características necesarias en el entorno empresarial. “redes, acceso a datos etc.”

J2ME: (java 2 micro Edition) “nace con la necesidad de entornos mas limitados” , se basa en los conceptos de configuración y perfil. Una configuración describe las características mínimas en cuanto a la configuración hardware y software.

Page 6: Disertacion j2me

Niveles de java2

Page 7: Disertacion j2me

J2ME

AMBITOS EN COMUN

El código fuente en lenguaje Java es compilado a código intermedio interpretado por una Java Virtual Machine (JVM), por lo que el código ya compilado es independiente de la plataforma.

Todas las tecnologías comparten un conjunto más o menos amplio de APIs básicas del lenguaje, agrupadas principalmente en los paquetes java.lang y java.io.

Page 8: Disertacion j2me

APIs

Un claro ejemplo de éste último punto es que J2ME contiene una mínima parte de las APIs de Java.

Esto es debido a que la edición estándar de APIs de Java ocupa 20 Mb, y los dispositivos pequeños disponen de una cantidad de memoria mucho más reducida.

En concreto, J2ME usa 37 clases de la plataforma J2SE provenientes de los paquetes java.lang, java.io, java.util.

kvkf

Page 9: Disertacion j2me

Nociones básicas de J2ME

Cuales son los componentes que forman parte de esta tecnología.

• Por un lado tenemos diferentes maquinas virtuales java con diferentes requisitos.

• Configuración : son un conjunto de clases básicas orientadas a conformar el corazón de los dispositivos.

1-CLDC2-CDC

• Perfiles que son unas bibliotecas java clases especificadas para dispositivos.

Un entorno de ejecución determinado de J2ME se compone entonces de una selección de:

a) Máquina virtual. b) Configuración. c) Perfil. d) Paquetes Opcionales.

Page 10: Disertacion j2me

Maquina virtual

JVM

Una máquina virtual de Java (JVM) es un programa encargado de interpretar código intermedio (bytecode) de los programas Java precompilados a código máquina ejecutable por la plataforma, efectuar las llamadas pertinentes al sistema operativo subyacente y observar las reglas de seguridad y corrección de código definidas para el lenguaje Java.

CVM : Compaq virtual machine para la configuracion CDC.

Características:• Orientados a equipos electrónicos• Sistemas de memoria avanzada• Procesadores de 32 bits

Page 11: Disertacion j2me

Maquina virtual

KVM Se corresponde con la Máquina Virtual más pequeña desarrollada por Sun. Su nombre KVM proviene de Kilobyte (haciendo referencia a la baja ocupación de memoria, entre 40Kb y 80Kb ). Se trata de una implementación de Máquina Virtual reducida y especialmente orientada a dispositivos con bajas capacidades computacionales y de memoria. La KVM está escrita en lenguaje C , aproximadamente unas 24000 líneas de código , y fue diseñada para ser:

• Pequeña, con una carga de memoria entre los 40Kb y los 80 Kb, dependiendo de la plataforma y las opciones de compilación.

• Alta portabilidad. • Modulable. • Lo más completa y rápida posible y sin sacrificar características para las que

fue diseñada.

Sin embargo, esta baja ocupación de memoria hace que posea algunas limitaciones con respecto a la clásica Java Virtual Machine (JVM):

Page 12: Disertacion j2me

Configuración

Ya hemos mencionado algo anteriormente relacionado con las configuraciones.

Para tenerlo bien claro diremos que una configuración es el conjunto de APIsJava que permiten desarrollar aplicaciones para un grupo de dispositivos. Estas APIs describen las características básicas, comunes a todos los dispositivos:

• Características soportadas del lenguaje de programación Java. • Características soportadas por la Máquina Virtual Java. • Bibliotecas básicas de Java y APIs soportadas.

Page 13: Disertacion j2me

Configuración CDC

“configuración de dispositivos conectados ”

La CDC está orientada a dispositivos con cierta capacidad computacional y de memoria. Por ejemplo, decodificadores de televisión digital, televisores con Internet, algunos electrodomésticos y sistemas de navegación en automóviles.

La CDC está enfocada a dispositivos con las siguientes capacidades:

• Procesador de 32 bits. •Disponer de 2 Mb o más de memoria total, incluyendo memoria RAM y ROM. •Poseer la funcionalidad completa de la Máquina Virtual Java2. •Conectividad a algún tipo de red.

Page 14: Disertacion j2me

Librerías incluidas en CDC

Page 15: Disertacion j2me

Configuración CLDC

“configuración de dispositivos limitados de conexión”

El cldc trabaja directamente con dispositivos móviles con limitaciones en cuanto a capacidad grafica, computo y memoria como: Teléfonos, pdas, organizadores etc.

Los dispositivos que usan CLDC deben cumplir los siguientes requisitos:

• Disponer entre 160 Kb y 512 Kb de memoria total disponible. o Procesador de 16 o 32 bits con al menos 25 Mhz de velocidad. • Ofrecer bajo consumo, debido a que éstos dispositivos trabajan con suministro de energía limitado, normalmente baterías. • Tener conexión a algún tipo de red, normalmente sin cable, con conexión intermitente y ancho de banda limitado (unos 9600 bps).

Page 16: Disertacion j2me

Configuración CLDC

La configuración CLDC se ocupa de las siguientes áreas:

• Lenguaje Java y características de la máquina virtual. • Librerías del núcleo de Java (java.lang.* y java.util.*). • Entrada / Salida. • Comunicaciones. • Seguridad. • Internacionalización.

Page 17: Disertacion j2me

Librerías incluidas en CLDC

Page 18: Disertacion j2me

Perfiles

perfil es el que define las APIs que controlan el ciclo de vida de la aplicación, interfaz de usuario, etc. Más concretamente, un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado.

El perfil establece unas APIs que definen las características de un dispositivo, mientras que la configuración hace lo propio con una familia de ellos. Esto hace que a la hora de construir una aplicación se cuente tanto con las APIs del perfil como de la configuración.

Para la configuración CDC tenemos los siguientes perfiles: • Foundation Profile. • Personal Profile. • RMI Profile.

Para la configuracion CLDC tenemos los siguientes perfiles:•Pda profile•MIDP (información de perfiles de dispositivos móviles)

Page 19: Disertacion j2me

Perfiles

RMI P.PROFILE PDA MIDp

Page 20: Disertacion j2me

RMI

RMI Profile: Este perfil requiere una implementación del Foundation Profile se construye encima de él. El perfil RMI soporta un subconjunto de las APIs J2SE v1.3 RMI. Algunas características de estas APIs se han eliminado del perfil RMI debido a las limitaciones de cómputo y memoria de los dispositivos. Las siguientes propiedades se han eliminado del J2SE RMI

•Java.rmi.server.disableHTTP. •Java.rmi.activation.port. •Java.rmi.loader.packagePrefix. •Java.rmi.registry.packagePrefix. •Java.rmi.server.packagePrefix.

Page 21: Disertacion j2me

Personal profile

Personal Profile: El Personal Profile es un subconjunto de la plataforma J2SE v1.3, y proporciona un entorno con un completo soporte gráf ico AWT. El objetivo es el de dotar a la configuración CDC de una interfaz gráfica completa, con capacidades web y soporte de applets Java. Este perfil requiere una implementación del Foundation Profile.

Page 22: Disertacion j2me

PDA

• PDA Profile: El PDA Profile está construido sobre CLDC. Pretende abarcar PDAs de gama baja, tipo Palm, con una pantalla y algún tipo de puntero (ratón lápiz) y una resolución de al menos 20000 pixels (al menos 200x100 píxel) con un factor 2:1.

No es posible dar mucha más información porque en e ste momento este perfil se encuentra en fase de definición.

Page 23: Disertacion j2me

MIDP

Este perfil está construido sobre la configuración CLDC. Al igual que CLDC fue la primera configuración definida para J2ME, MIDP fue el primer perfil definido para esta plataforma. Este perfil está orientado para dispositivos con las siguientes características:

• Reducida capacidad computacional y de memoria. • Conectividad limitada (en torno a 9600 bps). • Capacidad gráfica muy reducida (mínimo un display de 96x54 pixeles monocromo). • Entrada de datos alfanumérica reducida. • 128 Kb de memoria no volátil para componentes MIDP. • 8 Kb de memoria no volátil para datos persistentes de aplicaciones. • 32 Kb de memoria volátil en tiempo de ejecución para la pila Java.

img

Page 24: Disertacion j2me
Page 25: Disertacion j2me

Instalación del SDK

A continuación vamos a instalar un SDK llamado

wireless toolkit

Y daremos ejemplo de j2me

Page 26: Disertacion j2me

Conclusión

En conclusión, J2ME es la versión de Java orientada a los dispositivos móviles. Debido a que los dispositivos móviles tienen una potencia de cálculo baja e interfaces de usuario pobres, es necesaria una versión específica de Java destinada a estos dispositivos, ya que el resto de

versiones de Java, J2SE o J2EE, no encajan dentro de este esquema. J2ME es por tanto, una versión “reducida” de J2SE.

Page 27: Disertacion j2me

Packages necesarios

•javax.microedition.midlet: se ocupa del ciclo de vida de la aplicación •javax.microedition.lcdui: interfaz de usuario •javax.microedition.rms: sistema de mantenimiento de registros (Record Management System) usado para guardar información •javax.microedition.io: clases para usar redes

Page 28: Disertacion j2me

Anatomía del Midlet

Page 29: Disertacion j2me

Anatomía del Midlet

startApp(): Cuando parte la aplicación o cuando vuelve de pausa

pauseApp():Sucede cuando llaman al celular o un SMS, etc.

destroyApp():Cuando se sale de la aplicación.

Page 30: Disertacion j2me

Anatomía del Midlet

Page 31: Disertacion j2me

Codigo fuente

import javax.microedition.midlet.*;import javax.microedition.lcdui.*;

public class HelloMIDlet extends MIDlet extends MIDlet extends MIDlet extends MIDlet {

public void startApp() ublic void startApp() ublic void startApp() ublic void startApp() {

}

public void pauseApp() ublic void pauseApp() ublic void pauseApp() ublic void pauseApp() {

}

public void destroyApp(boolean unconditional) ublic void destroyApp(boolean unconditional) ublic void destroyApp(boolean unconditional) ublic void destroyApp(boolean unconditional) {

}

}

Page 32: Disertacion j2me

Interfaz de usuario

Page 33: Disertacion j2me

Programando con J2ME

•javax.microedition.lcdui.Display– Display representa a la pantalla LCD del celular

•Display.getDisplay(MIDlet m)– Obtiene el Display asociado al MIDlet

•Display.setCurrent(Displayable d)– Setea el objeto que se quiere desplegar en la pantalla LCD

Page 34: Disertacion j2me

Interfaz de alto nivel

•List: Una lista de opciones. Es posible añadir, insertar en medio o borrar opciones. Las opciones pueden poseer texto y/o una imagen.Hay 3 tipos de listas:

– EXCLUSIVE: solo se puede tener una opción seleccionada, ni más ni menos. – IMPLICIT: no se puede modificar la opción seleccionada cuando se construye la lista – MULTIPLE : cualquier opción se puede seleccionar

•TextBox: Un TextBox que ocupa toda la pantalla, que puede incluir también un titulo. El textbox puede tener las siguientes restricciones:

– ANY: se puede introducir cualquier texto – EMAILADDR : dirección de email – NUMERIC: solo números enteros, positivos o negativos – PHONENUMBER: incluye algún carácter alfanumérico – URL: URLs

•Algunos métodos a tener en cuenta son, delete(), insert(), setChars(), setString().

Page 35: Disertacion j2me

Interfaz de alto nivel

•Form: Form es un display que se usa como base de una serie de elementos. Los elementos anteriores ocupan toda la pantalla del teléfono, sin embargo, usando la clase Form, podemos tener diferentes elementos, estos pueden ser:

– ChoiceGroup , como check boxes o radio buttons – DateField , muestra fechas y tiempos, según que teléfonos

incluso puede mostrar un calendario – Gauge , para mostrar progreso o entrar datos dentro de un rango

linear de valores – Image , muestra .png en el form – ListBox , una lista de valores – TextField , como el TextBox anterior

Page 36: Disertacion j2me

Interfaz de alto nivel

•Alerts: Muestra información al usuario en tipo de alerta– ALERT – CONFIRMATION – ERROR – INFO – WARNING

•Es necesario especificar que display se va a mostrar después de la alerta Display.getDisplay(this).setCurrent(alerta, display_de _despues);•Timers: Permite realizar la ejecución de código en intervalos de tiempo.

– Timer.schedule( TimerTask, Date ) – Timer.schedule( TimerTask, Date, period ) – Timer.schedule( TimerTask, long delay, long period )

Page 37: Disertacion j2me

Interfaz de alto nivel

•Ejemplos•AlertTest (alert & image): Implementa una alerta y una imagen •DisplayTest (Display): Dos displays en la misma aplicación •FormTest (form, image, text, choice, date, gauge) •ListTest (list, checkbox): ejemplo de listas •TimerMIDlet: ejemplo de timer •MIDletProps: muestra las propiedades del MIDlet •UIEjemplo ejemplo de UI de una aplicación

Page 38: Disertacion j2me

Interfaz de bajo nivel

Esta interfaz sirve para crear aplicaciones con cierta movilidad por ejemplo para la creacion de juegos o aplicaciones con componentes que pueden ser creados por nosotros mismos posee un metodo llamado Paint() que es llamado cuando canvas tiene que ser dibujado

Page 39: Disertacion j2me

Título

•En el método paint, la clase Graphics proporciona los siguientes métodos para dibujar:– drawImage (Image image, int x, int y, int align) – drawString (String text, int x, int y, int align) – drawRect (int x, int y, int w, int h) – drawRoundRect (int x, int y, int w, int h, int r) – drawLine (int x0, int y0, int x1, int y1) – drawArc (int x, int y, int w, int h, int startAng, int arcArc) – fillRect (int x, int y, int w, int h) – fillRoundRect (int x, int y, int w, int h, int startAng, int endAng) – fillArc (int x, int y, int w, int h, int startAng, int endAng)

Page 40: Disertacion j2me

Demostración de códigos

Page 41: Disertacion j2me

bibliografía

• Manual java a tope j2me• www.wikipedia.com• www.javasun.com

Page 42: Disertacion j2me

GRACIAS