Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AUTOR:
TUTOR:
AGRADECIMIENTOS
La finalizacin del trabajo fin de grado supone un gran punto de inflexin en el que
merece la pena echar la vista atrs y darse cuenta de todo lo que ha pasado. Supone la
consecucin de un objetivo marcado hace muchos aos atrs, la conclusin del trabajo
y sacrificio de todos estos aos.
Llegado a este momento, puedo afirmar que estoy muy orgulloso de haber formado
parte de la Universidad Carlos III, estando seguro de que acert a la hora de decirme
por el plan Bolonia que por aquel entonces era una novedad y solo ofertaba esta
Universidad.
Para llegar hasta aqu, es necesario contar con gente que te apoye y te ayude
constantemente, por esto y por muchas ms cosas tengo que dar las gracias a mis
padres, Cndido y Josefa, y a mi hermano Kevin, as como al resto de mi familia.
Tambin gracias a mi tutor Ral por sus consejos durante todo el trabajo, su
disponibilidad y el buen trato recibido siempre han sido de gran valor, al director del
trabajo, Aitor, con l aprend los primeros pasos para desarrollar en Android, sus
recomendaciones fueron de gran ayuda.
Gracias a todos mis amigos, siempre me han animado cuando ms lo necesitaba y
mencin tambin a los compaeros con los que me he cruzado a lo largo de todos
estos aos.
Y, por supuesto, gracias a mi novia Sidney por haber compartido estos aos de tanto
sufrimiento y a la vez de tantas alegras, espero haberte ayudado tanto cmo t lo has
hecho.
RESUMEN
La penetracin de mercado de smartphones en la poblacin es muy alta, estos
dispositivos nos proporcionan nuevas funcionalidades, tratndose de pequeos
ordenadores. Android se ha impuesto como el principal sistema operativo, en cuanto a
cuota de mercado, de la presente generacin de telfonos mviles. En este trabajo se
ha desarrollado una aplicacin permite controlar a un usuario en un espacio abierto,
conociendo su ubicacin en determinados intervalos de tiempo, lo cual puede ser
utilizado para emitir alarmas si un usuario sale de un determinado rea de control o se
acerca a un rea restringida. Pero tambin puede ser utilizado para actuar frente a
determinados dispositivos, segn el usuario se acerca a ellos (por ejemplo, abrir
puertas y/o garajes segn se acerca el usuario a una determinada entrada o salida). A
lo largo de este documento se va a dar a conocer una breve historia de la telefona
mvil y se va a describir el proceso de diseo y desarrollo de la aplicacin mencionada.
El desarrollo comprende, no slo la aplicacin cliente que se instalar y ejecutar en el
telfono mvil, sino tambin una aplicacin servidora que interprete la informacin
recibida desde el telfono.
ABSTRACT
The market penetration of smartphones in the population is very high, these devices
give us new features, being small computers. Android has emerged as the main
operating system, in terms of market share, of the current generation of mobile
phones. This paper has developed an application enables a user control in an open
space, knowing their location in certain time intervals, which can be used to issue
alarms when a user leaves a certain area of control or approaches a restricted area. It
can also be used for action on certain devices, as you get closer to them (for example,
opening doors and/or garages as it approaches the user to a specific input or output).
Throughout this document is to disclose a brief history of mobile telephony and will
describe the process of design and development of the aforementioned application.
The development includes not only the client application that will install and run on
the mobile phone but also a server application that interprets the information received
from the phone.
ndice de contenido
ndice de figuras ....................................................................................................... 5
ndice de tablas ........................................................................................................ 7
ndice de acrnimos ................................................................................................. 8
1
Introduccin ................................................................................................... 9
1.1
Motivacin ......................................................................................................... 9
1.2
Objetivos .......................................................................................................... 11
2.2
Plataformas mviles......................................................................................... 14
2.3
2.2.1
Android ................................................................................................. 15
2.2.2
iOS ......................................................................................................... 16
2.2.3
Blackberry ............................................................................................. 17
2.2.4
2.2.5
Symbian................................................................................................. 19
2.2.6
GPS ................................................................................................................... 21
2.3.1
Historia .................................................................................................. 21
2.3.2
2.3.3
Geo-Fence ............................................................................................. 22
3.2
3.3
3.4
3.5
4.2
4.3
4.4
4.3.1
Requisitos .............................................................................................. 35
4.3.2
Diseo .............................................................................................................. 37
4.4.1
4.4.2
Servidor ................................................................................................. 42
4.4.3
Desarrollo ..................................................................................................... 45
5.1
5.1.2
5.1.3
5.2
Servidor ............................................................................................................ 56
5.3
6.2
Conclusiones .................................................................................................... 69
7.2
Bibliografa ............................................................................................................. 71
ANEXO 1. Presupuesto y planificacin del trabajo ................................................... 72
ndice de figuras
Figura 1: Evolucin de la red mvil [3] ....................................................................................................... 13
Figura 2: Evolucin de los terminales mviles [4] ....................................................................................... 13
Figura 3: Grfico cuota de mercado ........................................................................................................... 20
Figura 4: Ejemplo de una aplicacin Geo-Fence [10].................................................................................. 23
Figura 5: Primer telfono en incorporar Android [11] ................................................................................ 25
Figura 6: Arquitectura de Android [12]....................................................................................................... 26
Figura 7: Cuota de mercado de las diferentes versiones de Android [13] .................................................. 29
Figura 8: Ciclo de vida de una Actividad [13].............................................................................................. 30
Figura 9: Entorno de desarrollo de aplicaciones para Android ................................................................... 32
Figura 10: Eleccin del mtodo de delimitacin del rea ........................................................................... 37
Figura 11: Diseo interfaz simple ............................................................................................................... 39
Figura 12: Diseo interfaz con mapa incluido ............................................................................................ 39
Figura 13: Pantalla de configuracin con pestaas .................................................................................... 40
Figura 14: Diagrama de flujo de la aplicacin mvil .................................................................................. 41
Figura 15: Diseo pantalla inicio servidor .................................................................................................. 42
Figura 16: Apariencia del servidor segn la situacin del individuo ........................................................... 43
Figura 17: Esquema de conexin entre cliente y servidor........................................................................... 44
Figura 18: Aplicacin que obtiene las coordenadas geogrficas ................................................................ 46
Figura 19: Simulacin de la ubicacin utilizando DDMS ............................................................................. 47
Figura 20: Interpretacin de las coordenadas obtenidas ........................................................................... 48
Figura 21: Marca utilizada para mostrar la situacin del usuario.............................................................. 49
Figura 22: Interfaz con mapa incluido ........................................................................................................ 49
Figura 23: Lista doblemente enlazada........................................................................................................ 50
Figura 24: Pantalla de introduccin de la contrasea ................................................................................ 51
ndice de tablas
ndice de acrnimos
API
DDMS
EDGE
GPS
GSM
HSPA
HTML
IP
LTE
NFC
OHA
Open Handset Alliance (Alianza comercial formada por Google entre otros)
PDA
SDK
SMS
TCP
UDP
UMTS
Wi-Fi
1 Introduccin
En esta primera parte se va a dar a conocer una idea general de lo que el lector
se va a encontrar a lo largo de este documento.
A lo largo de esta memoria se va a presentar un Trabajo Fin de Grado en el cul
se desarrolla una aplicacin cliente-servidor que tiene como objetivo el seguimiento y
control de individuos en entornos abiertos a travs de la plataforma para mviles
Android.
El funcionamiento de la aplicacin mvil se basa en el GPS del dispositivo mvil,
controlando la posicin del usuario en intervalos de tiempo configurables advirtiendo
al servidor si en algn momento se sale del rea que se ha definido previamente.
Adems de la funcionalidad principal, se han incluido otras como la posibilidad de
mandar un mensaje al servidor y la posibilidad de aadir puertas, es decir, al
aproximarnos a un determinado lugar advertir al servidor y ste dar la orden de abrir
una determinada puerta, esto es muy interesante en un entorno como puede ser un
campus de una Universidad o un complejo empresarial.
Para la realizacin de un trabajo fin de grado, es muy importante conocer
desde el principio los objetivos que se quieren alcanzar y la motivacin con la que
contamos.
1.1
Motivacin
10
1.2
Objetivos
Los objetivos que se quieren alcanzar con este trabajo fin de grado se han
planificado teniendo en cuenta:
11
algunos pases como Estados Unidos esta tecnologa ya est disponible. En Europa an
tenemos que esperar a que se ponga en funcionamiento. LTE Advanced permitir
hasta 1 Gbps de velocidad de descarga, adaptndose a las nuevas necesidades de los
usuarios, en las que predomina la visualizacin y descarga de video de alta definicin
[2].
En la siguiente imagen se puede observar la evolucin llevada a cabo sobre la
red mvil:
13
2.2
Plataformas mviles
14
2.2.1 Android
Android es un sistema operativo basado en Linux,
desarrollado por la Open Handset Alliance, la cual lidera Google. Se
trata de un sistema abierto, lo que le otorga mltiples ventajas. Su
lanzamiento tuvo lugar en Octubre de 2008, su principal objetivo
fue plantar cara al reciente sistema operativo mvil lanzado por
Apple. Es el sistema operativo que ms ha crecido en los ltimos aos. Ha
experimentado un aumento de cuota de mercado del 145% en el ltimo ao, lo que le
ha permitido alcanzar un 59%, superando con creces el 36.1% con el que contaba en
2011.
Telfonos: Numerosas marcas han optado por incluir Android en sus equipos.
Algunas de estas marcas son: Samsung, Sony Ericsson, LG, HTC, Huawei, etc.
Hay gran variedad de dispositivos, desde terminales muy bsicos a dispositivos
de gama alta dispuestos a plantarle cara al iPhone.
2.2.2 iOS
Perteneciente a Apple y originalmente pensada para iPhone.
Posteriormente se ha portado a otros dispositivos de la compaa
como el iPad y el iPod Touch. Se trata de una versin reducida del
sistema Mac OSX existente para ordenadores. Fue presentado en
2007 conjuntamente con el primer iPhone. Con este sistema operativo, Apple fue
pionera con el concepto de telfonos inteligentes tal y como los conocemos hoy.
Segn International Data Corporation cuenta con un 23% de cuota de Mercado en el
primer cuatrimestre de 2012 (crecimiento del 88%).
Aplicaciones: Sin lugar a dudas la clave del xito del iPhone, Apple fue la
primera en apostar por una tienda de aplicaciones. Apple otorga el 70% de los
ingresos al desarrollador y se queda con el 30%. El 3 de Marzo de 2012 cumpli
25 mil millones de descargas.
Conclusin: Se trata de un gran sistema operativo, con un gran soporte que apenas
cuenta con carencias. Existe una gran cantidad de informacin para poder desarrollar
con esta plataforma.
16
2.2.3 Blackberry
Desarrollado por la empresa canadiense Research
In Motion, tuvo sus inicios en el 1999. Incorpor a las
funciones tpicas de los telfonos mviles el acceso al
correo electrnico e internet. Aunque este sistema est
orientado especialmente para un uso profesional (dar
servicio a las empresas y profesionales), ha tenido un gran xito entre los jvenes
debido a su servicio de mensajera instantnea. Su cuota de mercado ha sufrido una
cada del 30%, siendo su cuota en el primer cuatrimestre de 2012 del 9.7%, frente al
13.6% con el que contaba apenas un ao atrs.
Ventajas: Para un determinado tipo de usuario puede ser una ventaja que la
mayora de terminales cuenten con un teclado fsico, el cual es ms cmodo
para escribir. La mayora de operadores cuentan con tarifas especficas para
usuarios con Blackberry. Permite varios lenguajes de programacin para su
desarrollo.
Inconvenientes: Lo que para algunos caso era una ventaja, el teclado fsico no
est muy recomendado para navegar. Permite una escasa personalizacin de
sus dispositivos. No posee tantas aplicaciones como, por ejemplo, Android e
iOS.
17
Ventajas: Microsoft ha apostado fuerte por los servicios en la nube, cuenta con
una gran compatibilidad con Windows Live. Se prev una actualizacin para
mediados de 2012, que se llamar Windows Phone 8 y que espera volverlo tan
competitivo como iOS y Android.
Aplicaciones: Cuenta con una gran tienda de reciente llegada pero de gran
calidad, Market Place, aunque an no existe gran variedad de aplicaciones.
Microsoft permite dos formas distintas de implementar las aplicaciones, una es
mediante Microsoft Silverlight y la otra es mediante Microsoft XNA Framework
con la que tambin podemos desarrollar juegos para XBOX 360.
Telfonos: Cuenta con varios fabricantes. Samsung, LG, HTC cuentan con
modelos con este sistema operativo, mientras que Nokia ha apostado por
Windows Phone como su sistema operativo para sus nuevos dispositivos.
Conclusin: Gran plataforma, pero de reciente llegada, aun se tiene que consolidar en
el mercado. Respecto al desarrollo, Microsoft cuenta con el Centro de Desarrollo de
MSDN en el cual podemos encontrar mucha informacin.
18
2.2.5 Symbian
Fue fruto de la alianza de varias empresas de
telefona mvil, entre las que se puede destacar Nokia, Sony
Ericsson, Samsung, Siemens, etc. En sus inicios su objetivo
era competir con Palm, un sistema operativo pensado para
las PDAs. Es el sistema operativo que utilizan la mayora de los telfonos de Nokia,
aunque, como se acaba de decir, esta ltima ha pactado con Microsoft para incorporar
Windows Phone en sus terminales. Pese a todo Nokia ha asegurado soporte hasta
2016. Su cuota de mercado ha cado un 60.6% respecto al ao pasado. Actualmente su
cuota de mercado es de 10.4% frente al 26% de 2011.
19
Android
iOS
Symbian
BlackBerry OS
Windows Phone
Otros
2.3
GPS
2.3.1 Historia
El nacimiento del GPS tiene sus orgenes en los primeros intentos soviticos y
estadounidenses mediante el sistema TRANSIT, en el que las actualizaciones de
posicin se realizaban cada 40 minutos. Gracias al desarrollo de relojes atmicos fue
posible poner en rbita varios satlites sincronizados entre ellos.
En 1973 se desarrollo el NAVSTAR GPS tras la combinacin de los programas de
la Armada y el de la Fuerza Area de los Estados Unidos. Fue lanzado por primera vez
en 1978, pero no fue hasta 1989 tras el lanzamiento de nuevos satlites cuando
empez a prestar servicio. En 1995 el sistema alcanz su pleno rendimiento, aunque
continua recibiendo actualizaciones hasta hoy da, con el objetivo de mejorar su
precisin.
Cabe destacar que el sistema GPS fue pensado inicialmente para aplicaciones
militares. Anteriormente exista lo que se denominaba como disponibilidad selectiva,
lo que limitaba los receptores no militares, pero esto fue eliminado. Actualmente el
servicio militar de Estados Unidos, puede introducir errores, modificando la precisin
de los dispositivos [9].
2.3.3 Geo-Fence
Una aplicacin Geo-Fence, puede traducirse al espaol como Geo-Valla, es un
permetro virtual sobre un determinado rea geogrfico real. Este permetro puede ser
formado por un crculo o en casos ms sofisticados por lmites predefinidos ajustados a
las necesidades del usuario.
La caracterstica de esta aplicacin es que puede alertar al usuario al entrar o
salir de la zona delimitada, ya sea a travs de un SMS, un e-mail o un mensaje a un
servidor.
Este tipo de aplicaciones nos proporciona varias funcionalidades, como puede
ser el control de personas con alzhimer, la localizacin de nios, ya que se notificar
22
23
Google Maps: Servicio web que nos permite observar imgenes sobre
todo el mundo obtenidas va satlite.
terminal en incorporar Android fue el HTC Dream, tambin se le conoce con el nombre
T-Mobile G1.
acercndonos por tanto al concepto Internet de las Cosas que hace referencia a que
en un futuro cercano todos los objetos van a estar interconectados entre s, creando
una red enorme de dispositivos conectados.
3.1
Arquitectura de Android
26
27
3.2
Versiones de Android
Las primeras versionas lanzadas fueron Android 0.9 y 1.0, la cual recibi una
nueva versin que incorpor cambios estticos pasndose a llamar 1.1. A partir de ah,
empiezan las versiones interesantes de Android. Como curiosidad cabe destacar que
las versiones de Android reciben nombres basados en postres en ingls, a cada versin
le corresponde un postre que empieza por una letra distinta que sigue un orden
alfabtico. Procedo a comentar las novedades introducidas por las distintas versiones
de Android
28
3.3
29
30
3.4
Herramientas de desarrollo
31
3.5
Google Play
33
4.1
34
misma aplicacin puede ser tenida en cuenta para los presos en tercer grado, o
para aquellos casos en los que hay una sentencia de alejamiento.
Como se puede ver las situaciones en las que se pueden necesitar tener el
control de un individuo son varias, adems de las nuevas necesidades que vayan
surgiendo. En los prximos apartados se contar la solucin que se propone para estos
problemas.
4.2
Planteamiento de la solucin
4.3
4.3.1 Requisitos
Los requisitos de la aplicacin vienen determinados por las posibilidades que
nos ofrecen tanto hardware como software. A nivel de hardware podemos
encontrarnos limitaciones debido a los diferentes tipos de resoluciones existentes,
pero a partir de la versin de Android 1.6 Donut, nos proporciona la posibilidad de que
35
36
4.4
Diseo
37
Para facilitar la configuracin por parte del usuario, se decide que la solucin
est basada en el rea definido por el crculo.
El clculo de la distancia entre el individuo y el centro del rea de seguridad se
llevar a cabo con la frmula de Haversine. Esta frmula nos dar una medida ms
aproximada de la distancia entre dos puntos en una superficie esfrica. Para un par de
puntos situados en una esfera:
( )
siendo:
( )
es la funcin haversine,
( )
( )
siendo:
es
( )
Interfaz sencilla: De esta forma se puede dar una visin similar a la que puede
producir una consola de comandos, limitndose nicamente a mostrar la
informacin. Adems se incorpora un botn de configuracin, que nos dar
oportunidades de personalizacin.
38
39
40
41
4.4.2 Servidor
El servidor se puede desarrollar en cualquiera de los lenguajes de programacin
disponibles, pero teniendo en cuenta que el alumno est muy familiarizado con el
lenguaje Java, que adems va a utilizar en el diseo de la aplicacin Android, ser el
lenguaje elegido.
La idea es una pequea aplicacin Java, que este siempre abierta y recoja los
datos enviados por el terminal mvil. Adems, el servidor interpretar los mensajes
recibidos, es decir, la pantalla se volver roja si el individuo se sale del rea de
seguridad y se mantendr blanca si esta todo correcto.
Al iniciarse el servidor, mostrara una pantalla simple, de un tamao aproximado
de 300 x 250 pixeles. Aparecer un mensaje de esperando conexin, hasta que reciba
alguna notificacin del telfono mvil. A continuacin se muestra la pantalla de inicio
del servidor:
42
Orientados a conexin
Se garantiza la transmisin de todos los datos sin errores
Se garantiza que todo llegar en orden.
43
44
5 Desarrollo
5.1
Aplicacin mvil
45
46
El resultado devuelto por el mtodo anterior debe ser interpretado, dado que el
rea definido es circular, es suficiente con fijar una distancia limite y compararla con la
obtenida, si da como resultado una distancia mayor, el sujeto estar fuera de la zona
de seguridad y dentro si la distancia es menor. A continuacin se muestran las nuevas
funciones aadidas, clculo de distancia e interpretacin de los resultados.
48
49
Con el objetivo de llamar la atencin del usuario, se aade una alarma sonora
para el caso en el que el sujeto se encuentra fuera del rea de seguridad. Se
implementar mediante un servicio, es decir, reproduccin en segundo plano, que
hereda de la clase Service. Debemos sobrecargar cuatro mtodos para su correcto
funcionamiento:
50
51
52
Esta pestaa nos permite conocer las puertas que tenemos insertadas en la
aplicacin, adems de poder borrarlas o aadir otras puertas nuevas. Pulsando sobre
el botn Guardar, guardamos todos los datos modificados y nos devuelve a la pantalla
de inicio de la aplicacin.
54
55
5.2
Servidor
56
57
5.3
En el lado del servidor, no requiere que se utilice ningn tipo de aplicacin Java
especial, basta con crear un objeto de tipo ServerSocket y otro de tipo
ObjectInputStream para establecer el flujo de entrada de datos. En el siguiente
fragmento de cdigo se muestra el procesado de informacin por parte del servidor:
private void procesarConexion() throws IOException{
do { // procesar los mensajes enviados por el cliente
try {
String mensajeRecibido = (String)entrada.readObject();
System.out.println(mensajeRecibido);
if (mensajeRecibido.equals("CLIENTE>>> PELIGRO EL SUJETO
SE FUGA")){
areaPantalla.setBackground(Color.red);
}
if (mensajeRecibido.equals("CLIENTE>>> Todo correcto")){
areaPantalla.setBackground(Color.white);
}
mostrarMensaje("\n" + mensajeRecibido);
}
catch (ClassNotFoundException excepcionClaseNoEncontrada) {
mostrarMensaje("\nSe recibi un objeto desconocido");
}
} while (!mensaje.equals("CLIENTE>>> TERMINAR"));
} // fin del mtodo procesarConexion
6 Resultados y evaluacin
En esta seccin se presentan las pruebas realizadas a las distintas partes de la
aplicacin. Se van a realizar pruebas de dos modos, en primer lugar mediante el
emulador y su correspondiente simulacin de la posicin y en segundo lugar en el
Campus de la Universidad Carlos III de Legans.
El objetivo es comprobar el funcionamiento de la aplicacin mvil y su correcta
conexin con el servidor instalado en un ordenador porttil.
6.1
Por otro lado, si el sujeto se encuentra fuera del rea de seguridad como ocurre
a las 20:01:26 en la que la distancia al centro es de 3.336 kilmetros, el servidor
60
cambia el color de su pantalla indicando una situacin de peligro por fuga del sujeto,
adems para llamar la atencin del usuario se emite una seal de alarma, reflejado en
la figura 34.
61
62
Se puede concluir que las pruebas realizadas con el emulador han sido muy
satisfactorias, pasando por tanto al ltimo paso, probarlo en un dispositivo real.
63
6.2
64
65
Figura 43: Situacin de las puertas en el Campus de Legans de la Universidad Carlos III de Madrid
66
En esta figura se muestra una captura de pantalla del dispositivo situado en las
cercanas de la puerta nmero 2.
67
Figura 46: Abierta puerta n3 situada en la puerta del edificio Torres Quevedo
Al igual que en las pruebas realizadas con el emulador, se puede afirmar que las
pruebas han sido muy satisfactorias.
68
Conclusiones
69
7.2
Lneas futuras
70
Bibliografa
[1] El primer telfono mvil de la historia. http://www.elguruinformatico.com/el-primer-telefono-movilde-la-historia/
71
FASES
HORAS EMPLEADAS
Documentacin inicial
Desarrollo de la aplicacin
Pruebas en un dispositivo real
Elaboracin de la memoria
TOTAL
70
120
30
80
300
72
CONCEPTO
PRECIO ()
100
16.66
116.66
COSTES DE PERSONAL
Para la realizacin de este trabajo, ha sido necesaria la presencia de un jefe de
proyecto y un ingeniero.
Tabla 3: Costes de personal
OCUPACIN
HORAS
PRECIO/HORA
IMPORTE ()
25
275
300
90
60
2250
16500
18750
Jefe de proyecto
Ingeniero
TOTAL
COSTES TOTALES
Tabla 4: Costes totales
CONCEPTO
PRECIO ()
Costes de materiales
Costes de personal
Costes indirectos (20%)
Subtotal
IVA (18%)
TOTAL
116.66
18750
3773.33
22639.99
4075.19
26715.19
El coste total del proyecto es de veintisis mil setecientos quince euros con diecinueve
cntimos.
Legans, 15 de Junio de 2012
El ingeniero
73