java me (micro edition)

33
Java ME (Micro Edition) Es una plataforma orientada a proveer una colección de APIs de desarrollo de software para dispositivos móviles. *Teléfonos celulares (Feature phones) *Apps para BlackBerry (gracias a la BlackBerry® Java® Virtual Machine)

Upload: anderson-rubio

Post on 08-Jun-2015

1.865 views

Category:

Education


2 download

DESCRIPTION

Primeros pasos en el desarrollo de aplicaciones móviles con Java ME (Micro Edition), desde información básica en el ciclo de vida de una aplicación móvil hasta la creación del famoso "Hola Mundo".

TRANSCRIPT

Page 1: Java ME (Micro Edition)

Java ME (Micro Edition)

Es una plataforma orientada a proveer una

colección de APIs de desarrollo de software para

dispositivos móviles.

*Teléfonos celulares (Feature phones)

*Apps para BlackBerry (gracias a la

BlackBerry® Java® Virtual Machine)

Page 2: Java ME (Micro Edition)

Java ME (Micro Edition)

Características

*Flexibilidad en la creación de interfaces gráficas

*Variedad de APIs para distintos dispositivos de

acuerdo a sus recursos y capacidades.

*Seguridad

*Soporte para aplicaciones que utilizan SMS o

Internet

*Multiplataforma

Page 3: Java ME (Micro Edition)

MIDlets

<<Así como se le llama APPLET , a

una aplicación que corre en un

navegador web>>

La gran mayoría de

MIDlets desarrollados, son

juegos para celulares, que

implementan APIs para el

manejo 2D y 3D

Las aplicaciones Java ME, se denominan MIDlets

Page 4: Java ME (Micro Edition)

Modelo de compilación

Código Fuente .java

[Compilador]

[Compilacion JIT] JVM (Maquina Virtual)

Ejecución del programa

Bytecode (Código intermedio) .class

.jar

Page 5: Java ME (Micro Edition)

Distribución

Archivo .jad que describe los

contenidos del

archivo .jar.

Archivo .jar que contiene el

bytecode del

programa

Page 6: Java ME (Micro Edition)

Arquitectura

Paquetes opcionales APIs para juegos 3D, multimedia

Perfiles MIDP

Configuración CLDC

Sistema Operativo

JVM (Java Virtual Machine)

AMS (Application Management Software)

Page 7: Java ME (Micro Edition)

Hola Mundo!

Actividad 1

Page 8: Java ME (Micro Edition)

Instalación del IDE y

complementos

Page 9: Java ME (Micro Edition)

Creación del proyecto

Page 10: Java ME (Micro Edition)

Los dispositivos móviles (ya sea emulador o uno real), interactúa con un

MIDlet a través de su propio software, llamado Application Management

Software (AMS)

Estados • -Active

• -Paused

• -Destroyed

Ciclo de vida de un MIDlet

Métodos

public void startApp() { }

public void pauseApp() { } public void destroyApp(boolean unconditional) { }

Son métodos que extienden de la clase Midlet y en los cuales podemos

ubicar código que queremos que se ejecute en un momento dado.

Page 11: Java ME (Micro Edition)

Ciclo de vida de un MIDlet

destroyApp()

Destroyed

Active Paused

destroyApp()

startApp()

pauseApp()

AMS Application Management Software

new()*

Page 12: Java ME (Micro Edition)

En este estado el MIDlet está esperando por ser pasar al estado ACTIVE

y no consume recursos del dispositivo.

Estado Paused

Causas

-Cuando se llama el método pauseApp()

-Cuando el ASM exige recursos del teléfono (por ejemplo, cuando el

teléfono recibe una llamada entrante. EL ASM invoca el método

pauseApp() ).

-Cuando se dispara MIDletStateChangeException (En caso de un error, se

pone en estado PAUSED)

Page 13: Java ME (Micro Edition)

En este estado el MIDlet la aplicación ejecuta todas sus funciones

Estado Active

Causas

-Cuando se inicia la aplicación (El AMS permite crear una nueva instancia

de nuestra aplicación)

-Cuando se llama el método startApp()

-Cuando se llama el método ResumeRequest()

ResumeRequest() es un método que permite pasar de estado Paused a

Active

Page 14: Java ME (Micro Edition)

Se puede destruir una aplicación que esté tanto en estado ACTIVE como

PAUSED. Al destruir, lo que hacemos es eliminar la instancia creada, pero

no desinstalar la aplicación

Estado Destroy

Causas

-El usuario apaga repentinamente el dispositivo

-Cuando se llama el método destroyApp(boolean unconditional)

unconditional es una variable booleana que define si es completamente

necesario destruir la aplicación o no

*true - La aplicación se destruirá obligatoriamente, independientemente de lo que este

haciendo.

*false - La aplicación se destruirá, siempre y cuando, NO esté haciendo nada importante, si se

encuentra ejecutando algún proceso importante, se dispara MIDletStateChangeException

Page 15: Java ME (Micro Edition)

Secuencia de eventos

Evento

Constructor()

Paused

Método ejecutado

startApp() pauseApp() startApp() destroyApp()

