Sie sind auf Seite 1von 51

/** * * */

Java para Dispositivos Mviles

public class { public static void main (String [] a) {

MCs. Javier Gonzlez Snchez;


javiergs@itesm.mx; ITESM, campus Guadalajara;
} }

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

agenda[

1 Dispositivos mviles
]=

);

SMS (Short Service Message Service). Mensajes de mximo 160 caracteres WAP y WML. Web de baja fiabilidad, velocidad y alto costo. GPRS (General Packet Radio Service) transferencia de datos multimedia con cualidades aceptables. MMS (Multimedia Message Service)

J2ME (Java 2 micro-edition) entorno de desarrollo


Archivos JAR y JAD Symbian: sistema operativo: Nokia, sony-ericsson, Motorola Archivos SIS

javiergs@itesm.mx

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

agenda[

2 historia de Java
]=

Diciembre 1990:
Green Project, Oak, Duke
http://today.java.net/jag/old/green/

Octubre 2004:
Portafolio de productos basados en la red y con la filosofa de que el mismo software debe ser ejecutable en diferentes dispositivos y/o sistemas. J2SE = base de la tecnologa Java J2EE = entorno empresarial, redes, acceso a datos J2ME = entornos limitados
javiergs@itesm.mx

agenda[

2 Java2.inicio()
]=

);

MIDlets

Applets Aplicacin grfica Aplicacin texto

Servlet JSP Java Beans

javiergs@itesm.mx

agenda[

2 J2ME.MIDlets
]=

Mobile Java );

Java 2 Micro Edition

Omite el soporte a operaciones con punto flotante y los tipos de datos que manejan esa informacin Limita el nmero de Exception disponibles para control de Errores Para dispositivos con Configuracin CLDC (Connected Limited Device Configuration): PDAs y telfonos mviles. Y el caso particular de telfonos mviles el perfil MIDP (Mvil Information Device Profile)

Maquina Virtual minimizada (K Virtual Machine)

javiergs@itesm.mx

agenda[

2 J2ME.MIDlets
]=

Mobile Java );

MIDlet: programa capaz de ejecutarse en un dispositivo mvil.

Herramientas de trabajo: J2ME Wireless Toolkit 2.0 [http://java.sun.com/j2me/download.html ] J2SE SDK es necesario como base.

javiergs@itesm.mx

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

agenda[

3 programacin
]=

Variables, Tipos de dato, Operadores Clases, Objetos Atributos, Mtodos Paquetes, APIs Herencia, Sobrecarga, Sobreescritura Estructuras de control Excepciones Estructuras de Datos: arreglos
javiergs@itesm.mx

agenda[

3 modelar el mundo real ;


]=

Clase = molde herencia atributos metodos

Objeto = cosa se usar se tienen atributos metodos Son hijos de se usan tienen

javiergs@itesm.mx

agenda[

3]= a trabajar
class Coche { int velocidad;

void acelerar( int nuevaVelocidad) { velocidad = nuevaVelocidad; } void frenar() { velocidad = 0; } } class Mundo { public static void main (String [] arg) { Coche miCoche = new Coche(); miCoche.acelerar(100); miCoche.frenar(); } }

javiergs@itesm.mx

agenda[

3]= y se puede complicar


class Coche extends Bicicleta{ int velocidad; void acelerar( int nuevaVelocidad) { velocidad = nuevaVelocidad; } void frenar() { velocidad = 0; } } class Mundo { public static void main (String [] arg) { Coche miCoche = new Coche(); miCoche.acelerar(100); miCoche.frenar(); } }

javiergs@itesm.mx

agenda[

3] = compilar y ejecutar

archivo.java

archivo.class

javiergs@itesm.mx

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

agenda[

4 J2ME.Wireless Toolkit
]=

);

Device:emulador Build Run

project:package *.jar *.jad

javiergs@itesm.mx

agenda[

4 J2ME.MIDlets
]=

