Está en la página 1de 42

QU ES UN DISPOSITIVO MVIL La era de la informacin ha llegado, y con ella, las comunicaciones han mantenido la pauta en alta.

Y para que exista comunicacin, aparte de todos aquellos sistemas que la permiten, debe haber algunos en las manos de los usuarios, que les posibiliten el acceso a estos sistemas. Si bien existen gran cantidad de dispositivos que permiten este acceso (como los computadores, telfonos y la televisin interactiva) las comunicaciones se han visto en la necesidad de ser ubicuas (es decir, de poderse usar en cualquier momento y lugar) por lo que una nueva gama de dispositivos han aparecido: Los dispositivos mviles. Para responder a la pregunta de qu son? solo debemos mirar a nuestro alrededor. Celulares, Ipods, Iphones, Blackberrys, Ipad, y cualquier otro tipo de artilugio comunicativo salta a la vista cuando estamos en una universidad, en un transporte, o incluso en nuestras casas. Y esa es la primera caracterstica de un dispositivo mvil: Su portabilidad. Son aparatos que se usan para comunicarnos, y que son portables, que pueden llevarse de manera cmoda. Esta comunicacin se da porque para estos dispositivos es posible conectarse a una red, sea de datos, o de telefona, de manera permanente o intermitente. Esta conexin implica tambin cierta capacidad de procesamiento de informacin en el tiempo (al menos la que se enva y se recibe de la red), cierta capacidad de almacenamiento de la misma (sino, no sera posible su procesamiento en el tiempo, Dnde la tendramos mientras la vamos procesando?) y aunque su funcin es la de la comunicacin, pueden prestar servicios diferentes a este. Podemos resumir entonces que un dispositivo mvil es un aparato portable, con cierta capacidad de procesamiento y memoria, que tiene un puede tener algn otro propsito. acceso

relativo a una red y cuyo propsito es el de comunicar principalmente, aunque

Programacin de dispositivos mviles Semana 1

Si, hasta un reloj que se conecte a internet es un dispositivo mvil. Si mi MP3 lo hace, o se comunica con otro MP3, tambin lo es. Pero mi computador porttil, aunque hace todo esto, no es tan portable como un celular, por lo que no puede decirse que es un dispositivo mvil. Clases de dispositivos mviles Han aparecido una gran variedad de dispositivos mviles en el mercado, lo que ha hecho necesaria la aparicin de estndares que agrupen la definicin de dispositivos mviles. Estos estndares fueron definidos de la siguiente manera. 1. Dispositivo mvil de datos limitados: Son aquellos dispositivos que son pequeos y que poseen una pantalla tipo texto (sin grficas, monocromtica). Estos dispositivos generalmente tienen solo los

servicios de SMS (mensajera) y WAP (Wireless acces protocol, o portocolo de acceso a internet). 2. Dispositivo mvil de datos bsico: Dispositivos con una pantalla mediana, y con la posibilidad de navegar a travs de un cursor por un men visualizado en la pantalla. Prestan los mismos servicios que el dispositivo limitado, ms otros como e-mail y un navegador bsico de internet. En este grupo se pueden incluir los blackberrys y los smartphones o telfonos inteligentes. 3. Dispositivos mviles de datos mejorados: Son aquellos dispositivos que poseen las mismas funcionalidades que el bsico, pero poseen un sistema operativo autnomo y aplicaciones complejas como office mvil, entre otros.

Aunque

existen

muchas

variedades

de

dispositivos

mviles,

nos

concentraremos en estos 3 grupos, e iremos cerrando la brecha mientras veamos las aplicaciones ms comunes, hasta llegar a un dispositivo objetivo.

Programacin de dispositivos mviles Semana 1

Caractersticas de los dispositivos mviles del mercado Los dispositivos mviles actuales se han vuelto muy robustos, presentando diversas funcionalidades como la lectura de cdigo de barras, procesamiento de texto, almacenamiento de datos, reconocimiento facial, lectura de mail, e incluso, posibilidad de escoger diversas redes para transmitir sus datos. Sin embargo, las caractersticas de dichos productos pueden reducirse a un conjunto determinado de estructuras que permiten prestar los servicios anteriormente mencionados. Cules son estas caractersticas? Si bien existen muchas, solo nombraremos las que consideramos importantes para el desarrollo de nuestro curso: Pantalla: Todo dispositivo mvil tiene una pantalla. Esta es la puerta de salida del aparato, la forma en la que se comunica con nosotros. Y estas pantallas pueden posibilitar solo la visualizacin de letras, imgenes sencillas, mens, y en los ltimos aos, fotos, videos y todo tipo de contenido digital. Incluso, se han visto pantallas tctiles que requieren un nuevo modelo de programacin de aplicaciones, que son muy avanzadas para este curso. Teclas: Estas son las entradas del dispositivo, por donde accedemos a sus servicios o informacin. En los dispositivos clsicos, las teclas son un teclado numrico con algunas otras teclas de control. En casos actuales, las teclas han crecido hasta incluir un teclado alfanumrico completo (se le llama teclado qwerty), y en los dispositivos ms modernos, ha desaparecido para integrarse con la pantalla misma. Conexin a red: Para transferir la informacin que se procesa a otro dispositivo o a un operador, el aparato debe tener la posibilidad de conectarse a una red de datos, sea celular, de internet por demanda, de wifi, o de corto alcance.

Programacin de dispositivos mviles Semana 1

Memoria: Para almacenar determinados datos (sean nmeros de telfono, nombres, o incluso los propios datos del programa que dirige el dispositivo), es necesaria una memoria en la que se puedan localizar para usarlos. Estas memorias pueden variar, desde valores realmente pequeos (5 o 6 Kbytes) hasta incluso varios Gigabytes con tarjetas de expansin (Existen Iphones con memorias de 16 Gbytes, y este valor seguir aumentando con el tiempo)

Capacidad de procesamiento: Si el dispositivo no puede procesar los datos que tiene guardados en la memoria, difcilmente podr prestar servicios, o no lo har en absoluto. Es por esto que los dispositivos, independiente de su uso, siempre tendrn una capacidad interna de procesamiento de informacin.

Si vemos todas estas partes como un todo, podemos percibir que son, en suma, un computador de aplicacin especfica, ya que tiene puertos de entrada, de salida, memoria y capacidad de procesamiento. Esta es la imagen central que debemos recordar de un dispositivo mvil: Es un pequeo computador, que est diseado para una o un nmero muy reducido de funciones.

Plataformas usadas en los dispositivos mviles Actualmente existen 2 grandes plataformas para programar aplicaciones en dispositivos mviles, una desarrollada por Windows, y otra desarrollada por Sun Mycrosystems. La primera, desarrollada por Windows, se hace llamar .NET framework y permite la escritura del cdigo fuente del programa en diversos lenguajes de programacin, que luego mediante el mismo framework, es traducido en un cdigo intermedio que ser, finalmente, el que se ejecutar en el procesador del dispositivo mvil. La segunda plataforma, se hace llamar J2ME, y es una pequea porcin del lenguaje JAVA, dirigida a dispositivos

Programacin de dispositivos mviles Semana 1

con limitada capacidad de memoria y procesamiento, como lo son los dispositivos mviles. En el resto del curso, nos centraremos nicamente en esta plataforma.

