J2ME, Desarrollo Java para Dispositivos Moviles
Cada dia prolifera más (y más que lo tiene que hacer) el uso de
dispositivos moviles (telefonos, pda´s, etc).
Desarrollo específico
Esto dispositivos, al tener menores dimensiones, tambien disponen de menores
capacidades técnicas (velocidad de la CPU, memoria, etc) por lo tanto el
desarrollo de aplicaciones en estos dispositivos requiere del uso de lenguajes y
técnicas distintas de las de aplicaciones tradicionales.
Una de los estandartes de Java en ….. compilar en un sitio y ejecutar en
cualquiera (usando una traducción más o menos libre). Esto es posible gracias a que
cuando construimos un programa Java y lo compilamos, generamos un código
binario neutro que corre sobre una máquina virtual, que esta disponible para la
mayoria de las plataformas actuales o por lo menos para todas las más
extendidas y utilizadas.
Restricciones
En el caso concreto de querer utilizar Java para desarrolla aplicaciones para
dispositivos móviles y teniendo en cuenta las restricciones que hemos comentado
anteriormente ….. no todas las caracteristicas de Java pueden aplicarse a
dispositivos moviles (además muchas no tendrian demasiado sentido)
Lo mejor, es leerse la especificación y descubrir que es lo que esta
soportado y no soportado.
Tambien hay que tener en cuenta que estos dispositivos no se encuetran
normalmente conectados a una red y que debido a su inferior capacidad de
procesamiento, no será posible realizar tareas que se realizan de un modo
natural en una aplicación Java en un servidor u ordenador de sobre mesa. Un
caso concreto es la verificación del ByteCode (el código binario que generamos
al compialar un programa Java) que ya no se puede hacer según se carga ….. no
tenemos tanta capacidad de proceso.
Otro elemento interesante a tener en cuenta es que no tiene demasisado
sentido construir las aplicaciones basadas en ventanas o utilizando las mismas
librerias gráficas ya que habuitualmente el area gráfica, la memoria de video
y la resolución es mucho más reducida.
Configuraciones y perfiles de dispositivos
Como podreis suponer … será necesario que estos dispositivos tengan una
máquina virtual particular, que tendrá capacidad de ejecutar un subconjunto de
APIs.. lo que se denomina configuraciones.
Sobre esta configuración …… se crean aplicaciones para un
determinado subconjunto de dispositivos … lo que se denominan perfiles. Un
perfil añade nuevas librerías de clases. En este tutorial, vamos a hablar del
perfil MIDP…
Empaquetamiento
En MIDP econtruimos uns componentes, construidos de un modo similar a los
Applets que construimos para un navegador, donde este contenedor nos simplifique y haga transparente el
interfaz con el dispositivo concreto que deseemos utilizar.
Al igual que en las aplicaciones Web, normalmente empaquetemos todos los
elementos que queremos distribuir en ficheros comprimidos (war o ear) … para
distribuir aplicaciones a dispositivos móviles deberemos hacer lo mismo. Vereis
que tambien hay descriptores.. ficheros de configuración …etc
Configuración del Entorno y primera aplicación
Creo que, siguiendo la dinámica del resto de tutoriales, lo mejor es
configurar el entorno de desarrollo, contruir una aplicación y posteriormente
desplegarla tanto con emuladores en un ordenador como en un dispositivo móvil
(en este caso tenemos suerte porque disponemos de una iPaq y un movi S55 que
tienen ambos sopore Java)
Desde java.sun.com … nos descargamos el kit de desarrollo para Wireless
Seleccionamos la versión de la máquina virtual a utilizar
Seleccionamos el directorio destino
Y ya tenemos instalado el entorno
Se nos han creado una carpeta con distintas herramientas ….
La primera que vemos en KToolbar … que ofrece un entorno de
desarrollo mínimo … lo lanzamos
Pinchamos en Opne Project
Y vemos el ejemplo … la verdad es que parece que no hace nada
pero pulsamos en botón run y
Bueno … vemos que el sistema funciona …..
Si pinchamos en Edit->Preferences ….. vamos a activar las
opciones de depuración
La proxima vez que lanzamos la aplicación ….. podemos monitorizar el
comportamiento del sistema
El uso de la memoria
Las llamadas a los métodos
Tambien podemos depurar muchas más cosas ….
Construir nuestro componente
Bueno … a lo que vamos …. vamos a empezar a tirar lineas de código…
que es lo nuestro.
El modo más sencillo de crear nuestro primer MidLet es usar El propio
Wireless Toolkit
Creamos un nueso proyecto … y asignamos en nombre a nuestro
midlet
Definimos los nombres de nuestro componentes
El icono asociado
Y el Toolkit crea una estructura de ficheros donde dejar nuestro
elementos
Nuestro fichero de código lo tenemos que meter en directorio src
Ahora hay que construir nuestro primer componente .. podemos ver
que es parecido a los Applets (conceptualmente hablando)
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class mensaje extends MIDlet implements CommandListener { private Display display; private Form props; private Command exitCommand = new Command("Salir", Command.EXIT, 1); public mensaje() { display = Display.getDisplay(this); props = new Form("Primera Aplicacion"); } public void startApp() { props.append("Hola, este es un ejemplo de Roberto"); display.setCurrent(props); } public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } |
Pulsamos el botón Build y compilamos y empaquetamos
Pulsamos el botón RUN y ejecutamos
Vemos nuestro MidLet y al seleccionarlo … podemos
observar nuestro mensaje …
Y al final .. vemos el resumen de la ejecución
Pues … tampoco tiene tanto misterio …… aunque es como todo …… en
siguientes tutoriales os contaremos aspectos avanzados y os enseñaremos como
contruir un Juego y a resolver tareas complejas como …sincronización, envio
de mensajes … descarga bajo demanda , etc..
Que tal.
Buenas Noches.
Me parece muy bueno el artículo
Una pregunta.
Una vez que ya tengo la aplicación generada, como la paso al dispositivo?
Gracias