You are on page 1of 69

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.
"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

You might also like