Freeware Versus Licencias Por qu JAVA y no .NET para programacin? La respuesta es corta y sencilla: JAVA es gratis. Al hacer una aplicacin en .NET, esta primero debe escribirse en un lenguaje de programacin como Visual Basic,C#, J#, o cualquier otro. Pero para usarlo en el framework, debemos hacerlo a travs de programas licenciados, como los includos en el paquete de Visual Studio. En contraste con esto, J2ME necesita solo el lenguaje JAVA para ser escrito (que es gratis) y ejecutarlo sobre la plataforma (que tambin es gratis). El hecho de que J2ME sea freeware, frente al .NET que es licenciado, le ha dado un gran impulso; es tal la difusin que ha tenido el J2ME que en la mayora de aplicaciones para dispositivos mviles con pantalla tctil, se lee en un Aplicaciones JAVA como un sinnimo de Aplicaciones para dispositivos mviles. Por el precio y cobertura, escogeremos esta plataforma.

PLATAFORMAS DE JAVA JAVA es un lenguaje de programacin lanzado por la empresa Sun Microsystems a inicios de los aos 90 para controlar de manera robusta electrodomsticos, ya que era independiente de que plataforma ejecutara el cdigo. Tambin se empez a usar en aplicaciones web y en aplicaciones independientes, que fueron llamados Applets

Programacin de dispositivos mviles Semana 1

Debido a la aplicabilidad que ha encontrado este lenguaje de programacin en todos los mbitos, Sun ha desarollado diversas versiones para cada segmento tecnolgico que lo usa. Es as como han aparecido 3 versiones que, si bien usan el mismo lenguaje, no se dirigen a los mismos fines. Dichas versiones son: Java 2 Enterprise edition (J2EE): Software dirigido al entorno empresarial. Se ejecuta no sobre un computador particular, sino sobre una red de computadores, por lo que debe integrar datos que provienen de entornos no compatibles. Debido a que las necesidades

empresariales son diferentes a las de un usuario casero, se ha creado una extensin de JAVA para solucionar las necesidades de los empresarios. Java 2 Standar edition (J2SE): Es la edicin original de JAVA, dirigida principalmente a computadores de uso personal, con herramientas bsicas para desarrollar Applets, y con los aplicativos para realizar interfaces grficas para los usuarios, redes, multimedia, etc. Java 2 Micro edition (J2ME): Esta es la versin de JAVA diseada para ser ejecutada en pequeos dispositivos con limitadas capacidades de memoria y de procesamiento. Nociones Bsicas de J2ME Bueno, queremos programar un dispositivo mvil, y ahora qu? Antes que nada, debemos conocer ciertas generalidades de JAVA para poder empezar a programar. Para poder empezar a crear un cdigo que podamos ejecutar en un dispositivo mvil, debemos entender el proceso de compilacin y las herramientas usadas para tal fin. Es por esto que agruparemos todas esas cosas en un entorno de

Programacin de dispositivos mviles Semana 1

ejecucin. Nuestro entorno de ejecucin debe tener entonces los siguientes elementos: Una mquina virtual Una configuracin Un perfil Unos paquetes opcionales.

Qu son cada uno de estos elementos? Veamos:

Una mquina virtual: Qu es una mquina virtual? Cuando escribimos un cdigo o un programa para determinado sistema, las palabras usadas en el mismo no son entendidas por las mquinas. Es por esto que debe haber un intermediario o traductor, que convierta el cdigo escrito por el programador, en un cdigo que entienda la mquina. Esta es la labor de la mquina virtual. En java, la mquina virtual es llamada Java virtual machine o JVM, y esta mquina presenta una ventaja evidente con respecto a otros lenguajes: Independencia de la plataforma. Por qu? Porque cada dispositivo tiene su propia mquina virtual, lo cual hace que, no importa donde escribamos el cdigo, siempre correr en cualquier plataforma. As, podemos decir que el cdigo es independiente de la plataforma. Otro aspecto importante en las mquinas virtuales es la cuestin del tamao. La JVM es una aplicacin que se debe instalar en el dispositivo a programar, y por tanto, requiere un espacio en memoria. Las mquinas virtuales varan de tamao de acuerdo a su funcionamiento, por lo que JAVA cuenta con diferentes mquinas virtuales para determinados dispositivos.

Programacin de dispositivos mviles Semana 1

De qu depende el tamao de una mquina virtual si todas hacen lo mismo? Ac debemos hacer una anotacin de JAVA como lenguaje, que responde esa pregunta. Este programa, como muchos otros, trabaja con el concepto de libreras o paquetes. Dichas libreras contienen los comandos que se deben usar para hacer determinadas operaciones en el programa. Es as como una biblioteca puede contener todos los comandos para hacer operaciones aritmticas, otro paquete para hacer operaciones lgicas, etc. El traductor debe entender estos comandos al tener esas bibliotecas en su banco de memoria, y es por eso que determinadas JVM tienen tamaos diferentes, porque algunas soportan unas bibliotecas y otras no. La mquina virtual tpica de JAVA mide unos 20Mbytes, lo cual es muy grande para muchos dispositivos. Es por esto que SUN cre su mquina ms pequea para dispositivos muy limitados, llamada la KVM. La K viene de Kilobyte, pues esta mquina pesa alrededor de 40-80 Kbytes. Su tamao la hace muy portable, rpida y pequea, pero al mismo tiempo, limita bastante algunas caractersticas del lenguaje. Esto lo veremos con ms detalle luego. Existe otra mquina virtual, llamada la CVM (Compact virtual machine) que ha sido creada para dispositivos de mayor gama, por lo que soporta las mismas prestaciones que la KVM, aunque posee mayor cantidad de libreras. Configuracin: Una configuracin se define como el nmero mnimo de APIs de Java que permiten desarrollar aplicaciones para diferentes dispositivos. Y, qu es un API? Una API es, simplemente, una interfaz (API: Aplication Programming

Interface). Esta interfaz contiene un conjunto de funciones y procedimientos que le permiten a una biblioteca ser usada por otro programa, siendo una especie de intermediario entre la biblioteca y el programa que usa la aplicacin. Un ejemplo particular es la posibilidad de escribir Hola en la pantalla de un computador. Puede, mediante lenguaje ensablador (el lenguaje que entienden

Programacin de dispositivos mviles Semana 1

todas las mquinas),

indicar 1s y 0s en ciertas partes de la memoria del

computador, y luego volcar esta memoria en la pantalla para observar la palabra deseada. O tambin puede, mediante una aplicacin (API), escribir en html la orden de mostrar la frase Hola, y la misma se podr observar desde cualquier navegador de internet. En JAVA existen 2 configuraciones tpicas, la CDC y la CLDC. Veamos cada una: CDC (Conected device configuration): Es la configuracin dirigida a dispositivos con cierta capacidad computacional. Usa la CVM como mquina virtual, que es muy similar a la mquina virtual usada por J2SE. Los paquetes que posee esta configuracin se pueden observar a continuacin:

Cada uno de estos paquetes son las libreras que permite la CVM usar a travs de las APIs correspondientes.

CLDC (Conected limited device configuration): Es la configuracin dirigida a dispositivos con muy pocas capacidades de procesamiento, y usa la

