Presentación para CC61P
J2ME J2ME
CDC, CLDC y MIDP CDC, CLDC y MIDP
Java para dispositivos con Java para dispositivos con
capacidad limitada
capacidad limitada
Antes de empezar...
Objetivos:
Objetivos:
Indicar las tendencias Indicar las tendencias
tecnológica en cuanto a tecnológica en cuanto a
portabilidad.
portabilidad.
Introducir las tecnologías Introducir las tecnologías
CDC y CLDC de Sun.
CDC y CLDC de Sun.
Dar una breve Dar una breve
presentación del código presentación del código
de un MIDlet.
de un MIDlet.
Mostrar una aplicación.
Mostrar una aplicación.
Introducción
Aún no es posible Aún no es posible tener dispositivos tener dispositivos reducidos de gran reducidos de gran
potencia a precio potencia a precio
asequible.
asequible.
Hoy en día en nuestro Hoy en día en nuestro
teléfonos móviles teléfonos móviles
podemos tener juegos podemos tener juegos
y aplicaciones varias.
y aplicaciones varias.
Es ahí donde entra Sun Es ahí donde entra Sun
y sus tecnologías y sus tecnologías
Un poco de historia
La tecnología muchas La tecnología muchas
veces nos ayudó a veces nos ayudó a
movilizarnos y a movilizarnos y a
comunicarnos.
comunicarnos.
La computación La computación
personal inicialmente personal inicialmente
sirvió más para sirvió más para
cálculos y trabajos de cálculos y trabajos de oficina, y menos para oficina, y menos para
comunicarse y comunicarse y
movilizarse.
movilizarse.
Un poco de historia
El primer paso hacia la El primer paso hacia la movilidad de cómputo movilidad de cómputo fueron las calculadoras fueron las calculadoras
manuales.
manuales.
La demanda sigue La demanda sigue
activa.
activa.
Aparecen las agendas Aparecen las agendas electrónicas: apoyo al electrónicas: apoyo al viajero y al trabajador.
viajero y al trabajador.
Éstas traen agenda, Éstas traen agenda,
Un poco de historia
Ingenieros y Ingenieros y
financistas tuvieron financistas tuvieron
acceso a cálculo con acceso a cálculo con
movilidad.
movilidad.
Demanda aún activa.
Demanda aún activa.
Estos dispositivos son Estos dispositivos son muy programables (en muy programables (en
general con Basic).
general con Basic).
Un poco de historia
Si es por movilidad y Si es por movilidad y capacidad de proceso, capacidad de proceso,
están los laptops.
están los laptops.
No son muy reducidos No son muy reducidos (difícilmente caben en (difícilmente caben en
el bolsillo).
el bolsillo).
Son muy caros. Son Son muy caros. Son
un lujo.
un lujo.
Un poco de historia
Si es por entretención, Si es por entretención,
está el caso de la está el caso de la
música, con el música, con el
personal stereo, los personal stereo, los
walkman y sus walkman y sus
derivados.
derivados.
Y los videojuegos son Y los videojuegos son estrella. En especial la estrella. En especial la
línea Game Boy de línea Game Boy de
Nintendo.
Nintendo.
Hoy compiten Hoy compiten
Nintendo DS y Sony Nintendo DS y Sony PSP.PSP.
Un poco de historia
Pero la estrella del Pero la estrella del
momento son los momento son los teléfonos móviles.
teléfonos móviles.
Walkie-Talkie + Walkie-Talkie +
telefonía.
telefonía.
Innovación entre Innovación entre Nokia y Ericsson.
Nokia y Ericsson.
Masificación rápida.
Masificación rápida.
Integran mucho más Integran mucho más
que telefonía.
que telefonía.
J2ME: Java MicroEdition
Sun Microsystems Sun Microsystems
explota el mercado de explota el mercado de
la movilidad.
la movilidad.
J2ME orientado a J2ME orientado a
dispositivos dispositivos
específicos, con específicos, con
limitaciones.
limitaciones.
J2ME es para telefonía J2ME es para telefonía
(de todo tipo), (de todo tipo),
televisión, hot spots, televisión, hot spots, tarjetas inteligentes, tarjetas inteligentes,
electrodomésticos, etc.
electrodomésticos, etc.
J2ME: Java MicroEdition
Principales tecnologías:
Principales tecnologías:
CLDC:
CLDC: Connected Connected Limited Device
Limited Device Configuration.
Configuration.
MIDP:
MIDP: Mobile Mobile
Information Device Information Device
Profile. Parte de Profile. Parte de
CLDC.
CLDC.
CDC:
CDC: Connected Connected
Device Configuration.
Device Configuration.
Tecnologías CLDC
Dispositivos Dispositivos
conectados con conectados con
limitaciones.
limitaciones.
PDAs y celulares PDAs y celulares
principalmente.
principalmente.
Maneja conexión a Maneja conexión a
internet y internet y
presentación.
presentación.
Permite cálculos Permite cálculos
básicos.
básicos.
Tecnologías CLDC
MIDPMIDP es la principal es la principal tecnología dentro de tecnología dentro de
CLDC.
CLDC.
MIDlets son MIDlets son
aplicaciones para aplicaciones para celulares y PDAs.
celulares y PDAs.
Admiten una interfaz Admiten una interfaz
de usuario básica.
de usuario básica.
La presentación varía La presentación varía
de equipo a equipo, de equipo a equipo,
Tecnologías CLDC
MIDP sirve para MIDP sirve para
aplicaciones como aplicaciones como sistemas de venta, sistemas de venta,
agendas, sistemas de agendas, sistemas de
cálculo, etc.
cálculo, etc.
Pero es principalmente Pero es principalmente
usado en videojuegos.
usado en videojuegos.
Los videojuegos Los videojuegos
generan gran retorno.
generan gran retorno.
MIDP 2.0 tiene mucha MIDP 2.0 tiene mucha
especificidad en especificidad en
videojuegos.
videojuegos.
Tecnologías CLDC
Mobile Java 3D:
Mobile Java 3D:
Juegos en 3D para Juegos en 3D para
celulares y PDAs.
celulares y PDAs.
En la imagen se ve En la imagen se ve
Quake Mobile.
Quake Mobile.
Variados juegos 3D.
Variados juegos 3D.
MIDP 2.0 admite MIDP 2.0 admite
reproducción wav, reproducción wav, mp3, mpeg y midi.
mp3, mpeg y midi.
MMAPI tecnología MMAPI tecnología
Tecnologías CLDC
Tecnologías Bluetooth Tecnologías Bluetooth
en CLDC.
en CLDC.
Wireless Messaging Wireless Messaging API.API.
J2ME Web Services.
J2ME Web Services.
Location (GPS).
Location (GPS).
SIP: Session Initiation SIP: Session Initiation Protocol. Sesión de IP.
Protocol. Sesión de IP.
Multijugador, Multijugador,
presencia, presencia,
mensajería...
mensajería...
Tecnologías CDC
CDC es para CDC es para aplicaciones aplicaciones
compartidas en una compartidas en una red.red.
Programación Programación
distribuída.
distribuída.
Programación de hot Programación de hot
spots (máquinas spots (máquinas domésticas, etc.) domésticas, etc.)
PDAs soportados.
PDAs soportados.
Otras tecnologías
JavaCard: tarjetas JavaCard: tarjetas
inteligentes java (ej.
inteligentes java (ej.
pasaportes). Último pasaportes). Último
usuario: Banco do usuario: Banco do
Brasil.
Brasil.
Conexión a J2EE Conexión a J2EE
(Cliente J2EE).
(Cliente J2EE).
JTAPI: Telefonía, JTAPI: Telefonía,
control de llamadas.
control de llamadas.
Java TV API: Para la Java TV API: Para la televisión interactiva.
televisión interactiva.
Aplicaciones
Juegos móviles, mundos Juegos móviles, mundos
virtuales, aplicaciones de virtuales, aplicaciones de
mensajería, software mensajería, software
distribuido, noticiarios, etc.
distribuido, noticiarios, etc.
TV interactiva, telefonía, TV interactiva, telefonía,
electrodomésticos, electrodomésticos,
automotriz, etc.
automotriz, etc.
Puntos de venta móviles, Puntos de venta móviles,
flujos de trabajo flujos de trabajo
distribuidos, control de distribuidos, control de
aduanas, comercio aduanas, comercio
Estructura de un MIDlet
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.midlet.*;
public class DEMO extends MIDlet public class DEMO extends MIDlet implements CommandListener{
implements CommandListener{
Command EX;
Command EX;
Form f;
Form f;
Display d;
Display d;
public DEMO() public DEMO() { {
f=new Form(“Una demo”);
f=new Form(“Una demo”);
StringItem s=new StringItem s=new
StringItem(null,”Hola chao”);
StringItem(null,”Hola chao”);
f.append(s);
f.append(s);
f.addCommandListener(this);
f.addCommandListener(this);
EX=new Command(“Chao”, EX=new Command(“Chao”,
Command.EXIT, 1);
Command.EXIT, 1);
f.addCommand(EX);
f.addCommand(EX);
d=Display.getDisplay(this);
d=Display.getDisplay(this);
}}
public void startApp()
public void startApp() throws throws MIDletStateChangeException{
MIDletStateChangeException{
d.setCurrent(f);
d.setCurrent(f);
}}
public void pauseApp() public void pauseApp() {} {}
public void destroyApp(boolean z) public void destroyApp(boolean z) {} {}
public void commandAction public void commandAction
(Command c, Displayable dis) { (Command c, Displayable dis) {
destroyApp(false);
destroyApp(false);
notifyDestroyed();
notifyDestroyed();
}}
}} // Fin de la clase// Fin de la clase
Y un juego...
Para lograr hacer un Para lograr hacer un
juego es necesario juego es necesario
usar más clases.
usar más clases.
Típicamente se Típicamente se
extiende un Canvas extiende un Canvas
para hacer los dibujos.
para hacer los dibujos.
El Canvas es pasado El Canvas es pasado
al display a través de al display a través de
setCurrent(obj) setCurrent(obj)..
Las imágenes deben Las imágenes deben
Conclusiones
Pese a la capacidad Pese a la capacidad
limitada, se puede limitada, se puede
hacer mucho.
hacer mucho.
Todavía queda mucho Todavía queda mucho
por ver.
por ver.
Java es fácilmente Java es fácilmente
abordable.
abordable.
Existe una estrategia Existe una estrategia
recurrente para recurrente para
programar un MIDlet.
programar un MIDlet.
Consultas y proyecto
¿Comentarios?
¿Comentarios?
¿Consultas?
¿Consultas?
Proyecto:
Proyecto:
Juego en J2ME.
Juego en J2ME.
CLDC 1.0 y MIDP 1.0.
CLDC 1.0 y MIDP 1.0.
Del orden de las 1000 Del orden de las 1000
líneas de código.
líneas de código.
Proyecto
Agradecimientos a Andinatech.
Agradecimientos a Andinatech.