Está en la página 1de 12

UNIVERSIDAD ABIERTA Y A DISTANCIA DE MÉXICO

INGENIERÍA EN DESARROLLO DE SOFTWARE

ASIGNATURA: PROGRAMACIÓN MÓVIL

UNIDAD II: APLICACIONES EN J2ME

ACTIVIDAD 2: DISEÑANDO MIS APLICACIONES


J2ME

ALUMNO: SERGIO VARGAS OLIVARES

DOCENTE: CHRYSTIAN ORANGE BERNAL

División de Ciencias Exactas, Ingeniería y Tecnología


Contenido
Propósito ................................................................................................................................................ 3
Instrucciones......................................................................................................................................... 3
Introducción .......................................................................................................................................... 4
Desarrollo ............................................................................................................................................... 5
API de alto nivel ................................................................................................................................ 5
API de bajo nivel............................................................................................................................... 7
Conclusiones .......................................................................................................................................11
Bibliografía........................................................................................................................................... 12

2
Propósito
El propósito de esta actividad es que apliques la programación de las APIs de alto y bajo nivel,
considerando las clases y métodos estudiados basado en el caso planteado en el resumen
ejecutivo de la evidencia de unidad1.

Instrucciones
Para seleccionar que interface de usuario aplicar en el diseño de su propia aplicación, es
necesario que experimentes el uso de las clases básicas de cada UI (de alto y bajo nivel),
también es necesario tener establecido el flujo de uso, las funcionalidades, las interacciones y
el diseño visual, por lo que esta actividad consiste en probar las dos UIs, la programación de
su aplicación seleccionando su UI y anexar en el resumen ejecutivo el flujo de uso, las
funcionalidades, las interacciones y el diseño visual de la aplicación.

Es importante hacer hincapié en la experimentación de las dos UIs, para que ustedes cuenten
con elementos suficientes para seleccionar la UI de su aplicación de acuerdo con el tipo de
aplicación (de utilidad general o entretenimiento y juegos). Se requiere que relaciones las
plataformas de desarrollo con los dispositivos y las aplicaciones

3
Introducción
API de alto nivel: son bibliotecas que proporcionan un alto nivel de abstracción, y tienen las
siguientes características:

• El dibujo real en la pantalla de MID se realiza mediante la implementación de las clases


específicas.
• Las aplicaciones no definen el aspecto visual de los componentes.
• La navegación, desplazamiento y otras interacciones primitivas están encapsuladas por
la aplicación, y la aplicación no tiene conciencia de esas interacciones.
• Las aplicaciones no pueden acceder a los dispositivos de entrada concretos como teclas
específicas.

En otras palabras, al usar una API de alto nivel la implementación subyacente va a hacer la
adaptación necesaria para el hardware del dispositivo la interfaz de usuario y el estilo nativo.

API de bajo nivel: al proporcionar muy poca abstracción, son utilizadas para diseñar
aplicaciones que necesitan una colocación precisa y control de los elementos gráficos, algunas
de sus características son:

• Tienen un control total de los que dibuja en pantalla.


• Escucha los eventos primitivos como el pulsado y el soltad de las teclas.
• Tiene acceso con teclas concretas y a otros dispositivos de entrada.

4
Desarrollo
Utilizaremos el IDE Netbeans para la creación de las APIs y sus respectivas clases y métodos,
ya que resulta importante probar el funcionamiento de ambas APIs.

API de alto nivel

A continuación, se muestra el código utilizado para la API de alto nivel:

/* @author Sergio Vargas */


package holamundoalto;

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