Programacin de dispositivos mviles Semana 1

mquina KVM. Las libreras admitidas para esta configuracin son las siguientes:

Perfiles: Digamos que tenemos un conjunto de dispositivos que sirven para cocinar. Algunos son muy bsicos tecnolgicamente, con temporizadores y opciones sencillas. Otros, mucho ms complejos, permiten guardar configuraciones propias, como estilos de cocina, temperaturas secuenciales, tipos de platos a cocinar, entre otras cosas. Si bien estos dispositivos tienen un nivel tecnolgico distinto, todos cumplen con un mismo propsito: cocinar. Esto hace que aplicaciones como la posibilidad de conectarse con otros dispositivos, o aplicaciones para dibujo, para tipologas de letras y otras, no sean muy necesarias en este tipo de dispositivos. Esto, en suma es un perfil: Un conjunto de APIs que se encuentran orientados a determinado tipo de

actividades o tareas. A travs de un perfil, se puede identificar la funcionalidad de un dispositivo, pues las APIs que contiene lo hacen pertenecer a un grupo de dispositivos con una aplicacin similar. Mientras que un perfil define las caractersticas de un dispositivo

predeterminado, una configuracin lo hace pertenecer a una familia de dispositivos. Esto significa que cuando nos proponemos la creacin de una aplicacin, tenemos tanto las APIs de perfil como las de configuracin. Ac lo importante es que los perfiles no son aislados, sino que dependen primordialmente de la configuracin. Es decir, una configuracin carece de funcionalidad si no tiene asignado un perfil determinado. Podemos decir

10

Programacin de dispositivos mviles Semana 1

entonces que un perfil es un conjunto de APIs que dotan a una configuracin de una utilidad y una funcionalidad. Este conocimiento nos da las bases para saber cmo es un entorno de ejecucin de Java Micro Edition. Sabemos que cada dispositivo debe tener una mquina virtual en su memoria que traduzca el cdigo JAVA en lenguaje de mquina. Sabemos que determinados dispositivos soportan algunos tipos de mquinas virtuales dependiendo de sus capacidades de hardware. Que los dispositivos con limitadas capacidades de hardware deben usar la KVM por su tamao, y que dispositivos con mayores prestaciones pueden usar la CVM. Ya sabemos tambin que sobre cada mquina virtual se debe incorporar una configuracin especfica: la CDC se configura sobre CVM y la CLDC se configura sobre la KVM. Esto mismo sucede con los perfiles. Hay perfiles que solo pueden ser ejecutados sobre la CDC y otros sobre la CLDC. Veremos entonces cules son estos perfiles y cules son las caractersticas de cada uno de estos perfiles.

Para entender la configuracin de capas del entorno de ejecucin, vale la pena estudiar el siguiente diagrama:

11

Programacin de dispositivos mviles Semana 1

Ahora, veamos con ms detenimiento cules son los perfiles que se ejecutan sobre las configuraciones, y cules son sus caractersticas bsicas

Perfiles de la configuracin CDC:

Foundation profile Personal profile RMI profile.

Perfiles de la configuracin CLDC:

PDA profile Mobile information Device Profile (MIDP)

En este caso es necesario anotar algo: si bien podemos construir un perfil sobre otro perfil en un dispositivo, dicho dispositivo solamente puede tener una configuracin.

Veamos ahora los perfiles:

Foundation profile: Este perfil est dirigido a dispositivos que, aunque usen las caractersticas robustas de la configuracin CDC, no requieren de su interfaz grfica. Es por esto que el conjunto de paquetes que contiene este perfil excluyen los paquetes usados por java para crear ventanas, interfaces grficas, entre otras cosas. Algunos aparatos que usan este perfil son, por ejemplo, los decodificadores de televisin digital. Si alguno de estos aparatos necesitara una interfaz grfica (tambin llamada GUI o graphic user interface) necesitara usar otro

12

Programacin de dispositivos mviles Semana 1

perfil. Los paquetes que contiene este perfil se muestran en la tabla siguiente.

Personal profile: este perfil es el encargado de proporcionar un entorno grfico completo y funcional a un dispositivo. Le proporciona capacidades web, soporte de Applets de java y, sobre todo, es un entorno con soporte grfico AWT, que permite mediante coordenadas, dibujar objetos en la pantalla del dispositivo. Para la ejecucin de este perfil, debe implementarse anteriormente el foundation profile. Los paquetes que contiene la personal profile se muestran en la siguiente grfica:

13

Programacin de dispositivos mviles Semana 1

RMI profile: Este perfil es un subconjunto de un perfil de J2SE, con diversas limitaciones debido a las capacidades computacionales de los dispositivos mviles que implementan la CVM. Debido a que esa configuracin no est en los objetivos del curso entenderla, simplemente comentaremos que la RMI profile es un subconjunto del perfil RMI para J2SE, que necesita el foundation profile, y que no posee las siguientes propiedades del RMI de J2SE:

o Java.rmi.server.disableHTTP. o Java.rmi.activation.port. o Java.rmi.loader.packagePrefix. o Java.rmi.registry.packagePrefix. o Java.rmi.server.packagePrefix.

Ahora veamos con ms detenimiento los perfiles de la configuracin CLDC. Se insta al lector a prestar especial atencin a estos perfiles, en especial al ltimo, pues en l basaremos el estudio del resto de nuestro curso.

14

Programacin de dispositivos mviles Semana 1

PDA profile: Como su nombre lo indica, es un perfil construido para PDAs, sobre todo las de gama baja, como palms con una pantalla y un puntero. En sus inicios, soportaba una resolucin de al menos 20000 pixeles de pantalla y la presencia de un puntero, todo esto sobre CLCD. Actualmente es una configuracin dirigida al manejo de informacin personal, como agendas, y accede al calendario y a la base de datos de contactos para hacer aplicaciones con ella.

Mobile Information Device Profile (MIDP): Este es nuestro perfil ms importante. La primera configuracin definida para J2ME fue la CLDC, y sobre esta, el primer perfil generado fue el MIDP. Esto hace que sea uno de los perfiles ms completo y desarrollado hasta la fecha. Est dirigido a un conjunto de dispositivos con caractersticas muy especficas, que nombraremos a continuacin: o Reducidas capacidades de memoria y de computacin o Capacidades grficas muy limitadas (a lo sumo un display de 96x54 pixeles, sin colores) o Conectividad limitada (aproximadamente de 9600bps, Bits per second o Bits por segundo) o Pocos datos alfanumricos permitidos. o Al menos 128 Kb de memoria no voltil (es decir, memoria que no se borra cuando es apagado el dispositivo, Tambin es conocida como ROM) para instalar los componentes MIDP o Al menos 8Kb de memoria no voltil para datos de aplicaciones o 32 Kb de memoria voltil (aquella que se borra cuando el dispositivo es apagado. Tambin es conocida como RAM) para la pila JAVA.

A partir de estas caractersticas, podemos definir un conjunto de dispositivos entre los cuales podemos incluir a los telfonos mviles, los

15

Programacin de dispositivos mviles Semana 1

buscapersonas, PDAs de gama baja con conectividad, entre otros dispositivos mviles. Este perfil determina las capacidades de los dispositivos en los que est instalado. Estas capacidades estn relacionadas directamente con las APIs que especifica, y son:

