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. "ara responder a la pregunta de #$qu son%& solo debemos mirar a nuestro alrededor. 'elulares, (pods, (phones, )lac*berrys, (pad, 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 caracter+stica de un dispositivo mvil! Su portabilidad. Son aparatos que se usan para comunicarnos, y que son portables, que pueden llevarse de manera cmoda. ,sta comunicacin se da porque para estos dispositivos es posible conectarse a una red, sea de datos, o de telefon+a, de manera permanente o intermitente. ,sta conexin implica tambin cierta capacidad de procesamiento de informacin en el tiempo (al menos la que se env+a y se recibe de la red, cierta capacidad de almacenamiento de la misma (sino, no ser+a posible su procesamiento en el tiempo, $-nde la tendr+amos mientras la vamos procesando% y aunque su funcin es la de la comunicacin, pueden prestar servicios diferentes a este. "odemos resumir entonces que un dispositivo mvil es #un aparato portable, con cierta capacidad de procesamiento y memoria, que tiene un acceso Programacin de dispositivos mviles Semana 1 1 relativo a una red y cuyo propsito es el de comunicar principalmente, aunque puede tener alg.n otro propsito.& Si, hasta un relo/ que se conecte a internet es un dispositivo mvil. Si mi 0"1 lo hace, o se comunica con otro 0"1, tambin lo es. "ero mi computador port2til, 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 3an aparecido una gran variedad de dispositivos mviles en el mercado, lo que ha hecho necesaria la aparicin de est2ndares que agrupen la definicin de dispositivos mviles. ,stos est2ndares fueron definidos de la siguiente manera. 4. -ispositivo mvil de datos limitados! Son aquellos dispositivos que son peque5os y que poseen una pantalla tipo texto (sin gr2ficas, monocrom2tica. ,stos dispositivos generalmente tienen solo los servicios de S0S (mensa/er+a y 67" (6ireless acces protocol, o portocolo de acceso a internet. 8. -ispositivo mvil de datos b2sico! -ispositivos con una pantalla mediana, y con la posibilidad de navegar a travs de un cursor por un men. visuali9ado en la pantalla. "restan los mismos servicios que el dispositivo limitado, m2s otros como e:mail y un navegador b2sico de internet. ,n este grupo se pueden incluir los blac*berrys y los smartphones o telfonos inteligentes. 1. -ispositivos mviles de datos me/orados! Son aquellos dispositivos que poseen las mismas funcionalidades que el b2sico, pero poseen un sistema operativo autnomo y aplicaciones comple/as como #office mvil&, entre otros. 7unque existen muchas variedades de dispositivos mviles, nos Programacin de dispositivos mviles Semana 1 3 concentraremos en estos 1 grupos, e iremos cerrando la brecha mientras veamos las aplicaciones m2s comunes, hasta llegar a un dispositivo ob/etivo. Programacin de dispositivos mviles Semana 1 4 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 caracter+sticas de dichos productos pueden reducirse a un con/unto determinado de estructuras que permiten prestar los servicios anteriormente mencionados. $'u2les son estas caracter+sticas% Si bien existen muchas, solo nombraremos las que consideramos importantes para el desarrollo de nuestro curso! "antalla! ;odo dispositivo mvil tiene una pantalla. ,sta es la #puerta de salida& del aparato, la forma en la que se comunica con nosotros. Y estas pantallas pueden posibilitar solo la visuali9acin de letras, im2genes sencillas, men.s, y en los .ltimos a5os, fotos, videos y todo tipo de contenido digital. (ncluso, se han visto pantallas t2ctiles que requieren un nuevo modelo de programacin de aplicaciones, que son muy avan9adas para este curso. ;eclas! ,stas son las #entradas del dispositivo&, por donde accedemos a sus servicios o informacin. ,n los dispositivos cl2sicos, las teclas son un teclado numrico con algunas otras teclas de control. ,n casos actuales, las teclas han crecido hasta incluir un teclado alfanumrico completo (se le llama #teclado q<erty&, y en los dispositivos m2s modernos, ha desaparecido para integrarse con la pantalla misma. 'onexin a red! "ara transferir la informacin que se procesa a otro dispositivo o a un operador, el aparato debe tener la posibilidad de Programacin de dispositivos mviles Semana 1 5 conectarse a una red de datos, sea celular, de internet por demanda, de <ifi, o de corto alcance. Programacin de dispositivos mviles Semana 1 6 0emoria! "ara almacenar determinados datos (sean n.meros de telfono, nombres, o incluso los propios datos del programa que dirige el dispositivo, es necesaria una memoria en la que se puedan locali9ar para usarlos. ,stas memorias pueden variar, desde valores realmente peque5os (= o > ?bytes hasta incluso varios @igabytes con tar/etas de expansin (,xisten (phones con memorias de 4> @bytes, y este valor seguir2 aumentando con el tiempo 'apacidad de procesamiento! Si el dispositivo no puede procesar los datos que tiene guardados en la memoria, dif+cilmente podr2 prestar servicios, o no lo har2 en absoluto. ,s por esto que los dispositivos, independiente de su uso, siempre tendr2n 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 espec+fica&, ya que tiene puertos de entrada, de salida, memoria y capacidad de procesamiento. ,sta es la imagen central que debemos recordar de un dispositivo mvil! ,s un peque5o computador, que est2 dise5ado para una o un n.mero muy reducido de funciones. Plata!ormas "sadas e# los dispositivos mviles 7ctualmente existen 8 grandes plataformas para programar aplicaciones en dispositivos mviles, una desarrollada por 6indo<s, y otra desarrollada por Sun 0ycrosystems. La primera, desarrollada por 6indo<s, se hace llamar #.A,; frame<or*& y permite la escritura del cdigo fuente del programa en diversos lengua/es de programacin, que luego mediante el mismo frame<or*, es traducido en un cdigo intermedio que ser2, finalmente, el que se e/ecutar2 Programacin de dispositivos mviles Semana 1 7 en el procesador del dispositivo mvil. La segunda plataforma, se hace llamar #B80,&, y es una peque5a porcin del lengua/e B7C7, dirigida a dispositivos Programacin de dispositivos mviles Semana 1 8 con limitada capacidad de memoria y procesamiento, como lo son los dispositivos mviles. ,n el resto del curso, nos centraremos .nicamente en esta plataforma. $ree%are Vers"s Lice#cias $"or qu B7C7 y no .A,; para programacin% La respuesta es corta y sencilla! B7C7 es gratis. 7l hacer una aplicacin en .A,;, esta primero debe escribirse en un lengua/e de programacin como Cisual )asic,'D, BD, o cualquier otro. "ero para usarlo en el frame<or*, debemos hacerlo a travs de programas licenciados, como los inclu+dos en el paquete de Cisual Studio. ,n contraste con esto, B80, necesita solo el lengua/e B7C7 para ser escrito (que es gratis y e/ecutarlo sobre la plataforma (que tambin es gratis. ,l hecho de que B80, sea free<are, frente al .A,; que es licenciado, le ha dado un gran impulsoE es tal la difusin que ha tenido el B80, que en la mayor+a de aplicaciones para dispositivos mviles con pantalla t2ctil, se lee en un #7plicaciones B7C7& como un sinnimo de #7plicaciones para dispositivos mviles&. "or el precio y cobertura, escogeremos esta plataforma. PL&T&$O'M&S DE (&V& B7C7 es un lengua/e de programacin lan9ado por la empresa Sun 0icrosystems a inicios de los a5os FG para controlar de manera robusta electrodomsticos, ya que era independiente de que plataforma e/ecutara el cdigo. ;ambin se empe9 a usar en aplicaciones <eb y en aplicaciones independientes, que fueron llamados #7pplets& Programacin de dispositivos mviles Semana 1 9 -ebido a la aplicabilidad que ha encontrado este lengua/e de programacin en todos los 2mbitos, Sun ha desarollado diversas versiones para cada segmento tecnolgico que lo usa. ,s as+ como han aparecido 1 versiones que, si bien usan el mismo lengua/e, no se dirigen a los mismos fines. -ichas versiones son! Bava 8 ,nterprise edition (B8,,! Soft<are dirigido al entorno empresarial. Se e/ecuta no sobre un computador particular, sino sobre una red de computadores, por lo que debe integrar datos que provienen de entornos no compatibles.-ebido a que lasnecesidades empresariales son diferentes a las de un usuario casero, se ha creado una extensin de B7C7 para solucionar las necesidades de los empresarios. Bava 8 Standar edition (B8S,! ,s la edicin original de B7C7, dirigida principalmente a computadores de uso personal, con herramientas b2sicas para desarrollar 7pplets, y con los aplicativos para reali9ar interfaces gr2ficas para los usuarios, redes, multimedia, etc. Bava 8 0icro edition (B80,! ,sta es la versin de B7C7 dise5ada para ser e/ecutada en peque5os dispositivos con limitadas capacidades de memoria y de procesamiento. Nocio#es )*sicas de (+ME )ueno, queremos programar un dispositivo mvil, $y ahora qu% 7ntes que nada, debemos conocer ciertas generalidades de B7C7 para poder empe9ar a programar. "ara poder empe9ar a crear un cdigo que podamos e/ecutar en un dispositivo mvil, debemos entender el proceso de compilacin y las herramientas usadas Programacin de dispositivos mviles Semana 1 10 para tal fin. ,s por esto que agruparemos todas esas cosas en un #entorno de Programacin de dispositivos mviles Semana 1 11 e/ecucin&. Auestro entorno de e/ecucin debe tener entonces los siguientes elementos! Hna m2quina virtual Hna configuracin Hn perfil Hnos paquetes opcionales. $Iu son cada uno de estos elementos% Ceamos! Hna m2qu ina virtua l! $Iu es una m2quina virtual% 'uando escribimos un cdigo o un programa para determinado sistema, las palabras usadas en el mismo no son entendidas por las m2quinas. ,s por esto que debe haber un #intermediario& o #traductor&, que convierta el cdigo escrito por el programador, en un cdigo que entienda la m2quina. ,sta es la labor de la m2quina virtual. ,n /ava, la m2quina virtual es llamada #Bava virtual machine& o BC0, y esta m2quina presenta una venta/a evidente con respecto a otros lengua/es! (ndependencia de la plataforma. $"or qu% "orque cada dispositivo tiene su propia m2quina virtual, lo cual hace que, no importa donde escribamos el cdigo, siempre correr2 en cualquier plataforma. 7s+, podemos decir que el cdigo es #independiente& de la plataforma. Jtro aspecto importante en las m2quinas virtuales es la cuestin del tama5o. La BC0 es una aplicacin que se debe #instalar& en el dispositivo a programar, y por tanto, requiere un espacio en memoria. Las m2quinas virtuales var+an de tama5o de acuerdo a su funcionamiento, por lo que B7C7 cuenta con Programacin de dispositivos mviles Semana 1 12 diferentes m2quinas virtuales para determinados dispositivos. Programacin de dispositivos mviles Semana 1 13 $-e qu depende el tama5o de una m2quina virtual si todas hacen lo mismo% 7c2 debemos hacer una anotacin de B7C7 como lengua/e, que responde esa pregunta. ,ste programa, como muchos otros, traba/a con el concepto de #librer+as& o paquetes. -ichas librer+as contienen los comandos que se deben usar para hacer determinadas operaciones en el programa. ,s as+ como una biblioteca puede contener todos los comandos para hacer operaciones aritmticas, otro paquete para hacer operaciones lgicas, etc. ,l traductor debe #entender& estos comandos al tener esas bibliotecas en su banco de memoria, y es por eso que determinadas BC0 tienen tama5os diferentes, porque algunas soportan unas bibliotecas y otras no. La m2quina virtual t+pica de B7C7 mide unos 8G0bytes, lo cual es muy grande para muchos dispositivos. ,s por esto que SHA cre su m2quina m2s peque5a para dispositivos muy limitados, llamada la ?C0. La #?& viene de #?ilobyte&, pues esta m2quina pesa alrededor de KG:LG ?bytes. Su tama5o la hace muy portable, r2pida y peque5a, pero al mismo tiempo, limita bastante algunas caracter+sticas del lengua/e. ,sto lo veremos con m2s detalle luego. ,xiste otra m2quina virtual, llamada la 'C0 ('ompact virtual machine que ha sido creada para dispositivos de mayor gama, por lo que soporta las mismas prestaciones que la ?C0, aunque posee mayor cantidad de librer+as. Co#!i,"raci#- Hna configuracin se define como el n.mero m+nimo de 7"(s de Bava que permiten desarrollar aplicaciones para diferentes dispositivos. Y, $qu es un 7"(% Hna 7"( es, simplemente, una interfa9 (7"(! 7plication "rogramming (nterface. ,sta interfa9 contiene un con/unto 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. Programacin de dispositivos mviles Semana 1 14 Hn e/emplo particular es la posibilidad de escribir #3ola& en la pantalla de un computador. "uede, mediante lengua/e ensablador (el lengua/e que entienden Programacin de dispositivos mviles Semana 1 15 todas las m2quinas, indicar 4s y Gs en ciertas partes de la memoria del computador, y luego volcar esta memoria en la pantalla para observar la palabra deseada. J tambin puede, mediante una aplicacin (7"(, escribir en html la orden de mostrar la frase #3ola&, y la misma se podr2 observar desde cualquier navegador de internet. ,n B7C7 existen 8 configuraciones t+picas, la '-' y la 'L-'. Ceamos cada una! ' - ' ('o ne ct e d de v ice c o n f ig u rati o n ! ,s la configuracin dirigida a dispositivos con cierta capacidad computacional. Hsa la 'C0 como m2quina virtual, que es muy similar a la m2quina virtual usada por B8S,. Los paquetes que posee esta configuracin se pueden observar a continuacin! 'ada uno de estos paquetes son las librer+as que permite la 'C0 usar a travs de las 7"(s correspondientes. 'L-' (' one ct e d lim ite d de v ice c o n f ig u rati o n ! ,s la configuracin dirigida a dispositivos con muy pocas capacidades de procesamiento, y usa la Programacin de dispositivos mviles Semana 1 16 m2quina ?C0. Las librer+as admitidas para esta configuracin son las siguientes! Per!iles- -igamos que tenemos un con/unto de dispositivos que sirven para cocinar. 7lgunos son muy b2sicos tecnolgicamente, con tempori9adores y opciones sencillas. Jtros, mucho m2s comple/os, 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. ,sto hace que aplicaciones como la posibilidad de conectarse con otros dispositivos, o aplicaciones para dibu/o, para tipolog+as de letras y otras, no sean muy necesarias en este tipo de dispositivos. ,sto, en suma es un #perfil&! Hn con/unto de 7"(s que se encuentran orientados a determinado tipo de actividades o tareas. 7 travs de un perfil, se puede identificar la funcionalidad de un dispositivo, pues las 7"(s que contiene lo hacen pertenecer a un grupo de dispositivos con una aplicacin similar. 0ientras que un perfil define las caracter+sticas de un dispositivo predeterminado, una configuracin lo hace pertenecer a una familia de dispositivos. ,sto significa que cuando nos proponemos la creacin de una aplicacin, tenemos tanto las 7"(s de perfil como las de configuracin. 7c2 lo importante es que los perfiles noson aislados, sino que dependen primordialmente de la configuracin. ,s decir, una configuracin carece de funcionalidad si no tiene asignado un perfil determinado. "odemos decir Programacin de dispositivos mviles Semana 1 17 entonces que un perfil es un con/unto de 7"(s que dotan a una configuracin de una utilidad y una funcionalidad. ,ste conocimiento nos da las bases para saber cmo es un entorno de e/ecucin de Bava 0icro ,dition. Sabemos que cada dispositivo debe tener una m2quina virtual en su memoria que tradu9ca el cdigo B7C7 en lengua/e de m2quina. Sabemos que determinados dispositivos soportan algunos tipos de m2quinas virtuales dependiendo de sus capacidades de hard<are. Iue los dispositivos con limitadas capacidades de hard<are deben usar la ?C0 por su tama5o, y que dispositivos con mayores prestaciones pueden usar la 'C0. Ya sabemos tambin que sobre cada m2quina virtual se debe incorporar una configuracin espec+fica! la '-' se configura sobre 'C0 y la 'L-' se configura sobre la ?C0. ,sto mismo sucede con los perfiles. 3ay perfiles que solo pueden ser e/ecutados sobre la '-' y otros sobre la 'L-'. Ceremos entonces cu2les son estos perfiles y cu2les son las caracter+sticas de cada uno de estos perfiles. "ara entender la configuracin de capas del entorno de e/ecucin, vale la pena estudiar el siguiente diagrama! Programacin de dispositivos mviles Semana 1 18 7hora, veamos con m2s detenimiento cu2les son los perfiles que se e/ecutan sobre las configuraciones, y cu2les son sus caracter+sticas b2sicas "erfiles de la configuracin '-'! Moundation profile "ersonal profile N0( profile. "erfiles de la configuracin 'L-'! "-7 profile 0obile information -evice "rofile (0(-" ,n 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. Ceamos ahora los perfiles! Moundation profile! ,ste perfil est2 dirigido a dispositivos que, aunque usen las caracter+sticas robustas de la configuracin '-', no requieren de su interfa9 gr2fica. ,s por esto que el con/unto de paquetes que contiene este perfil excluyen los paquetes usados por /ava para crear ventanas, interfaces gr2ficas, entre otras cosas. 7lgunos aparatos que usan este perfil son, por e/emplo, los decodificadores de televisin digital. Si Programacin de dispositivos mviles Semana 1 19 alguno de estos aparatos necesitara una interfa9 gr2fica (tambin llamada @H( o #graphic user interface& necesitar+a usar otro Programacin de dispositivos mviles Semana 1 20 perfil. Los paquetes que contiene este perfil se muestran en la tabla siguiente. "ersonal profile! este perfil es el encargado de proporcionar un entorno gr2fico completo y funcional a un dispositivo. Le proporciona capacidades <eb, soporte de 7pplets de /ava y, sobre todo, es un entorno con soporte gr2fico 76;, que permite mediante coordenadas, dibu/ar ob/etos en la pantalla del dispositivo. "ara la e/ecucin de este perfil, debe implementarse anteriormente el foundation profile. Los paquetes que contiene la #personal profile& se muestran en la siguiente gr2fica! Programacin de dispositivos mviles Semana 1 21 N0( profile! ,ste perfil es un subcon/unto de un perfil de B8S,, con diversas limitaciones debido a las capacidades computacionales de los dispositivos mviles que implementan la 'C0. -ebido a que esa configuracin no est2 en los ob/etivos del curso entenderla, simplemente comentaremos que la N0( profile es un subcon/unto del perfil N0( para B8S,, que necesita el foundation profile, y que no posee las siguientes propiedades del N0( de B8S,! o Bava.rmi.server.disable3;;". o Bava.rmi.activation.port. o Bava.rmi.loader.pac*age"refix. o Bava.rmi.registry.pac*age"refix. o Bava.rmi.server.pac*age"refix. 7hora veamos con m2s detenimiento los perfiles de la configuracin 'L-'. Se Programacin de dispositivos mviles Semana 1 22 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. Programacin de dispositivos mviles Semana 1 23 "-7 profile! 'omo su nombre lo indica, es un perfil construido para "-7s, sobre todo las de gama ba/a, como palms con una pantalla y un puntero. ,n sus inicios, soportaba una resolucin de al menos 8GGGG pixeles de pantalla y la presencia de un puntero, todo esto sobre 'L'-. 7ctualmente es una configuracin dirigida al mane/o de informacin personal, como agendas, y accede al calendario y a la base de datos de contactos para hacer aplicaciones con ella. 0obile (nformation -evice "rofile (0(-"! ,ste es nuestro perfil m2s importante. La primera configuracin definida para B80, fue la 'L-', y sobre esta, el primer perfil generado fue el 0(-". ,sto hace que sea uno de los perfiles m2s completo y desarrollado hasta la fecha. ,st2 dirigido a un con/unto de dispositivos con caracter+sticas muy espec+ficas, que nombraremos a continuacin! o Neducidas capacidades de memoria y de computacin o 'apacidades gr2ficas muy limitadas (a lo sumo un display de F>x=K pixeles, sin colores o 'onectividad limitada (aproximadamente de F>GGbps, #)its per second& o )its por segundo o "ocos datos alfanumricos permitidos. o 7l menos 48L ?b de memoria no vol2til (es decir, memoria que no se borra cuando es apagado el dispositivo, ;ambin es conocida como NJ0 para instalar los componentes 0(-" o 7l menos L?b de memoria no vol2til para datos de aplicaciones o 18 ?b de memoria vol2til (aquella que se borra cuando el dispositivo es apagado. ;ambin es conocida como N70 para la pila B7C7. Programacin de dispositivos mviles Semana 1 15 7 partir de estas caracter+sticas, podemos definir un con/unto de dispositivos entre los cuales podemos incluir a los telfonos mviles, los Programacin de dispositivos mviles Semana 1 15 buscapersonas, "-7s de gama ba/a con conectividad, entre otros dispositivos mviles. ,ste perfil determina las capacidades de los dispositivos en los que est2 instalado. ,stas capacidades est2n relacionadas directamente con las 7"(s que especifica, y son! : Sem2ntica de las aplicaciones : (nterfa9 con el usuario : 7lmacenamiento repetitivo o persistente. : 'onexin y traba/o entre dispositivos en red. : ;empori9adores de aplicaciones Los paquetes que posee esta configuracin se pueden observar en la siguiente tabla! 7l crear una aplicacin usando un 7"(, la llamamos #7pplets&. ,stos applets son los usados principalmente como aplicaciones est2ndares de /ava, y se pueden descargar de muchas p2ginas. Si en nuestro computador necesitamos un programa en /ava que haga determinada labor, usamos o programamos un 7pplet. ,n los dispositivos mviles, es diferente. "or similitud, las aplicaciones creadas con 0(-" son llamadas 0(-lets. ,s as+ como podemos decir que un 0(-let es una aplicacin creada usando el perfil 0(-" sobre una configuracin 'L'-. 'omo el Programacin de dispositivos mviles Semana 1 26 perfil de los dispositivos mviles m2s usados (los celulares cabe en este perfil de /ava, de ahora en adelante nos centraremos en el perfil 0(-", pero sabiendo que, para crear una aplicacin en otro dispositivo, solo basta con configurar la m2quina B7C7, el perfil y la configuracin apropiada, y empe9ar a programar la aplicacin. (+ME . L& COMUNIC&CIN Hna de las caracter+sticas de los dispositivos mviles que se soportan en la configuracin 0(-" es que deben tener una conexin limitada. ,s cierto que muchos dispositivos tienen conexin similar a la explicada en el perfil, como los @"S, y algunas palms, pero no se puede negar que los dispositivos que m2s provecho le est2n sacando a las comunicaciones son los celulares. ,sta es otra de las ra9ones 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 vo9 para me/orar, por e/emplo, la productividad de las empresas, o para simplemente entretener a los usuarios de estos dispositivos. $'u2les son los protocolos de comunicacin que se han creado y que han sido aplicados en 0(-lets de /ava% $'mo pueden afectar estos protocolos el desarrollo de la tecnolog+a B80,% Ceamos entonces los protocolos de comunicacin que han surgido para entender el efecto que han tenido sobre la tecnolog+a B7C7. 7nteriormente, los celulares se hab+an creado con el .nico propsito de comunicar a las personas entre s+. ,ran una extensin de la telefon+a inal2mbrica, convirtindola en ubicua para todos los individuos. ;al ve9 la primera aplicacin vital que dio pie a la creacin de toda una gama de Programacin de dispositivos mviles Semana 1 27 protocolos y librer+as, fue la #agenda telefnica&. ;ener una agenda, implicaba ingresar datos al celular, que ste los almacenara incluso luego de apagar el Programacin de dispositivos mviles Semana 1 28 dispositivo, y que el mismo celular los desplegara en pantalla al buscarlos a travs de un #navegador&. ,sta interactividad b2sica dio pie a los programadores para pensar en aplicaciones m2s comple/as que usaran los datos del celular con alg.n propsito diverso. 7gendas 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. 0i celular, con memoria para almacenar contactos, ya ten+a m2s de la necesaria, y por tanto, esta misma se pod+a aprovechar para personali9ar el celular y hacerlo una herramienta mucho m2s propia. Sin embargo, $-e dnde puedo adquirir la informacin que deseo, y sobre todo, cmo puedo conectarme al lugar en el que se encuentra esa informacin% Ciendo los operadores de telefon+a celular esta oportunidad como una posibilidad de ampliar sus negocios, impulsaron la consolidacin de estudios universitariosen redes inal2mbricas y protocolos de comunicacin inal2mbricos. ,s as+ como nace la primera tecnolog+a de comunicacin, la tecnolog+a 67". 67" es la sigla de 6ireless 7pplication protocol, o protocolo de aplicacin inal2mbrica. ,ste protocolo surgi para dotar a los celulares de la posibilidad de conectarse con un servidor remoto, o varios servidores remotos, con el ob/eto de intercambiar informacin entre el cliente y servidor. ,sta conexin se hac+a a travs de un elemento que ya hab+a estado siendo traba/ado y actualli9ado en computadores de escritorio! Hn navegador. Se dot entonces de un navegador b2sico al dispositivo mvil con el ob/eto de conectarlo con el servidor. Jbviamente este desarrollo requiri todo un traba/o m2s profundo en protocolos de comunicacin, como un traductor entre el cdigo 3;;" del internet y las peticiones 67", la creacin de una puerta de enlace, o #@ate<ay& que sirviera como intermediaria entre la red y el celular, entre otras cosas. 7unque 67" fue un gran avance en cuanto a conectividad, no result Programacin de dispositivos mviles Semana 1 29 ser el me/or medio de conexin, ya que la navegacin no era para nada amigable, la introduccin de p2ginas de internet era demasiado incmoda por el usuario, y el costo de navegacin se daba por tiempo, a lo que se pod+a Programacin de dispositivos mviles Semana 1 30 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 d+a. Minalmente, podemos anotar que, el costo de la tecnolog+a era muy elevado para la capacidad de conectividad que ten+a la plataforma, que en conclusin, no era la me/or. 7provechando la plataforma usada para 67", otra nueva tecnolog+a tom auge, la S0S. La S0S o Short 0essage System, es una tecnolog+a que permite enviar mensa/es de texto (o cadenas de caracteres entre los #@aps& o huecos usados para transferir la informacin de la red. ,sta comunicacin result ser muy r2pida y muy barata en comparacin con la 67". ;ambin, al poder enviar y recibir mensa/es de manera r2pida, se gestaron las aplicaciones de #mensa/er+a instant2nea& o #'hat&. Bava permiti crear plataformas que aprovecharan la tecnolog+a S0S para hacer aplicaciones de chat que se instalaron en los telfonos celulares, y que ahora son la base de la comunicacin por )lac*berry. La comunicacin sigui tomando auge, y los operadores implementaron tecnolog+as que aumentaban tanto la banda como la velocidad de las conexiones, gener2ndose as+ tecnolog+as conocidas como #generaciones&. La generacin 8 y la 8O= son conocidas por otras 8 nuevas tecnolog+as de comunicacin, como lo son la @S0 y la @"NS 0ientras que @S0 es una conexin telefnica que permite el intercambio de datos entre clientes, la comunicacin @"NS 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 67", y se le cobra a los navegantes por cada ?byte transferido, en ve9 del cobro por tiempo de navegacin. 7ctualmente Programacin de dispositivos mviles Semana 1 31 nos movemos en plataformas de conexin que se basan en la 1ra generacin, con tecnolog+as como H0;S, ,-@, y 1.=g. ,n Bapn, por e/emplo, se est2 Programacin de dispositivos mviles Semana 1 32 probando una plataforma montada sobre la Kta generacin, que permite la transmisin de datos, vo9 y video en tiempo real a travs del propio celular, vislumbrando la videoconferencia como la tecnolog+a del futuro en la comunicacin, y a B7C7 como una de las herramientas m2s importantes para aprovechar las capacidades de conectividad de las redes de telefon+a celular. Jtras de las tecnolog+as de comunicacin, no basada en #cliente : servidor& sino en #cliente P cliente&, son las conocidas como redes "7A (personal area net<or* y 67A (<ireless area net<or*, creadas por tecnolog+as usadas actualmente por muchos celulares! La tecnolog+a bluetooth, la 6ifi y la (N-a. La bluetooth es una tecnolog+a que permite transferencias de informacin entre dispositivos mviles en un radio de G:4GG metros, y que permite crear redes ad: hoc, o redes temporales. La 6ifi permite conectar un celular a internet con velocidades similares a las de un computador personal, y finalmente, la (N-a, o red infrarro/a, permite transferir informacin entre 8 elementos que posean este protocolo. ;odas estas tecnolog+as favorecen, entonces el uso y distribucin de aplicaciones en B7C7 y, sobre todo, 0(-lets en B7C7. OT & 'uando 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. ,sto debido a que la tecnolog+a actual se basa en el medio inal2mbrico para transmitir contenidos (a pesar de que existan Programacin de dispositivos mviles Semana 1 33 otro tipo de medios de transmisin, como los cableados, y los inal2mbricos dirigidos. ,ste medio que permite garanti9ar la descarga de contenidos es llamado J;7 (Jver ;he 7ir, es decir, J;7 es el nombre que se le da al medio areo necesario para descargar contenido. Programacin de dispositivos mviles Semana 1 34 7 travs de este medio, e ba/an los componentes de una aplicacin para dispositivos mviles. $'u2les son esos componentes% Hna aplicacin en B80, tiene 8 componentes fundamentales para su funcionamiento! Hn archivo con extensin .B7N, que contiene la aplicacin como tal, y un archivo .B7-, que contiene algo similar a un #manual& de la aplicacin, es decir, contiene informacin sobre la misma (Ao debemos confundir estos archivos. "ongamos un e/emplo! -igamos que a su casa llega un paquete de un familiar suyo, un televisor empacado. ,l televisor como tal, es equivalente a la aplicacin, y es el archivo .B7N. ,l manual de instrucciones, que dice la marca del televisor, el tama5o, las especificaciones tcnicas y de m2s, es el archivo .B7-. 7 este archivo .B7- se le llama #-escriptor&. "ara descargar los 0(-lets #Jver the air&, se debe seguir un procesoorgani9ado de pasos, y se deben tener en cuenta unos requerimientos espec+ficos, tanto funcionales como tcnicos de los dispositivos que llevan a cabo estas descargas. Ceamos entonces cu2les son estos requerimientos. 'e/"erimie#tos !"#cio#ales Si voy a descargar un 0(-let J;7, mi dispositivo debe tener alguna herramienta que me permita encontrar el 0(-let buscado. Los dispositivos cuentan con varias herramientas paraesto. 7nteriormente hab+amos comentado que la comunicacin 67" requer+a un navegador que sirviera como enlace ("uerta de enlace entre el celular y la red. "ues este navegador 67" es una de las opciones con las que cuentan los dispositivos mviles para poder descargar los 0(-lets. Jtros celulares tienen aplicaciones propias, diferente de los navegadores 67", para identificar y descargar 0(-lets (anteriormente, los celulares contaban con una herramienta que le permit+a al dispositivo Programacin de dispositivos mviles Semana 1 35 conectarse con una base de datos del proveedor de 0(-lets, que generalmente era el operador, y a travs de un men. en pantalla, descargar las aplicaciones deseadas. ,sto ha venido desapareciendo, ya que los celulares actuales poseen altas capacidades y pueden e/ecutar navegadores comple/os Programacin de dispositivos mviles Semana 1 36 como el (nternet ,xplorer, @oogle 'hrome, entre otros. ;ambin, como lo hab+amos comentado antes, no todos los medios de transmisin de informacin deben ser #inal2mbricos& o relacionados con el internet. ;ambin se pueden usar cables de datos, redes 7d 3oc ()lue;ooth, redes infraro/as, etc. Sin embargo, siempre debe haber un soft<are que permita mane/ar la descarga y el ciclo de vida de los 0(-lets. ,ste soft<are es llamado el #gestor de aplicaciones& o 70S (7pplication 0anagement Soft<are Lo anterior significa que nuestro dispositivo mvil, encargado de ba/ar un 0(-let, debe tener la posibilidad de incorporar un 70S que localice el fichero y lo ba/e a la memoria no vol2til del mvil. $Iu pasa si, para descargar el fichero se debe usar contrase5a% "ues que el gestor de aplicaciones debe permitir enviar informacin a la plataforma donde se encuentra la aplicacin, con el nombre de usuario y la contrase5a pedida. "ara el env+o de informacin J;7, se deben usar protocolos espec+ficos de comunicacin de datos, como 3;;" 4.4, pero eso no lo abordaremos en este curso. )asta con saber que la aplicacin debe enviar mensa/es si el servidor lo requiere. Sin embargo, con el 0(-let en el dispositivo, no hacemos nada, debemos instalarlo y, luego de eso, e/ecutarlo en nuestro celular. $Y si nos aburrimos de la aplicacin% "ues el dispositivo mvil debe darnos la posibilidad de eliminarlo. ,s as+ como podemos definir las especificaciones de un dispositivo mvil con perfil 0(-", ya que el mismo debe cumplir los siguientes requerimientos! a Locali9acin de archivos B7- y B7N en la red a travs del 70S b -escarga del B7- y el B7N desde un proveedor de servicios, un servidor, u otro dispositivo con la aplicacin (sea por medio inal2mbrico o al2mbrico Programacin de dispositivos mviles Semana 1 37 c ,nv+o de nombre de usuario y contrase5a en caso de que sea necesario. d (nstalacin del 0(-let descargado. Programacin de dispositivos mviles Semana 1 38 e ,/ecucin del 0(-let instalado f )orrado o desinstalacin del 0(-let instalado. Ceamos ahora con m2s detenimiento cada uno de estos requerimientos! a0 Locali1aci# de la &plicaci# Lo primero que un dispositivo mvil debe hacer es locali9ar un 0(-let a travs de la 70S. 7 este proceso se le llama #descubrimiento&. ,l descubrimiento se reali9a cuando el navegador muestra al usuario el enlace en la red que permite ba/ar el 0(-let deseado, y que una ve9 seleccionado, permite descargar e instalar el 0(-let. Necordemos que un 0(-let est2 compuesto por un archivo .B7N y por un .B7-. Si el enlace que encontramos en la red es un .B7N, el archivo y su HNL se env+an al 70S para empe9ar el proceso de instalacin del 0(-let. Sin embargo, si el enlace est2 referido a un archivo .B7-, se deben llevar a cabo los siguientes pasos! 7 travs del navegador, se transfiere el archivo .B7- y su direccin HNL al 70S, que es el que empie9a la instalacin del 0(-let. 7c2 hay que hacer una anotacin importante! Ao todos los 0(-lets pueden ser instalados en cualquier equipo, por lo que el 70S debe determinar si el 0(-let ba/ado puede ser tanto instalado como e/ecutado de manera satisfactoria en el dispositivo mvil. ,l descriptor, escrito en B7C7, debe ser entendido por el 70S, que no necesariamente es una aplicacin de B7C7. ,s por esto que para ser entendido, debe ser #traducido& a formato #Hnicode& antes de ser usado. Programacin de dispositivos mviles Semana 1 39 Ceamos algo en este punto! un archivo .B7- es un con/unto de datos relacionados con el .B7N, por lo que podemos decir que el .B7- es una Programacin de dispositivos mviles Semana 1 40 #clase&. ;odas las clases tienen atributos de clase, y estos atributos, en la .B7-, deben ser compresibles de acuerdo a la sintaxis del perfil 0(-". 'omo el perfil 0(-" es el que corre el 0(-let, los atributos requeridos por este perfil deben estar presentes en el .B7- para que pueda usarlo. 'uando la direccin llega a la 70S, se inicia la instalacin del 0(-let. Sin embargo, por seguridad, el 70S debe tener la opcin de indicarle al usuario si de verdad desea instalar dicha aplicacin. Y no solo eso, debe estar en capacidad de sabersi existe una versin similar o desactuali9ada del mismo 0(-let instalado en el equipo, o si ste tiene problemas para instalar 0(-lets por falta de memoria. -e esta manera, el 70S puede e/ecutar una herramienta para liberar memoria, e instalar la aplicacin correspondiente. 20 I#stalaci# del MIDlet Ya tenemos el .B7- en nuestro 70S con la respectiva direccin HNL de donde se descargar2 el 0(-let para ser instalado, ahora $Iu sigue% La etapa de instalacin. ,sta etapa no es intervenida por el usuario, ya que la genera internamente el dispositivo. Sin embargo, se deben tener en cuenta varios mensa/es que pueden salir en el proceso de chequeo que se genera al instalar el 0(-let. "rimero, debemos entender que la instalacin de un 0(-let comprende el estado en el que el 0(-let es descargado y puede ser usado por el cliente. ;ambin debemos saber que un 0(-let puede estar dentro de un paquete, y que este paquete puede tener diversidad de 0(-lets internos. ,s decir, cuando tenemos la direccin HNL y deseamos ba/ar una aplicacin, esta puede estar compuesta de varios 0(-lets. ,l 70S debe indicar esta situacin y debe darle la posibilidad al usuario de cancelar el proceso de instalacin en cualquier momento, de/ando al Programacin de dispositivos mviles Semana 1 41 dispositivo como se encontraba antes de pasar por el proceso de instalacin. $Iu hace el 70S cuando se procede a instalar una Programacin de dispositivos mviles Semana 1 42 aplicacin% Cerificar si el paquete contiene varios 0(-lets internos e indicarle al usuario el proceso de instalacin de los componentes, el n.mero de componentes a instalar, y la opcin de cancelar la instalacin. ;ambin debe llevar a cabo las siguientes actividades! Si el archivo que se descarg inicialmente fue el .B7-, la HNL de la que se descarga el 0(-let, contenida ahora por el 70S (recordemos que ya hallamos la aplicacin a instalar, y en ese proceso, se le asigna una HNL al 70S para la instalacin de la aplicacin debe coincidir exactamente con la HNL que posee el .B7- Si el servidor pide nombre de usuario y contrase5a para autentificar al usuario, el 70S debe enviar las credenciales correspondientes (los datos correspondientes ,l 0(-let debe ser chequeado para saber si se puede instalar en el dispositivo mvil. ,ste chequeo se extiende a todo el proceso de instalacin, ya que pueden surgir una serie de errores que no permitan que el 0(-let se instale. ,l 70S debe indicar todos estos errores durante el proceso de instalacin de la aplicacin. $'u2les son esos errores% Ce2moslos! o Si no hay memoria suficiente para instalar el 0(-let, se devuelve el cdigo de estado FG4 o Si el .B7N no se encuentra disponible en la HNL que contiene el B7-, , se develve el cdigo FGQ o Si al descargarse el .B7N, este no coincide con el descrito en el .B7-, se devuelve el cdigo FGK o Si no se pueden extraer los archivos necesarios para instalar el .B7N, se devuelve el cdigo FGQ. o Si los atributos del .B7- no coinciden con los que tiene el .B7N, se devuelve el cdigo de error FG= Programacin de dispositivos mviles Semana 1 43 o Si no se puede llevar a cabo la autenticacin del usuario (nombre de usuario y contrase5a se devuelve el error FGF o Si falla por un motivo diferente al cualquiera de los anteriores, debe devolver el error F44. o Si mientras se descarga el 0(-let para instalarlo, se pierde la conexin a internet, debe devolver el error FG1 La instalacin finali9a en 8 casos! cuando tenemos el 0(-let exitosamente instalado en nuestro dispositivo mvil, o cuando ha ocurrido un error irrecuperable y no se ha podido instalar la aplicacin. "uede darse el caso en que estemos instalando un 0(-let y ya tengamos una versin previa del mismo. ,n ese caso, decimos que estamos #actuali9ando& el 0(-let correspondiente, ya que estamos pasando de una versin anterior a una versin m2s reciente del mismo. ,l 70S 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. ;odo programa a instalar posee una firma digital que indica su autenticidad y su valide9 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 0(-let sin firma como reempla9o de una aplicacin que si la tenga. c0 E3ec"ci# del MIDlet Camos a e/ecutar el 0(-let en nuestro equipo. 7l momento de e/ecutarlo, lo primero que se debe llevar a cabo es la carga de las clases referentes al perfil 'L-' y la configuracin 0(-". Necordemos que estamos cargando una Programacin de dispositivos mviles Semana 1 44 aplicacin de B7C7 en un dispositivo mvil, y esto requiere tanto el perfil como la configuracin para poder ser e/ecutada. ,s por esta ra9n que un dispositivo Programacin de dispositivos mviles Semana 1 45 debe tenerlas incluidas, porque si no las posee, no puede e/ecutar ning.n 0(-let. Y recordemos tambin que di/imos que un paquete o una aplicacin pueden tener diversos 0(-lets. ,n caso de tenerlos, el dispositivo debe permitirle al usuario escoger el 0(-let que desea e/ecutar. d0 Elimi#aci# del MIDlet0 ,l proceso final que se puede llevar a cabo con un 0(-let es su eliminacin. "ara hacerlo, el usuario debe elegir la posibilidad de borrar la aplicacin seleccionada. 'ualquier 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 0(-lets incorporados, debe indic2rsele al usuario que todos quedar2n eliminados. 3emos visto hasta ahora todos los pasos por los que un 0(-let puede pasar a travs de un dispositivo mvil. 7hora, veremos cu2les son las herramientas que se necesitan para construir los 0(-lets a dise5ar, pero antes, debemos ver cu2l es el proceso de creacin general de un 0(-let. Proceso de creaci# de "# MIDlet0 ;odos los 0(-lets a desarrollar llevan a cabo casi el mismo proceso de creacin, con algunos casos particulares. Ceremos entonces cuales son los pasos que hacen parte de ese proceso! 4. -esarrollo! en este estado, creamos el cdigo en B7C7 de nuestro 0(-let. Programacin de dispositivos mviles Semana 1 46 8. 'ompilacin! Auestro cdigo es traducido a lengua/e de m2quina a travs de un compilador B8S, Programacin de dispositivos mviles Semana 1 47 1. "reverificacin! ,xaminamos el cdigo de B7C7 para observar si no se viola ninguna restriccin de seguridad de la plataforma en la cual se va a e/ecutar (B80,. K. ,mpaquetamiento! Se crea el archivo .B7N y el .B7- de nuestra aplicacin. =. ,/ecucin! Se monta el 0(-let en un simulador o en un dispositivo mvil para probar su funcionamiento. >. -epuracin! 7l observar la e/ecucin del 0(-let, pueden observarse fallos en su funcionamiento, la depuracin consiste en eliminar esos fallos para corregir nuestra aplicacin. ,l empaquetamiento y la preverificacin, al evaluarse violaciones de seguridad en la plataforma B80, y crearse archivo .B7N y .B7-, son pasos exclusivos en el desarrollo de 0(-lets. ,l resto de pasos, son generales para la creacin de cualquier aplicacin en cualquier otro programa o lengua/e de programacin 4E''&MIENT&S DE DES&''OLLO $'mo se crea un 0(-let%, b2sicamente a travs de 8 formas! : 7 travs de l+neas de comando. ,sto significa que copiaremos el cdigo sin ning.n tipo de ayuda adicional, aparte de la prestada por el compilador para traducir el cdigo. : 7 travs de un entorno visual. ,sto implica el uso de diversas Programacin de dispositivos mviles Semana 1 48 herramientas que facilitan la creacin de 0(-lets, como veremos m2s adelante Programacin de dispositivos mviles Semana 1 49 ,n nuestro caso, usaremos un elemento visual para e/ecutar nuestros 0(-lets. ,ste elemento se llama #-ispositivo 0(-& (0bile information device. ,sto significa que no e/ecutaremos nuestros cdigos directamente en m2quinas f+sicas, sino en un simulador que e/ecutar2 nuestra aplicacin. ,l emulador a usar puede ser tanto un dispositivo genrico como un modelo 0(- espec+fico ("or e/emplo, si queremos desarrollar aplicaciones B7C7 para el (phone, debemos ba/ar un emulador que nos permita e/ecutar nuestras aplicaciones en este dispositivo. ,n este punto, entraremos de lleno en la forma de crear un 0(-let, 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 0(-let, porque llevaremos a cabo manualmente cada uno de esos pasos. ,n este caso, abordaremos el mtodo de l+nea de comando INST&L&CIN DE COMPONENTES0 $Iu componentes necesitamos para el desarrollo en l+nea de comando% Nequerimos b2sicamente los siguientes! a Hn editor de texto para copiar el cdigo del 0(-let. b Hn compilador est2ndar de B7C7. ,l compilador es proporcionado gratuitamente por B7C7 en la siguiente direccin! h ttp !RR /a v a .s u n .c o m Rp ro du cts Ra rc h iv e R/ 8 s e R4 .K .4S G Q R c Las 7"(s de la configuracin 'L-' y del perfil 0(-" que Programacin de dispositivos mviles Semana 1 50 se pueden descargar de la p2gina Programacin de dispositivos mviles Semana 1 51 h ttp !RR < < < .o racle.c om Rte c h n e t< o r*R /a v a R/ a v a me Rdo < n lo ad sR inde x . h tm l ,n el enlace anterior del S-? de B7C7, ba/amos el archivo /8sd*:4SKS4SGK: <indo<s:i=L>.exe (pueden variar las versiones. 7ctualmente existe una versin mucho m2s moderna, pero traba/aremos con esta y lo instalamos. Suponemos en este momento que, como se pide en los requerimientos del curso, el aprendi9 tenga conocimientos en B7C7 y mane/o de computadores de manera intermedia, ya que se llevar2 a cabo un procedimiento que, de no reali9arse correctamente, puede desconfigurar el acceso a algunos programas del sistema operativo. AJ;7! Si no posee conocimientos de B7C7 yRo de computadores, 7S,STN,S, -, 7L@H(,A IH, S( LJS ;,A@7 para llevar a cabo lo siguiente. 'uando descarguemos el archivo, le damos doble clic* y lo instalamos en una carpeta espec+fica del computador. ,sta ruta en la que fue instalado, debe copiarse en un documento de texto o en el bloc* de notas. Luego de instalado el programa, a5adiremos esta ruta a nuestro "ath. Programacin de dispositivos mviles Semana 1 52 $Iu es el "ath% ,sta es una variable del sistema que contiene la ruta de acceso a los programas que el usuario del computador usa con m2s frecuencia. ,s por esto que a veces podemos escribir el programa que necesitemos en la barra de direcciones, y 6indo<s inmediatamente lo encuentra, gracias a la informacin del "ath. ,xiste otra variable, llamada el 'lasspath, que contiene la informacin de donde el B-? (Bava development *it, o *it de desarrollo de B7C7 o en nuestro caso el S-?, debe buscar los archivos a e/ecutar o compilar. Aecesitamos cambiar nuestro "ath para poder e/ecutar el S-? de B7C7 de manera correcta. $'mo lo cambiamos% Neali9ando los siguientes pasos! Programacin de dispositivos mviles Semana 1 53 a. 7brimos el #S+mbolo del sistema&, al que se puede acceder por la carpeta #7ccesorios& presente en la barra de inicio de 6indo<s ((nicioRtodos los programasRaccesoriosRs+mbolo del sistema Programacin de dispositivos mviles Semana 1 54 b. ,scribimos lo siguiente! #"ath&, quedando m2s o menos as+ '!R path ,ste comando te muestra los accesos directos presentes en la variable. c. )uscamos el archivo #autoexec.bat& y lo abrimos con un procesador de texto ()loc* de notas o 6ordpad, poniendo la direccin que guardamos anteriormente donde instalamos el S-?, separada por un #E&. ,s recomendable ponerlo al inicio de las direcciones, para evitar conflictos con programas que queramos e/ecutar en el S-? y que se llamen igual que algunos contenidos en las otras direcciones del "ath. d. -escargamos los 7"( de la configuracin 0(-" y 'L-', las descomprimimos en una carpeta espec+fica. ,sta ruta tambin debe agregarse al "ath e. 'reamos 8 variables de entorno a travs del comando S,; en el s+mbolo del sistema. Hna de ellas se debe llamar B7C7S3J0,, con el valor de la direccin donde se instal el S-?, y otra llamada 0(-"S3J0,, con el valor de la ruta donde se descomprimieron las 7"(s correspondientes. "ara saber si llevamos a cabo correctamente estos pasos, hacemos lo siguiente! : 7brimos el #S+mbolo del sistema& y escribimos (ava 5 Versio# Y debe aparecer algo similar a lo siguiente! Programacin de dispositivos mviles Semana 1 55 : Luego escribimos! Midp 5 versio# Ciendo algo como lo siguiente 'on esto claro, procedemos a llevar a cabo las fases de desarrollo de una 0(-let por l+nea de comando Programacin de dispositivos mviles Semana 1 56 $ases de Desarrollo Necordemos que el desarrollo de un 0(-let tiene varias partes, como lo vimos en el apartado superior. Ceamos cmo se llevan a cabo esos pasos a travs de desarrollo en l+nea de comando. Desarrollo de cdi,o- 7c2 usamos un editor de texto cualquiera. ,n 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 ./ava Compilaci#- ,n l+nea de comandos (s+mbolo del sistema, buscamos la carpeta en la que guardamos nuestro archivo ./ava, para crear el archivo .class (es decir, el archivo compilado. Luego de encontrar esta carpeta, escribimos lo siguiente! 3avac 52ootclasspat6 c-7midp+08!cs7classes 9!"e#te:03ava -onde el archivo UfuenteV./ava fue el que guardamos anteriormente en el procesador de texto. Preveri!icacio#- ,n este caso, nos movemos ahora donde qued la clase que compilamos anteriormente, y escribimos lo siguiente! preveri!; 5classpat6 c-7midp+08!cs7classes 9!"e#te:03ava Programacin de dispositivos mviles Semana 1 57 ,sta preverificacin genera un fichero .class en la carpeta RoutputR, es decir en la carpeta llamada #output& encontrada en el lugar donde se instal el S-?. Empa/"etamie#to! ,n esta etapa, crear+amos el archivo .B7N y .B7- de la clase compilada. 7s+, crearemos el paquete definitivo que e/ecutaremos sobre nuestra 0(-let. 7nteriormente hemos dicho que el .B7N es el archivo que contiene los elementos que conforman el 0(-let, y que el .B7N es el archivo descriptor de la aplicacin. ,sto significa que el .B7- describe una aplicacin, y no precisamente un 0(-let (aunque pueden haber aplicaciones de un solo 0(-let, pero generalmente una aplicacin posee m.ltiples 0(-lets. 7 estos m.ltiples 0(-lets se les llama #Suite de 0(-lets&. -escribiremos el proceso para empaquetar un solo 0(-let, extensivo para una suite. 7ntes que nada, debemos conocer la escructura de un archivo .B7N para saber cmo empaquetarlo. Hn archivo .B7N tiene varios componentes, a saber! : Hn archivo manifiesto (0anifest, describiendo el contenido del archivo B7N : Las clases de B7C7 que conforman el 0(-let propiamente dicho : Los archivos de los recursos que usa el 0(-let Ceremos las caracter+sticas del archivo manifiesto. Programacin de dispositivos mviles Semana 1 58 &rc6ivo ma#i!iesto- creaci#0 ,l archivo manifiesto describe el contenido del archivo .B7N, 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. Hn archivo manifiesto tiene la siguiente forma en modo texto! 0(-let:4! Saludo, saludo./pg, Saludo 0(-let:Aame! 3ola 0(-let:Cendor! S,A7 0(-let:Cersion! 4.G 0icroedition:'onfiguration! 'L-':4.G 0icroedition:"rofile! 0(-":4.G ,n 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. Programacin de dispositivos mviles Semana 1 59 -igamos que queremos crear una suite de 0(-lets con varios 0(-lets inclu+dos. "ara crear el archivo manifiesto de una suite de 0(-lets, usamos el siguiente atributo para definir cada uno de los 0(-lets! 0(-let:4! Saludo, saludo./pg, Saludo 0(-let:8! -espedida, adios.png, -espedida W Y es as+ como, mediante modo texto, creamos nuestro archivo manifiesto. "roseguimos entonces con el .B7N &rc6ivo 0(&'< creaci# "ara crear el archivo .B7N, nos movemos nuevamente a l+nea de comandos y escribimos lo siguiente! 3ar cmf Uarchivo manifiestoV UnombrearchivoV./ar :' Uclases /avaV . P' UrecursosV 'on esta l+nea de comando, y reempla9ando cada uno de los comodines (los nombres encerrados en U V por su correspondiente elemento, creamos nuestro archivo .B7N. 7hora basta con crear el archivo .B7- Programacin de dispositivos mviles Semana 1 60 &rc6ivo 0(&D< creaci# Programacin de dispositivos mviles Semana 1 61 ,ste archivo es usado por el 70S o gestor de aplicaciones para verificar descargas, nombres de archivo, elementos del archivo manifiesto, autenticacin, entre otros. ,ste 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. ,stos atributos se ven en la siguiente tabla! ,xisten otros atributos adicionales, que el desarrollador de a suite puede agregarle al archivo .B7-, que sirven para crear aplicaciones adicionales y de mayor comple/idad. ,stos atributos pueden ser investigados por el estudiante en la seccin de #documentos de apoyo&. Programacin de dispositivos mviles Semana 1 62 ,/ecucin:depuracin! La e/ecucin, como se di/o anteriormente, se debe llevar a cabo sobre un simulador. ,l simulador que nosotros usaremos se llama #6ireless ;ool*it 8.G&, 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 0(-let en B7C7. -e ac2 en adelante, veremos herramientas que nos facilitan enormemente la labor de creacin de 0(-lets, como lo son los programas de desarrollo en entorno visual. DES&''OLLO EN ENTO'NOS VISU&LES ,xisten una gran variedad de aplicaciones que pueden ayudarnos a crear 0(-lets de una manera m2s r2pida y efica9. Aosotros veremos 8 de estas herramientas, las cuales explicaremos a continuacin! Sun Jne Studio 0obile ,dition! ,sta herramienta es un entorno de desarrollo completamente integrado, similar al Sun Jne, pero con un emulador que nos permite ver la e/ecucin de nuestro 0(-let. 7parte de eso, posee las 7"(s propias de la configuracin 'L-' y el perfil 0(-". 7ctualmente existe la herramienta B80, <ireless tool*it C8.G! ,s un emulador que recibe las clases B7C7 creadas en el desarrollo de l+nea de comandos y nos permite ver el 0(-led e/ecut2ndose. 7ctualmente existe la SHA B7C7 6ireless tool*it, que Programacin de dispositivos mviles Semana 1 63 reempla9a la B80, 6ireless tool*it. Programacin de dispositivos mviles Semana 1 64 7mbas plataformas, luego de la integracin entre JN7'L, y SHA, fueron fusionadas en la herramienta #(ava Plata!orm Micro Editio# So!t%are Developme#t =it& el cual se puede descargar de la siguiente direccin! h ttp !RR < < < .o racle.c om Rt e c h n e t< o r*R /a v a R/ a v a me Rdo < n lo ad sR s d * 1 G : /s p : 41 FQ=F .h tm l "ara esta aplicacin se debe haber instalado el B7C7 S, -evelopment ?it B-?, que es la versin actuali9ada del B7C7 8 S-? instalado anteriormente. ,sta versin actuali9ada se puede descargar de la siguiente direccin! h ttp !RR < < < .o racle.c om Rte c h n e t< o r*R /a v a R/ a v a s e Rdo < n lo ad s Ri n d e x .h tm l% ssS ou rce Site (d Xo tn cn Desarrollo de aplicacio#es e# el (&V& plata!orm micro editio# so!t%are developme#t >it Hna ve9 instalado el Sun One Studio Mobile Edition, nos aparecer2 un entorno basado en ventanas donde podremos desarrollar y compilar nuestro MIDlet. ,sta herramienta da una gran cantidad de caracter+sticas, como! Programacin de dispositivos mviles Semana 1 65 : ,ditor de texto integrado, en el cual se puede escribir el cdigo de nuestra aplicacin. : 'ompilacin inmediata del cdigo, gracias a que la plataforma posee todas las librer+as necesarias para llevar a cabo este traba/o. Programacin de dispositivos mviles Semana 1 66 : "reverificacin reali9adade manera directa, igual que la compilacin. : "osibilidad de empaquetar el 0(-let en un solo paquete o hacer una suite de 0(-lets. : Aos permite emular los 0(-lets en plataformas virtuales o 0(-s, ya que al estar integrada la plataforma de SHA y la de B80,, contiene integrados los simuladores necesarios y apropiados para llevar a cabo la visuali9acin de los 0(-lets en e/ecucin. ,s esta entonces una herramienta completamente global, que nos permite crear 0(-lets de manera f2cil y r2pida, sin tener que usar los pasos anteriores explicados en l+nea de comandos. Programacin de dispositivos mviles Semana 1 67 Programacin de dispositivos mviles Semana 1 68 ,s necesario que el aprendi9 explore esta plataforma y lea los tutoriales presentes en la p2gina de SHA, ya que si bien la herramienta nos permitir2 crear 0(-lets, no se abarcar2n sus capacidades, ya que no es ob/etivo del curso. Otros em"ladores 'uando creamos un 0(-let, queremos que esta aplicacin sea soportada por uun amplio n.mero de dispositivos. ,s por esto que cada fabricante de dispositivos mviles, en sus p2ginas de desarrolladores, posee 0(-s que permiten probar nuestros 0(-lest en sus plataformas. ,s cuestin del aprendi9 buscar plataformas adicionales para simular aplicaciones, o usar los 0(-s incorporados en el soft<are explicado en el apartado superior. Programacin de dispositivos mviles Semana 1 69