public class HolaMundoAlto extends MIDlet implements CommandListener {


private Display display;
private Form form;
private Command salir;

//Constructor
public HolaMundoAlto( ) {

//agarramos el display
display=Display.getDisplay(this);

//Creamos el form
form = new Form ("Ejemplo");
form.append("Hola Mundo\n");

//Creamos el comando de salir


salir=new Command("Salir",Command.EXIT, 3);

//añadimos el comando al form y activamos el oyente


form.addCommand(salir);
form.setCommandListener(this);
}

//Método que se llama cuando pasamos de Pausado a Activo


protected void startApp( ) {
display.setCurrent(form);
}

//Método que se llama cuando pasamos de Activo a Pausado


protected void pauseApp( ) {

5
}

//Método que se llama cuando se destruye el midlet


protected void destroyApp(boolean incondicional) {
}

//Método para el tratamiento de datos de teclado


public void commandAction(Command c, Displayable d) {
//Miramos si nos salimos o mostramos la alerta
if (c ==salir) {
destroyApp(true);
notifyDestroyed();
} else System.out.println("Otro comando pulsado");
}
}

Se muestra su implementación en el IDE Netbeans:

Al ejecutar el Midlet, se muestra en la consola la siguiente salida:

6
Por último, muestro su ejecución:

API de bajo nivel

A continuación, se muestra el código utilizado para la API de alto nivel:

/* @author Sergio Vargas */


package holamundobajo;

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

public class HolaMundoBajo extends MIDlet implements CommandListener {


private Display display;
private Command salir;
private Canvas micanvas;

//Constructor
public HolaMundoBajo( ) {
//agarramos el el display
display=Display.getDisplay(this);

//Creamos la pantalla principal


micanvas = new Canvas() {
private int width;
private int height;

public void paint (Graphics g){


width=getWidth();
height=getHeight();

7
//pintamos la pantalla de negro
g.setColor(0,0,0);
g.fillRect(0,0,width,height);

//Pintamos una Hola en el centro y de blanco


g.setColor(255,255,255);
g.setStrokeStyle(Graphics.SOLID);
g.drawString("Hola Caracola",width/2,height/2,(Graphics.BASELINE | Graphics.HCENTER));

}//fin método paint


};
//Creamos el comando de salir
salir=new Command("Salir",Command.EXIT, 3);

//añadimos el comando al Canvas y activamos el oyente


micanvas.addCommand(salir);
micanvas.setCommandListener(this);
}

//Método que se llama cuando pasamos de Pausado a Activo


protected void startApp( ) {
display.setCurrent(micanvas);
}

//Método que se llama cuando pasamos de Activo a Pausado


protected void pauseApp( ) {
}

//Método que se llama cuando se destruye el midlet


protected void destroyApp(boolean incondicional) {
}

//Método para el tratamiento de datos de teclado


public void commandAction(Command c, Displayable d) {
//Miramos si nos salimos o mostramos la alerta
if (c ==salir) {
destroyApp(true);
notifyDestroyed();
} else System.out.println("Otro comando pulsado");
}
}

8
Se muestra su implementación en el IDE Netbeans:

Al ejecutar el Midlet, se muestra en la consola la siguiente salida:

9
Por último, muestro su ejecución:

10
Conclusiones
La diferencia entre las dos APIs en la programación se aprecian con estos dos ejemplos
básicos en donde en el primer ejemplo se utiliza un formulario en donde es posible agregar
elementos y en el segundo un lienzo donde es posible dibujar.

El uso de una u otra dependerá de nuestras necesidades. Con la instalación de dos ambientes
de desarrollo, experimentado con uno de ellos, conocer las interfaces gráficas de usuario para
la programación de los MIDlets, lo que procede es probar la funcionalidad de los métodos en
la programación de la propia aplicación

11
Bibliografía
UnADM. (SF). Aplicaciones en J2ME. 21 de octubre de 2019, de UnADM Sitio web:
https://unadmexico.blackboard.com/bbcswebdav/institution/DCEIT/Bloque2/DS/08/DPMO/U2/
Unidad_2_Aplicaciones_en_J2ME_DPMO.pdf

F. Javier García Castellano. (SF). Midlets Gráficos e interfaz de usuario. 25 de octubre de 2019,
de UGR Sitio web: http://leo.ugr.es/J2ME/MIDP/graficos.htm

12

También podría gustarte