Mobile Java );

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloWorld extends MIDlet implements CommandListener { private Command exitCommand; private Display display; private Form screen; public HelloWorld() { // Obtenemos el objeto Display del midlet. display = Display.getDisplay(this); // Creamos el comando Salir. exitCommand = new Command("Salir", Command.EXIT,2); // Creamos la pantalla principal (un formulario) screen = new Form("HelloWorld"); // Creamos y aadimos la cadena de texto a la pantalla StringItem saludo = new StringItem("","Hola Mundo..."); screen.append(saludo); // Aadimos el comando Salir e indicamos que clase lo manejar screen.addCommand(exitCommand); screen.setCommandListener(this); }

javiergs@itesm.mx

agenda[

4 J2ME.MIDlets
]=

Mobile Java );

public void startApp() throws MIDletStateChangeException { // Seleccionamos la pantalla a mostrar display.setCurrent(screen); } public void pauseApp() { }

public void destroyApp(boolean incondicional) { }

public void commandAction(Command c, Displayable s) { // Salir if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } }

javiergs@itesm.mx

agenda[

4 Opciones
]=

);

Archivo.jar

Sony-ericsson SDK Nokia Suite

Archivo.jad

etc.
javiergs@itesm.mx

agenda[

4 Opciones
]=

);

javiergs@itesm.mx

agenda[

4 MIDlets
]=

anatoma );

Hijo de: javax.microedition.midlet.MIDlet Sobrescribir: startApp() pauseApp() destroyApp() Listener: commandAction() CLDC (Connected Limited Device Configuration): java.lang java.util java.io Generic Conection Framework

javiergs@itesm.mx

agenda[

4 MIDlets
]=

anatoma );

MIDP (Mvil Information Device Profile) javax.microedition.midlet Contiene la clase MIDlet javax.microedition.lcdui Interfase de usuario: Screen, Canvas javax.microedition.io javax.microedition.rms Timer TimerTask

javiergs@itesm.mx

agenda[

4 MIDlets
]=

fisiologa );

Display display = Display.getDisplay(this); Command exitCommand = new Command("Salir", Command.EXIT,2); Tipos de comandos disponibles: OK, CANCEL, BACK, STOP, HELP, SCREEN, ITEM. Form screen = new Form("HelloWorld"); screen.addCommand(exitCommand); screen.setCommandListener(this); StringItem saludo = new StringItem("","Hola Mundo..."); screen.append(saludo); display.setCurrent(screen);

javiergs@itesm.mx

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

agenda[

4 MIDlets
]=

Screen );

javiergs@itesm.mx

agenda[

4 MIDlets
]=

Screen );

Las clases que heredan de Screen pueden aparecer en pantalla Solo una a la vez Heredan: String getTitle() // devuelve el ttulo de la pantalla void setTitle(String s) // establece el ttulo de la pantalla Ticker getTicker() // Devuelve el ticker de la pantalla void setTicker(Ticker ticker) // Establece el ticker de la pantalla

Podemos generar varios objetos e intercalarlos display.setCurrent(objeto);

javiergs@itesm.mx

agenda[

4 MIDlets
]=

Alert );

Permite mostrar una pantalla de texto hasta que se produzca un comando de tipo OK. Se utiliza para mostrar mensajes de error y Avisos Alert ( String ttulo, String texto_alerta, Image imagen_alerta, //null para no utilizar imagen AlertType tipo_alerta); //ALARM, CONFIRMATION, ERROR, Ejemplo:
Alert alerta; alerta = new Alert ("Error","El dato no es vlido", null,AlertType.ERROR); display.setCurrent(alerta); alerta.setTimeout(Alert.FOREVER); // tiempo en ms o establecer permante

INFO, WARNING

javiergs@itesm.mx

agenda[

4 MIDlets
]=

List );

Crear listas de elementos seleccionables