Semntica de las aplicaciones Interfaz con el usuario Almacenamiento repetitivo o persistente. Conexin y trabajo entre dispositivos en red. Temporizadores de aplicaciones

Los paquetes que posee esta configuracin se pueden observar en la siguiente tabla:

Al crear una aplicacin usando un API, la llamamos Applets. Estos applets son los usados principalmente como aplicaciones estndares de java, y se pueden descargar de muchas pginas. Si en nuestro computador necesitamos un programa en java que haga determinada labor, usamos o programamos un Applet. En los dispositivos mviles, es diferente. Por similitud, las aplicaciones creadas con MIDP son llamadas MIDlets. Es as como podemos decir que un MIDlet es una aplicacin creada usando el perfil MIDP sobre una configuracin CLCD. Como el

16

Programacin de dispositivos mviles Semana 1

perfil de los dispositivos mviles ms usados (los celulares) cabe en este perfil de java, de ahora en adelante nos centraremos en el perfil MIDP, pero sabiendo que, para crear una aplicacin en otro dispositivo, solo basta con configurar la mquina JAVA, el perfil y la configuracin apropiada, y empezar a programar la aplicacin.

J2ME Y LA COMUNICACIN Una de las caractersticas de los dispositivos mviles que se soportan en la configuracin MIDP es que deben tener una conexin limitada. Es cierto que muchos dispositivos tienen conexin similar a la explicada en el perfil, como los GPS, y algunas palms, pero no se puede negar que los dispositivos que ms provecho le estn sacando a las comunicaciones son los celulares. Esta es otra de las razones por las cuales nos centraremos en el desarrollo de aplicaciones para celulares, porque ltimamente estos dispositivos han tenido un desarrollo vertiginoso en cuanto a aplicaciones que usan la comunicacin (no solo de voz) para mejorar, por ejemplo, la productividad de las empresas, o para simplemente entretener a los usuarios de estos dispositivos. Cules son los protocolos de comunicacin que se han creado y que han sido aplicados en MIDlets de java? Cmo pueden afectar estos protocolos el desarrollo de la tecnologa J2ME? Veamos entonces los protocolos de comunicacin que han surgido para entender el efecto que han tenido sobre la tecnologa JAVA.

Anteriormente, los celulares se haban creado con el nico propsito de comunicar a las personas entre s. Eran una extensin de la telefona inalmbrica, convirtindola en ubicua para todos los individuos. Tal vez la primera aplicacin vital que dio pie a la creacin de toda una gama de protocolos y libreras, fue la agenda telefnica. Tener una agenda, implicaba ingresar datos al celular, que ste los almacenara incluso luego de apagar el

17

Programacin de dispositivos mviles Semana 1

dispositivo, y que el mismo celular los desplegara en pantalla al buscarlos a travs de un navegador. Esta interactividad bsica dio pie a los programadores para pensar en aplicaciones ms complejas que usaran los datos del celular con algn propsito diverso. Agendas con varios telfonos para una misma persona aparecieron, y algunos incluso daban la posibilidad de incluir tonos particulares a cada nombre. Luego surgi la necesidad de comunicacin de datos. Mi celular, con memoria para almacenar contactos, ya tena ms de la necesaria, y por tanto, esta misma se poda aprovechar para personalizar el celular y hacerlo una herramienta mucho ms propia. Sin embargo, De dnde puedo adquirir la informacin que deseo, y sobre todo, cmo puedo conectarme al lugar en el que se encuentra esa informacin? Viendo los operadores de telefona celular esta oportunidad como una posibilidad de ampliar sus negocios, impulsaron la consolidacin de estudios universitarios en redes inalmbricas y protocolos de comunicacin

inalmbricos. Es as como nace la primera tecnologa de comunicacin, la tecnologa WAP. WAP es la sigla de Wireless Application protocol, o protocolo de aplicacin inalmbrica. Este protocolo surgi para dotar a los celulares de la posibilidad de conectarse con un servidor remoto, o varios servidores remotos, con el objeto de intercambiar informacin entre el cliente y servidor. Esta conexin se haca a travs de un elemento que ya haba estado siendo trabajado y actuallizado en computadores de escritorio: Un navegador. Se dot entonces de un navegador bsico al dispositivo mvil con el objeto de conectarlo con el servidor. Obviamente este desarrollo requiri todo un trabajo ms profundo en protocolos de comunicacin, como un traductor entre el cdigo HTTP del internet y las peticiones WAP, la creacin de una puerta de enlace, o Gateway que sirviera como intermediaria entre la red y el celular, entre otras cosas. Aunque WAP fue un gran avance en cuanto a conectividad, no result ser el mejor medio de conexin, ya que la navegacin no era para nada amigable, la introduccin de pginas de internet era demasiado incmoda por el usuario, y el costo de navegacin se daba por tiempo, a lo que se poda

18

Programacin de dispositivos mviles Semana 1

sumar el problema de que, si la red estaba muy saturada y uno estaba conectado, uno no intercambiaba informacin pero la factura de cobro llegaba a la orden del da. Finalmente, podemos anotar que, el costo de la tecnologa era muy elevado para la capacidad de conectividad que tena la plataforma, que en conclusin, no era la mejor.

Aprovechando la plataforma usada para WAP, otra nueva tecnologa tom auge, la SMS. La SMS o Short Message System, es una tecnologa que permite enviar mensajes de texto (o cadenas de caracteres) entre los Gaps o huecos usados para transferir la informacin de la red. Esta comunicacin result ser muy rpida y muy barata en comparacin con la WAP. Tambin, al poder enviar y recibir mensajes de manera rpida, se gestaron las aplicaciones de mensajera instantnea o Chat. Java permiti crear plataformas que aprovecharan la tecnologa SMS para hacer aplicaciones de chat que se instalaron en los telfonos celulares, y que ahora son la base de la comunicacin por Blackberry.

