java me (micro edition)

Post on 08-Jun-2015

1.877 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

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

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)

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

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

Modelo de compilación

Código Fuente .java

[Compilador]

[Compilacion JIT] JVM (Maquina Virtual)

Ejecución del programa

Bytecode (Código intermedio) .class

.jar

Distribución

Archivo .jad que describe los

contenidos del

archivo .jar.

Archivo .jar que contiene el

bytecode del

programa

Arquitectura

Paquetes opcionales APIs para juegos 3D, multimedia

Perfiles MIDP

Configuración CLDC

Sistema Operativo

JVM (Java Virtual Machine)

AMS (Application Management Software)

Hola Mundo!

Actividad 1

Instalación del IDE y

complementos

Creación del proyecto

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.

Ciclo de vida de un MIDlet

destroyApp()

Destroyed

Active Paused

destroyApp()

startApp()

pauseApp()

AMS Application Management Software

new()*

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)

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

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

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

Importando paquetes

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

Bases de la GUI

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

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

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

form display

display.setCurrent(form)

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

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

Interfaz grafica de Usuario

Código Actividad 1

Emulador

Sistema de Login

Actividad 2

Desarrollo de la actividad

Aplicación

de

escritorio

Aplicación

de

Consola

Aplicación

Móvil

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);

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

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);

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 } }

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

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);

Anderson Rubio

andersonrubioquintero@gmail.com

@anderblackhawk

www.andersonrubio.com

Material elaborado por:

top related