List ( String ttulo, int tipo_lista, // EXCLUSIVE, IMPLICIT, MULTIPLE String[] elementos, image[] imgenes)

Ejemplo:
String[] ciudades = {"Mlaga", "Madrid", "Melilla"}; List lista = new List ("Seleccione ciudad", List.EXCLUSIVE, ciudades, null); .. Lista.getString ( lista.getSelectedIndex() );

javiergs@itesm.mx

agenda[

4 MIDlets
]=

TextBox );

Permite introducir y editar texto a pantalla completa


TextBox ( String ttulo, String texto, // texto inicial a desplegar int tamao_max, // en caracteres int limitacin) // ANY, EMAILADDR, NUMERIC, PASSWORD, PHONENUMBER, URL

Ejemplo:
TextBox texto = new TextBox ("Mensaje", "", 256, TextField.ANY);

javiergs@itesm.mx

agenda[

4 MIDlets
]=

Form );

Es un contenedor, aglutina una serie de elementos visuales

Ejemplo: StringItem saludo = new StringItem("","Hola Mundo..."); Form screen.append(saludo);


javiergs@itesm.mx

agenda[

4 MIDlets
]=

Form );

Mtodos: append(Item) delete(int) insert(int, Item) set(int, Item) size()

Listener: ItemstateListener formulario.setItemStateListener(this); void itemStateChanged(Item elemento)

javiergs@itesm.mx

agenda[

4 MIDlets
]=

Item );

StringItem (String etiqueta, String texto) String getText() void setText(String texto)

ImageItem (String etiqueta, Image img, int layout, // posicion

LAYOUT_DEFAULT, LAYOUT_LEFT .. //a mostrar en vez de la imagen

String texto_alternativo)
*las imgenes se colocan en el directorio res

TextField ( String etiqueta, String texto, int tamao_max, int limitacin)

javiergs@itesm.mx

agenda[

4 MIDlets
]=

Item );

DateField ( String etiqueta, int modo) // DATE,

TIME, DATE_TIME

Date getDate() void setDate (Date fecha) ChoiceGroup ( String etiqueta, int tipo_lista, String[] elementos, image[] imgenes)

Gauge ( String etiqueta, bolean interactivo, int val_max, int val_ini)


* Barra de estado

//permitir modificar al usr

javiergs@itesm.mx

agenda[

4 MIDlets
]=

Item );

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Items extends MIDlet implements CommandListener { private Command exitCommand; private Display display; private Form screen; public Items() { String[] estados = {"Casado","Soltero","Divorciado","Viudo"}; display = Display.getDisplay(this); exitCommand = new Command("Salir", Command.EXIT,2); screen = new Form("Interfaz de usuario"); TextField nombre = new TextField("Nombre","",30,TextField.ANY); DateField fecha_nac = new DateField("Fecha de nacimiento", DateField.DATE); ChoiceGroup estado = new ChoiceGroup("Estado",List.EXCLUSIVE,estados,null); screen.append(nombre); screen.append(fecha_nac); screen.append(estado); screen.addCommand(exitCommand); screen.setCommandListener(this); } javiergs@itesm.mx

agenda[

4 MIDlets
]=

Item );

public void startApp() throws MIDletStateChangeException { // Seleccionamos la pantalla a mostrar display.setCurrent(screen); } public void pauseApp() { } public void destroyApp(boolean incondicional) { } public void commandAction(Command c, Displayable s) { // Salir if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } } }

javiergs@itesm.mx

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

agenda[

4 MIDlets
]=

canvas );

import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Canvas1 extends MIDlet implements CommandListener { private Command exitCommand; private Display display; private SSCanvas screen; public Canvas1() { display=Display.getDisplay(this); exitCommand = new Command("Salir",Command.SCREEN,2); screen=new SSCanvas(); screen.addCommand(exitCommand); screen.setCommandListener(this); } public void startApp() throws MIDletStateChangeException { display.setCurrent(screen); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } } }

javiergs@itesm.mx

agenda[

4 MIDlets
]=

canvas

);

class SSCanvas extends Canvas { public void paint(Graphics g) { g.setColor(255,255,255); g.fillRect (0, 0, getWidth(), getHeight()); q.setColor(10,200,100); g.drawLine (0, 0, 100, 100); g.fillRect (50, 50, 30, 30); Image img = Image.createImage(/logo.png"); g.drawImage (img, 10, 10, Graphics.HCENTER, Graphics.VCENTER); } }

javiergs@itesm.mx

agenda[

4 juegos
]=

);

(1) Movimiento Animacin Colisin

Una clase que represente al avin y permita su manipulacin

javiergs@itesm.mx

agenda[

4 teclado
]=

);

// Lectura del Teclado: keyPressed(), keyReleased() y keyRepeated(). public void keyPressed(int keyCode) { int action = getGameAction(keyCode); switch (action) { case FIRE: // Disparar break; case LEFT: // Mover a la izquierda break; case RIGHT: // Mover a la derecha break; case UP: // Mover hacia arriba break; case DOWN: // Mover hacia abajo break; } } javiergs@itesm.mx

agenda[

4 hilos
]=

);

public void run() { iniciar(); while (true) { // Actualizar fondo de pantalla doScroll(); // Actualizar posicin del jugador computePlayer(); // Actualizar pantalla repaint(); serviceRepaints(); try { Thread.sleep(sleepTime); } catch (InterruptedException e) { } } } javiergs@itesm.mx

Y el teclado Con sus Pseudo- listeners

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

agenda[

4 MIDlets
]=

red );

try { c = (HttpConnection)Connector.open(url); c.setRequestMethod(HttpConnection.GET); c.setRequestProperty("IF-Modified-Since", "10 Nov 2000 17:29:12 GMT"); c.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/ CLDC-1.0"); c.setRequestProperty("Content-Language", "es-ES"); is = c.openInputStream(); int ch, i, j; // leer los datos desde la URL while ((ch = is.read()) != -1) { b.append((char) ch); } // mostrar noticias en la pantalla t = new TextBox("Noticias en barrapunto.com", salida.toString(), 1024, 0); javiergs@itesm.mx

g.drawString(

Agenda );

agenda[

1 Dispositivos mviles
]=

agenda[

2 Java micro-edition
]= ]=

);

agenda[

3 programacin con objetos y Java 4 MIDlet.HolaMundo


]=

agenda[

agenda[

5 MIDlet.widgets
]=

agenda[

6 MIDlet.canvas
]=

agenda[

7 MIDlet.red
]=

agenda[

8 MIDlet.conclusiones
]=

);

javiergs@itesm.mx

System.out.println(

Conclusiones

);

Java World

javiergs@itesm.mx

out.println(

Referencias
public interface

);

mucho por aprender && seguir trabajando

http://java.sun.com; http://www.java.com; http://java.net


}

J2

public interface

J2ME

extends J2 {

http://java.sun.con/j2me/
}

public interface

http://www.symbian.com/ http://developer.sonyericsson.com/
javiergs@itesm.mx

Otros

extends J2 {

out.println(

Para divertirse

);

A jugar!
public interface

Nintendo en tu celular

http://www.ba-k.com/ index.php?/archives/ 710-Vnes-1.20-JUEGA-NINTENDO-EN-TU-CELULAR.html;


}

public interface

VNES for J2ME

http://www.vampent.com/vnes.htm;
}

javiergs@itesm.mx

super(

Gracias 2007 !);

public stop () {

http://

www.javiergs.com

javiergs@itesm.mx
}

javiergs@itesm.mx

super(

Gracias 2006 !);

public stop () {

http://

www.javiergs.com

javiergs@itesm.mx
}

javiergs@itesm.mx

super(

Gracias 2006 !);

public stop () {

http://

www.javiergs.com

javiergs@itesm.mx
}

javiergs@itesm.mx

super(

Gracias 2005 !);

public stop () {

http://

www.javiergs.com

javiergs@itesm.mx
}

javiergs@itesm.mx

Das könnte Ihnen auch gefallen