La comunicacin sigui tomando auge, y los operadores implementaron tecnologas que aumentaban tanto la banda como la velocidad de las conexiones, generndose as tecnologas conocidas como generaciones. La generacin 2 y la 2`5 son conocidas por otras 2 nuevas tecnologas de comunicacin, como lo son la GSM y la GPRS

Mientras que GSM es una conexin telefnica que permite el intercambio de datos entre clientes, la comunicacin GPRS se basa en una red nicamente de datos, que mantiene una conexin entre el servidor y el cliente, en la que se corrige el error de WAP, y se le cobra a los navegantes por cada Kbyte transferido, en vez del cobro por tiempo de navegacin. Actualmente nos movemos en plataformas de conexin que se basan en la 3ra generacin, con tecnologas como UMTS, EDGE y 3.5g. En Japn, por ejemplo, se est

19

Programacin de dispositivos mviles Semana 1

probando una plataforma montada sobre la 4ta generacin, que permite la transmisin de datos, voz y video en tiempo real a travs del propio celular, vislumbrando la videoconferencia como la tecnologa del futuro en la comunicacin, y a JAVA como una de las herramientas ms importantes para aprovechar las capacidades de conectividad de las redes de telefona celular. Otras de las tecnologas de comunicacin, no basada en cliente - servidor sino en cliente cliente, son las conocidas como redes PAN (personal area network) y WAN (wireless area network), creadas por tecnologas usadas actualmente por muchos celulares: La tecnologa bluetooth, la Wifi y la IRDa. La bluetooth es una tecnologa que permite transferencias de informacin entre dispositivos mviles en un radio de 0-100 metros, y que permite crear redes adhoc, o redes temporales. La Wifi permite conectar un celular a internet con velocidades similares a las de un computador personal, y finalmente, la IRDa, o red infrarroja, permite transferir informacin entre 2 elementos que posean este protocolo. Todas estas tecnologas favorecen, entonces el uso y distribucin de aplicaciones en JAVA y, sobre todo, MIDlets en JAVA.

OTA Cuando uno necesita descargar una aplicacin para un dispositivo mvil, gracias a las redes existentes en la actualidad, lo primero en que se piensa es en una descarga de internet. Esto debido a que la tecnologa actual se basa en el medio inalmbrico para transmitir contenidos (a pesar de que existan otro tipo de medios de transmisin, como los cableados, y los inalmbricos dirigidos). Este medio que permite garantizar la descarga de contenidos es llamado OTA (Over The Air), es decir, OTA es el nombre que se le da al medio areo necesario para descargar contenido.

20

Programacin de dispositivos mviles Semana 1

A travs de este medio, e bajan los componentes de una aplicacin para dispositivos mviles. Cules son esos componentes? Una aplicacin en J2ME tiene 2 componentes fundamentales para su funcionamiento: Un archivo con extensin .JAR, que contiene la aplicacin como tal, y un archivo .JAD, que contiene algo similar a un manual de la aplicacin, es decir, contiene informacin sobre la misma (No debemos confundir estos archivos. Pongamos un ejemplo: Digamos que a su casa llega un paquete de un familiar suyo, un televisor empacado. El televisor como tal, es equivalente a la aplicacin, y es el archivo .JAR. El manual de instrucciones, que dice la marca del televisor, el tamao, las especificaciones tcnicas y de ms, es el archivo .JAD. A este archivo .JAD se le llama Descriptor). Para descargar los MIDlets Over the air, se debe seguir un proceso organizado de pasos, y se deben tener en cuenta unos requerimientos especficos, tanto funcionales como tcnicos de los dispositivos que llevan a cabo estas descargas. Veamos entonces cules son estos requerimientos.

Requerimientos funcionales Si voy a descargar un MIDlet OTA, mi dispositivo debe tener alguna herramienta que me permita encontrar el MIDlet buscado. Los dispositivos cuentan con varias herramientas para esto. Anteriormente habamos comentado que la comunicacin WAP requera un navegador que sirviera como enlace (Puerta de enlace) entre el celular y la red. Pues este navegador WAP es una de las opciones con las que cuentan los dispositivos mviles para poder descargar los MIDlets. Otros celulares tienen aplicaciones propias, diferente de los navegadores WAP, para identificar y descargar MIDlets (anteriormente, los celulares contaban con una herramienta que le permita al dispositivo conectarse con una base de datos del proveedor de MIDlets, que generalmente era el operador, y a travs de un men en pantalla, descargar las aplicaciones deseadas. Esto ha venido desapareciendo, ya que los celulares actuales poseen altas capacidades y pueden ejecutar navegadores complejos

21

Programacin de dispositivos mviles Semana 1

como el Internet Explorer, Google Chrome, entre otros). Tambin, como lo habamos comentado antes, no todos los medios de transmisin de informacin deben ser inalmbricos o relacionados con el internet. Tambin se pueden usar cables de datos, redes Ad Hoc (BlueTooth), redes infrarojas, etc. Sin embargo, siempre debe haber un software que permita manejar la descarga y el ciclo de vida de los MIDlets. Este software es llamado el gestor de aplicaciones o AMS (Application Management Software)

Lo anterior significa que nuestro dispositivo mvil, encargado de bajar un MIDlet, debe tener la posibilidad de incorporar un AMS que localice el fichero y lo baje a la memoria no voltil del mvil. Qu pasa si, para descargar el fichero se debe usar contrasea? Pues que el gestor de aplicaciones debe permitir enviar informacin a la plataforma donde se encuentra la aplicacin, con el nombre de usuario y la contrasea pedida. Para el envo de informacin OTA, se deben usar protocolos especficos de comunicacin de datos, como HTTP 1.1, pero eso no lo abordaremos en este curso. Basta con saber que la aplicacin debe enviar mensajes si el servidor lo requiere. Sin embargo, con el MIDlet en el dispositivo, no hacemos nada, debemos instalarlo y, luego de eso, ejecutarlo en nuestro celular. Y si nos aburrimos de la aplicacin? Pues el dispositivo mvil debe darnos la posibilidad de eliminarlo. Es as como podemos definir las especificaciones de un dispositivo mvil con perfil MIDP, ya que el mismo debe cumplir los siguientes requerimientos:

a) Localizacin de archivos JAD y JAR en la red a travs del AMS b) Descarga del JAD y el JAR desde un proveedor de servicios, un servidor, u otro dispositivo con la aplicacin (sea por medio inalmbrico o almbrico) c) Envo de nombre de usuario y contrasea en caso de que sea necesario. d) Instalacin del MIDlet descargado.

22

Programacin de dispositivos mviles Semana 1

e) Ejecucin del MIDlet instalado f) Borrado o desinstalacin del MIDlet instalado.

Veamos ahora con ms detenimiento cada uno de estos requerimientos:

a. Localizacin de la Aplicacin Lo primero que un dispositivo mvil debe hacer es localizar un MIDlet a travs de la AMS. A este proceso se le llama descubrimiento. El descubrimiento se realiza cuando el navegador muestra al usuario el enlace en la red que permite bajar el MIDlet deseado, y que una vez seleccionado, permite descargar e instalar el MIDlet. Recordemos que un MIDlet est compuesto por un archivo .JAR y por un .JAD. Si el enlace que encontramos en la red es un .JAR, el archivo y su URL se envan al AMS para empezar el proceso de instalacin del MIDlet. Sin embargo, si el enlace est referido a un archivo .JAD, se deben llevar a cabo los siguientes pasos:

A travs del navegador, se transfiere el archivo .JAD y su direccin URL al AMS, que es el que empieza la instalacin del MIDlet. Ac hay que hacer una anotacin importante: No todos los MIDlets pueden ser instalados en cualquier equipo, por lo que el AMS debe determinar si el MIDlet bajado puede ser tanto instalado como ejecutado de manera satisfactoria en el dispositivo mvil.

El descriptor, escrito en JAVA, debe ser entendido por el AMS, que no necesariamente es una aplicacin de JAVA. Es por esto que para ser entendido, debe ser traducido a formato Unicode antes de ser usado. Veamos algo en este punto: un archivo .JAD es un conjunto de datos relacionados con el .JAR, por lo que podemos decir que el .JAD es una

23

Programacin de dispositivos mviles Semana 1

clase. Todas las clases tienen atributos de clase, y estos atributos, en la .JAD, deben ser compresibles de acuerdo a la sintaxis del perfil MIDP. Como el perfil MIDP es el que corre el MIDlet, los atributos requeridos por este perfil deben estar presentes en el .JAD para que pueda usarlo. Cuando la direccin llega a la AMS, se inicia la instalacin del MIDlet. Sin embargo, por seguridad, el AMS debe tener la opcin de indicarle al usuario si de verdad desea instalar dicha aplicacin. Y no solo eso, debe estar en capacidad de saber si existe una versin similar o desactualizada del mismo MIDlet instalado en el equipo, o si ste tiene problemas para instalar MIDlets por falta de memoria. De esta manera, el AMS puede ejecutar una herramienta para liberar memoria, e instalar la aplicacin correspondiente.

b. Instalacin del MIDlet

Ya tenemos el .JAD en nuestro AMS con la respectiva direccin URL de donde se descargar el MIDlet para ser instalado, ahora Qu sigue? La etapa de instalacin. Esta etapa no es intervenida por el usuario, ya que la genera internamente el dispositivo. Sin embargo, se deben tener en cuenta varios mensajes que pueden salir en el proceso de chequeo que se genera al instalar el MIDlet. Primero, debemos entender que la instalacin de un MIDlet comprende el estado en el que el MIDlet es descargado y puede ser usado por el cliente. Tambin debemos saber que un MIDlet puede estar dentro de un paquete, y que este paquete puede tener diversidad de MIDlets internos. Es decir, cuando tenemos la direccin URL y deseamos bajar una aplicacin, esta puede estar compuesta de varios MIDlets. El AMS debe indicar esta situacin y debe darle la posibilidad al usuario de cancelar el proceso de instalacin en cualquier momento, dejando al dispositivo como se encontraba antes de pasar por el proceso de instalacin. Qu hace el AMS cuando se procede a instalar una

24

Programacin de dispositivos mviles Semana 1

aplicacin? Verificar si el paquete contiene varios MIDlets internos e indicarle al usuario el proceso de instalacin de los componentes, el nmero de componentes a instalar, y la opcin de cancelar la instalacin. Tambin debe llevar a cabo las siguientes actividades: Si el archivo que se descarg inicialmente fue el .JAD, la URL de la que se descarga el MIDlet, contenida ahora por el AMS (recordemos que ya hallamos la aplicacin a instalar, y en ese proceso, se le asigna una URL al AMS para la instalacin de la aplicacin) debe coincidir exactamente con la URL que posee el .JAD Si el servidor pide nombre de usuario y contrasea para autentificar al usuario, el AMS debe enviar las credenciales correspondientes (los datos correspondientes) El MIDlet debe ser chequeado para saber si se puede instalar en el dispositivo mvil. Este chequeo se extiende a todo el proceso de instalacin, ya que pueden surgir una serie de errores que no permitan que el MIDlet se instale. El AMS debe indicar todos estos errores durante el proceso de instalacin de la aplicacin. Cules son esos errores? Vemoslos: o Si no hay memoria suficiente para instalar el MIDlet, se devuelve el cdigo de estado 901 o Si el .JAR no se encuentra disponible en la URL que contiene el JAD, , se develve el cdigo 907 o Si al descargarse el .JAR, este no coincide con el descrito en el .JAD, se devuelve el cdigo 904 o Si no se pueden extraer los archivos necesarios para instalar el .JAR, se devuelve el cdigo 907. o Si los atributos del .JAD no coinciden con los que tiene el .JAR, se devuelve el cdigo de error 905

25

Programacin de dispositivos mviles Semana 1

o Si no se puede llevar a cabo la autenticacin del usuario (nombre de usuario y contrasea) se devuelve el error 909 o Si falla por un motivo diferente al cualquiera de los anteriores, debe devolver el error 911. o Si mientras se descarga el MIDlet para instalarlo, se pierde la conexin a internet, debe devolver el error 903

La instalacin finaliza en 2 casos: cuando tenemos el MIDlet exitosamente instalado en nuestro dispositivo mvil, o cuando ha ocurrido un error irrecuperable y no se ha podido instalar la aplicacin.

Puede darse el caso en que estemos instalando un MIDlet y ya tengamos una versin previa del mismo. En ese caso, decimos que estamos actualizando el MIDlet correspondiente, ya que estamos pasando de una versin anterior a una versin ms reciente del mismo. El AMS debe indicarle al usuario si la versin que desea instalar es menor, igual o mayor a la instalada en el dispositivo, y debe obtener verificacin del usuario a la hora de ser instalada. Todo programa a instalar posee una firma digital que indica su autenticidad y su validez como archivo oficial y no modificado por terceros. Los archivos con firmas digitales priman sobre aquellos que no la tengan, y nunca un dispositivo mvil debe permitir instalar un MIDlet sin firma como reemplazo de una aplicacin que si la tenga.

c. Ejecucin del MIDlet

Vamos a ejecutar el MIDlet en nuestro equipo. Al momento de ejecutarlo, lo primero que se debe llevar a cabo es la carga de las clases referentes al perfil CLDC y la configuracin MIDP. Recordemos que estamos cargando una aplicacin de JAVA en un dispositivo mvil, y esto requiere tanto el perfil como la configuracin para poder ser ejecutada. Es por esta razn que un dispositivo

26

Programacin de dispositivos mviles Semana 1

debe tenerlas incluidas, porque si no las posee, no puede ejecutar ningn MIDlet. Y recordemos tambin que dijimos que un paquete o una aplicacin pueden tener diversos MIDlets. En caso de tenerlos, el dispositivo debe permitirle al usuario escoger el MIDlet que desea ejecutar.

d. Eliminacin del MIDlet.

El proceso final que se puede llevar a cabo con un MIDlet es su eliminacin. Para hacerlo, el usuario debe elegir la posibilidad de borrar la aplicacin seleccionada. Cualquier cosa que ocurra en el proceso de instalacin debe ser indicada al poseedor del dispositivo mvil, y en caso de que la aplicacin tenga varios MIDlets incorporados, debe indicrsele al usuario que todos quedarn eliminados.

Hemos visto hasta ahora todos los pasos por los que un MIDlet puede pasar a travs de un dispositivo mvil. Ahora, veremos cules son las herramientas que se necesitan para construir los MIDlets a disear, pero antes, debemos ver cul es el proceso de creacin general de un MIDlet.

Proceso de creacin de un MIDlet.

Todos los MIDlets a desarrollar llevan a cabo casi el mismo proceso de creacin, con algunos casos particulares. Veremos entonces cuales son los pasos que hacen parte de ese proceso:

1. Desarrollo: en este estado, creamos el cdigo en JAVA de nuestro MIDlet. 2. Compilacin: Nuestro cdigo es traducido a lenguaje de mquina a travs de un compilador J2SE

27

Programacin de dispositivos mviles Semana 1

3. Preverificacin: Examinamos el cdigo de JAVA para observar si no se viola ninguna restriccin de seguridad de la plataforma en la cual se va a ejecutar (J2ME). 4. Empaquetamiento: Se crea el archivo .JAR y el .JAD de nuestra aplicacin. 5. Ejecucin: Se monta el MIDlet en un simulador o en un dispositivo mvil para probar su funcionamiento. 6. Depuracin: Al observar la ejecucin del MIDlet, pueden observarse fallos en su funcionamiento, la depuracin consiste en eliminar esos fallos para corregir nuestra aplicacin.

El empaquetamiento y la preverificacin, al evaluarse violaciones de seguridad en la plataforma J2ME y crearse archivo .JAR y .JAD, son pasos exclusivos en el desarrollo de MIDlets. El resto de pasos, son generales para la creacin de cualquier aplicacin en cualquier otro programa o lenguaje de programacin

HERRAMIENTAS DE DESARROLLO

Cmo se crea un MIDlet?, bsicamente a travs de 2 formas:

A travs de lneas de comando. Esto significa que copiaremos el cdigo sin ningn tipo de ayuda adicional, aparte de la prestada por el compilador para traducir el cdigo.

A travs de un entorno visual. Esto implica el uso de diversas herramientas que facilitan la creacin de MIDlets, como veremos ms adelante

28

Programacin de dispositivos mviles Semana 1

En nuestro caso, usaremos un elemento visual para ejecutar nuestros MIDlets. Este elemento se llama Dispositivo MID (Mbile information device). Esto significa que no ejecutaremos nuestros cdigos directamente en mquinas fsicas, sino en un simulador que ejecutar nuestra aplicacin.

El emulador a usar puede ser tanto un dispositivo genrico como un modelo MID especfico (Por ejemplo, si queremos desarrollar aplicaciones JAVA para el Iphone, debemos bajar un emulador que nos permita ejecutar nuestras aplicaciones en este dispositivo.)

En este punto, entraremos de lleno en la forma de crear un MIDlet, y nos iremos por ambas formas de construccin, abordando una primero, y luego la otra. Se debe tener muy en cuenta el proceso de creacin de un MIDlet, porque llevaremos a cabo manualmente cada uno de esos pasos. En este caso, abordaremos el mtodo de lnea de comando

INSTALACIN DE COMPONENTES.

Qu componentes necesitamos para el desarrollo en lnea de comando? Requerimos bsicamente los siguientes:

a) Un editor de texto para copiar el cdigo del MIDlet. b) Un compilador estndar de JAVA. El compilador es proporcionado gratuitamente por JAVA en la siguiente direccin: http://java.sun.com/products/archive/j2se/1.4.1_07/ c) Las APIs de la configuracin CLDC y del perfil MIDP que se pueden descargar de la pgina

29

Programacin de dispositivos mviles Semana 1

http://www.oracle.com/technetwork/java/javame/downloads/index. html

En el enlace anterior del SDK de JAVA, bajamos el archivo j2sdk-1_4_1_04windows-i586.exe (pueden variar las versiones. Actualmente existe una versin mucho ms moderna, pero trabajaremos con esta) y lo instalamos. Suponemos en este momento que, como se pide en los requerimientos del curso, el aprendiz tenga conocimientos en JAVA y manejo de computadores de manera intermedia, ya que se llevar a cabo un procedimiento que, de no realizarse correctamente, puede desconfigurar el acceso a algunos programas del sistema operativo.

NOTA: Si no posee conocimientos de JAVA y/o de computadores, ASESRESE DE ALGUIEN QUE SI LOS TENGA para llevar a cabo lo siguiente.

Cuando descarguemos el archivo, le damos doble click y lo instalamos en una carpeta especfica del computador. Esta ruta en la que fue instalado, debe copiarse en un documento de texto o en el block de notas. Luego de instalado el programa, aadiremos esta ruta a nuestro Path.

30

Programacin de dispositivos mviles Semana 1

Qu es el Path? Esta es una variable del sistema que contiene la ruta de acceso a los programas que el usuario del computador usa con ms frecuencia. Es por esto que a veces podemos escribir el programa que necesitemos en la barra de direcciones, y Windows inmediatamente lo encuentra, gracias a la informacin del Path. Existe otra variable, llamada el Classpath, que contiene la informacin de donde el JDK (Java development kit, o kit de desarrollo de JAVA) o en nuestro caso el SDK, debe buscar los archivos a ejecutar o compilar. Necesitamos cambiar nuestro Path para poder ejecutar el SDK de JAVA de manera correcta. Cmo lo cambiamos? Realizando los siguientes pasos: a. Abrimos el Smbolo del sistema, al que se puede acceder por la carpeta Accesorios presente en la barra de inicio de Windows (Inicio/todos los programas/accesorios/smbolo del sistema)

31

Programacin de dispositivos mviles Semana 1

b. Escribimos lo siguiente: Path, quedando ms o menos as C:/ path Este comando te muestra los accesos directos presentes en la variable. c. Buscamos el archivo autoexec.bat y lo abrimos con un procesador de texto (Block de notas o Wordpad), poniendo la direccin que guardamos anteriormente donde instalamos el SDK, separada por un ;. Es recomendable ponerlo al inicio de las direcciones, para evitar conflictos con programas que queramos ejecutar en el SDK y que se llamen igual que algunos contenidos en las otras direcciones del Path. d. Descargamos los API de la configuracin MIDP y CLDC, las descomprimimos en una carpeta especfica. Esta ruta tambin debe agregarse al Path e. Creamos 2 variables de entorno a travs del comando SET en el smbolo del sistema. Una de ellas se debe llamar JAVA_HOME, con el valor de la direccin donde se instal el SDK, y otra llamada MIDP_HOME, con el valor de la ruta donde se descomprimieron las APIs correspondientes.

Para saber si llevamos a cabo correctamente estos pasos, hacemos lo siguiente: Abrimos el Smbolo del sistema y escribimos Java Version Y debe aparecer algo similar a lo siguiente:

32

Programacin de dispositivos mviles Semana 1

Luego escribimos: Midp version Viendo algo como lo siguiente

Con esto claro, procedemos a llevar a cabo las fases de desarrollo de una MIDlet por lnea de comando

33

Programacin de dispositivos mviles Semana 1

Fases de Desarrollo

Recordemos que el desarrollo de un MIDlet tiene varias partes, como lo vimos en el apartado superior. Veamos cmo se llevan a cabo esos pasos a travs de desarrollo en lnea de comando.

Desarrollo de cdigo: Ac usamos un editor de texto cualquiera. En el momento en que terminemos de escribir nuestro cdigo en el archivo de texto, lo guardaremos con el nombre de la clase principal y con la extensin .java

Compilacin: En lnea de comandos (smbolo del sistema), buscamos la carpeta en la que guardamos nuestro archivo .java, para crear el archivo .class (es decir, el archivo compilado). Luego de encontrar esta carpeta, escribimos lo siguiente: javac bootclasspath c:\midp2.0fcs\classes <fuente>.java

Donde el archivo <fuente>.java fue el que guardamos anteriormente en el procesador de texto.

Preverificacion: En este caso, nos movemos ahora donde qued la clase que compilamos anteriormente, y escribimos lo siguiente: preverify classpath c:\midp2.0fcs\classes <fuente>.java

34

Programacin de dispositivos mviles Semana 1

Esta preverificacin genera un fichero .class en la carpeta /output/, es decir en la carpeta llamada output encontrada en el lugar donde se instal el SDK.

Empaquetamiento: En esta etapa, crearamos el archivo .JAR y .JAD de la clase compilada. As, crearemos el paquete definitivo que ejecutaremos sobre nuestra MIDlet.

Anteriormente hemos dicho que el .JAR es el archivo que contiene los elementos que conforman el MIDlet, y que el .JAR es el archivo descriptor de la aplicacin. Esto significa que el .JAD describe una aplicacin, y no precisamente un MIDlet (aunque pueden haber aplicaciones de un solo MIDlet), pero generalmente una aplicacin posee mltiples MIDlets. A estos mltiples MIDlets se les llama Suite de MIDlets. Describiremos el proceso para empaquetar un solo MIDlet, extensivo para una suite.

Antes que nada, debemos conocer la escructura de un archivo .JAR para saber cmo empaquetarlo. Un archivo .JAR tiene varios componentes, a saber:

Un archivo manifiesto (Manifest), describiendo el contenido del archivo JAR

Las clases de JAVA que conforman el MIDlet propiamente dicho Los archivos de los recursos que usa el MIDlet

Veremos las caractersticas del archivo manifiesto.

35

Programacin de dispositivos mviles Semana 1

Archivo manifiesto: creacin.

El archivo manifiesto describe el contenido del archivo .JAR, y no es obligatorio crearlo. Se puede crear a travs de un procesador de texto simple, y su estructura de atributos es de la forma atributo:valor. Un archivo manifiesto tiene la siguiente forma en modo texto:

MIDlet-1: Saludo, saludo.jpg, Saludo MIDlet-Name: Hola MIDlet-Vendor: SENA MIDlet-Version: 1.0 Microedition-Configuration: CLDC-1.0 Microedition-Profile: MIDP-1.0

En la siguiente tabla podemos observar los atributos que debe tener el archivo manifiesto:

Y en la siguiente tabla podemos observar otros atributos adicionales que puede tener el archivo.

36

Programacin de dispositivos mviles Semana 1

Digamos que queremos crear una suite de MIDlets con varios MIDlets includos. Para crear el archivo manifiesto de una suite de MIDlets, usamos el siguiente atributo para definir cada uno de los MIDlets:

MIDlet-1: Saludo, saludo.jpg, Saludo MIDlet-2: Despedida, adios.png, Despedida

Y es as como, mediante modo texto, creamos nuestro archivo manifiesto. Proseguimos entonces con el .JAR

Archivo .JAR, creacin

Para crear el archivo .JAR, nos movemos nuevamente a lnea de comandos y escribimos lo siguiente: jar cmf <archivo manifiesto> <nombrearchivo>.jar -C <clases java> . C <recursos>

Con esta lnea de comando, y reemplazando cada uno de los comodines (los nombres encerrados en < >) por su correspondiente elemento, creamos nuestro archivo .JAR. Ahora basta con crear el archivo .JAD

Archivo .JAD, creacin

37

Programacin de dispositivos mviles Semana 1

Este archivo es usado por el AMS o gestor de aplicaciones para verificar descargas, nombres de archivo, elementos del archivo manifiesto, autenticacin, entre otros. Este archivo es opcional, pero si es creado, debe contener los siguientes elementos de manera obligada:

Se le puede, como al archivo manifiesto, incluir atributos opcionales. Estos atributos se ven en la siguiente tabla:

Existen otros atributos adicionales, que el desarrollador de a suite puede agregarle al archivo .JAD, que sirven para crear aplicaciones adicionales y de mayor complejidad. Estos atributos pueden ser investigados por el estudiante en la seccin de documentos de apoyo.

38

Programacin de dispositivos mviles Semana 1

Ejecucin-depuracin: La ejecucin, como se dijo anteriormente, se debe llevar a cabo sobre un simulador. El simulador que nosotros usaremos se llama Wireless Toolkit 2.0, y la explicaremos en breve. La depuracin solo es cuestin de observacin y de reescritura del cdigo para volver a compilarlo, preverificarlo y empaquetarlo.

Llegando hasta este punto, conocemos la forma general de crear un MIDlet en JAVA. De ac en adelante, veremos herramientas que nos facilitan enormemente la labor de creacin de MIDlets, como lo son los programas de desarrollo en entorno visual.

DESARROLLO EN ENTORNOS VISUALES

Existen una gran variedad de aplicaciones que pueden ayudarnos a crear MIDlets de una manera ms rpida y eficaz. Nosotros veremos 2 de estas herramientas, las cuales explicaremos a continuacin:

Sun One Studio Mobile Edition: Esta herramienta es un entorno de desarrollo completamente integrado, similar al Sun One, pero con un emulador que nos permite ver la ejecucin de nuestro MIDlet. Aparte de eso, posee las APIs propias de la configuracin CLDC y el perfil MIDP. Actualmente existe la herramienta

J2ME wireless toolkit V2.0: Es un emulador que recibe las clases JAVA creadas en el desarrollo de lnea de comandos y nos permite ver el MIDled ejecutndose. Actualmente existe la SUN JAVA Wireless toolkit, que reemplaza la J2ME Wireless toolkit.

39

Programacin de dispositivos mviles Semana 1

Ambas plataformas, luego de la integracin entre ORACLE y SUN, fueron fusionadas en la herramienta Java Plataform Micro Edition Software Development Kit el cual se puede descargar de la siguiente direccin:

http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp139759.html

Para esta aplicacin se debe haber instalado el JAVA SE Development Kit JDK, que es la versin actualizada del JAVA 2 SDK instalado anteriormente.

Esta versin actualizada se puede descargar de la siguiente direccin:

http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSource SiteId=otncn

Desarrollo de aplicaciones en el JAVA plataform micro edition software development kit

Una vez instalado el Sun One Studio Mobile Edition, nos aparecer un entorno basado en ventanas donde podremos desarrollar y compilar nuestro MIDlet.

Esta herramienta da una gran cantidad de caractersticas, como:

Editor de texto integrado, en el cual se puede escribir el cdigo de nuestra aplicacin.

Compilacin inmediata del cdigo, gracias a que la plataforma posee todas las libreras necesarias para llevar a cabo este trabajo.

40

Programacin de dispositivos mviles Semana 1

Preverificacin realizada de manera directa, igual que la compilacin.

Posibilidad de empaquetar el MIDlet en un solo paquete o hacer una suite de MIDlets.

Nos permite emular los MIDlets en plataformas virtuales o MIDs, ya que al estar integrada la plataforma de SUN y la de J2ME, contiene integrados los simuladores necesarios y apropiados para llevar a cabo la visualizacin de los MIDlets en ejecucin.

Es esta entonces una herramienta completamente global, que nos permite crear MIDlets de manera fcil y rpida, sin tener que usar los pasos anteriores explicados en lnea de comandos.

41

Programacin de dispositivos mviles Semana 1

Es necesario que el aprendiz explore esta plataforma y lea los tutoriales presentes en la pgina de SUN, ya que si bien la herramienta nos permitir crear MIDlets, no se abarcarn sus capacidades, ya que no es objetivo del curso.

Otros emuladores

Cuando creamos un MIDlet, queremos que esta aplicacin sea soportada por uun amplio nmero de dispositivos. Es por esto que cada fabricante de dispositivos mviles, en sus pginas de desarrolladores, posee MIDs que permiten probar nuestros MIDlest en sus plataformas. Es cuestin del aprendiz buscar plataformas adicionales para simular aplicaciones, o usar los MIDs incorporados en el software explicado en el apartado superior.

42

Programacin de dispositivos mviles Semana 1

También podría gustarte