Active Paused Active Destroyed

Usuario inicia

la Aplicación

Dispositivo libre

para iniciar la

App

Llamada

entrante Finalización

de la llamada

El usuario

desea cerrar

la App

Estado

Secuencia de eventos

Page 16: Java ME (Micro Edition)

Importando paquetes

Page 17: Java ME (Micro Edition)

javax.microedition.midlet Nos provee la clase MIDlet

javax.microedition.icdui

• Alert

• AlertType

• Canvas

• ChoiceGroup

• Command

• DateField

• Display

Paquetes fundamentales

• Displayable

• Font

• Form

• Gauge

• Graphics

• Image

• ImageItem

• Item

• List

• Screen

• StringItem

• TextBox

• TextField

• Ticker

Page 18: Java ME (Micro Edition)

Bases de la GUI

Page 19: Java ME (Micro Edition)

Debe haber un objeto «Displayable» o Contenedor, que contendrá los

demás elementos y un administrador para ese objeto.

Solo puede existir un objeto «Displayable» por MIDlet

Interfaz grafica de Usuario

Objeto Displayable

(Contenedor) Administrador

Form Display Clase

Elemento

Page 20: Java ME (Micro Edition)

Representa el administrador para la visualización correcta del MIDlet y la

entrada desde el dispositivo.

Provee métodos para obtener información sobre las capacidades del

dispositivo.

• isColor()

• numColors()

• numAlphaLevels()

Clase Display

Display display; display= Display.getDisplay(this);

Creación de un objeto tipo Display

Page 21: Java ME (Micro Edition)

Es un contenedor en el que se pueden insertar diferentes elementos

• Campos de texto de solo lectura

• Campos de texto editables

• Imágenes

• Grupos de botones

• Elementos personalizados

• En general, cualquier clase hija de la clase Item

Clase Form

Form form; form = new Form("Titulo Form");

Creación de un objeto tipo Form

Page 22: Java ME (Micro Edition)

form display

display.setCurrent(form)

Display display; display= Display.getDisplay(this);

Form form; form = new Form("Titulo Form");

Interfaz grafica de Usuario

Page 23: Java ME (Micro Edition)

Código Actividad 1

Page 24: Java ME (Micro Edition)

Emulador

Page 25: Java ME (Micro Edition)

Sistema de Login

Actividad 2

Page 26: Java ME (Micro Edition)

Desarrollo de la actividad

Aplicación

de

escritorio

Aplicación

de

Consola

Aplicación

Móvil

Page 27: Java ME (Micro Edition)

Es un componente editable que debe ir ubicado dentro de un Form

Input Constraints o Restricciones de entrada

• ANY

• DECIMAL

• EMAILADDR

• INITIAL_CAPS_SENTENCE

• INITIAL_CAPS_WORD

Clase TextField

TextField(String label, String text, int maxSize, int constraints)

Constructor

• NON_PREDICTIVE

• NUMERIC

• PASSWORD

• PHONENUMBER

• SENSITIVE

• UNEDITABLE

• URL

Ejemplo

userName = new TextField("LoginID:", "", 30, TextField.ANY);

Page 28: Java ME (Micro Edition)

Representa un conjunto de datos gráficos.

Clase Image

Image img; try{ img=Image.create(«/ruta_imagen») } catch(){ } form.append(img);

Creando la imagen

Agregándola al Form

Page 29: Java ME (Micro Edition)

Es una clase que encapsula la información semántica para una acción

Tipos

• BACK

• CANCEL

• EXIT

• HELP

• ITEM

• OK

• SCREEN

• STOP

Clase Command

Command(String label, int commandType, int priority)

Constructor

Agregándolo al Form

form.addCommand(cancel);

Page 30: Java ME (Micro Edition)

CommandListener asociado con el Displayable, es el que define en

realidad que acción se llevo a cabo.

Interface CommandListener

form.setCommandListener(this);

Asociándolo al Form

Identificando el evento

public void commandAction(Command c, Displayable d) { String label = c.getLabel(); if (label.equals("Cancel")) { //Metodo a ejecutar } else if (label.equals("Login")) { //Metodo a ejecutar } }

Page 31: Java ME (Micro Edition)

Es una pantalla que muestra datos al usuario y espera por un cierto

periodo de tiempo antes de procesar el siguiente objeto "Displayable"

Puede contener un String y/o una imagen

Es similar al JOptionPane de Java SE

Clase Alert

Alert(String title)

Constructor para un Alert vacío

Alert(String title, String alertText, Image alertImage, AlertType alertType)

Constructor para un Alert completo

Page 32: Java ME (Micro Edition)

Clase Alert

Alert success = new Alert("Login Successfully", "Your Login Process is completed!", img2, AlertType.INFO); success.setImage(img); userName.setString(""); password.setString(""); display.setCurrent(success, form);

Ejemplo

Ejemplo constructor

Alert error = new Alert("Login Incorrect", "Please try again", imge, AlertType.ERROR);

Page 33: Java ME (Micro Edition)

Anderson Rubio

[email protected]

@anderblackhawk

www.andersonrubio.com

Material elaborado por: