Aplicación en Android para elaborar un mapa de ruido con un Smartphone



Documentos relacionados

Desarrollo de apps para móviles Android. Entorno de desarrollo

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Tema 2: Introducción a Android

1.1. Instalación del entorno de desarrollo

Guía de instalación del software de la asignatura

Entorno de desarrollo Instalación y configuración

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?

Instalación De ANDROID STUDIO

AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google

Internet Information Server

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

App para realizar consultas al Sistema de Información Estadística de Castilla y León

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

Guía de uso del Cloud Datacenter de acens

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C.

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

MANUAL DE AYUDA. MODULO SAT (Anexo Integración AGIL SAT)

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Tutorial: Instalación de Eclipse para programar Android en Windows

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Accesibilidad web GUÍA FUNCIONAL

Plantillas Office. Manual de usuario Versión 1.1

Notas para la instalación de un lector de tarjetas inteligentes.

INSTALACIÓN DE MEDPRO

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

WINDOWS : TERMINAL SERVER

MANUAL APLICACIÓN. SOFTWARE GESTIÓN DE CLÍNICAS DENTALES

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

1.- DESCRIPCIÓN Y UTILIDAD DEL SOFTWARE DAEMON TOOLS.

Anexo A Diagramas de Navegación

MANUAL DE USUARIO PARA LA INSTALACION DE LOS AGENTES COMMVAULT SIMPANA 9.0

DOCUCONTA Versión Septiembre 2010 MINISTERIO DE HACIENDA. Manual de instalación SECRETARÍA DE ESTADO DE PRESUPUESTOS Y GASTOS

TPV Táctil. Configuración y Uso. Rev /01/09

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

TUTORIAL DE INSTALACIÓN PARA VIRTUALBOX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Redes de área local: Aplicaciones y servicios WINDOWS

1. El entorno de desarrollo Eclipse

PLANTILLAS DE DOCUMENTOS EN WORD 2007

Manual instalación Windows 8. Instalar Windows 8 paso a paso

Configuración de PDAs en ITACTIL.

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

GUÍA DE USUARIO: GOOGLE DRIVE

Instalación del Admin CFDI

Ajustes del Curso en egela (Moodle 2.5)

Manual de usuario de Windows Live Writer

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

VideoSoftPHONE Active Contact

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

V i s i t a V i r t u a l e n e l H o s p i t a l

Guía de instalación del servidor

10. El entorno de publicación web (Publiweb)

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

CONFIGURACIÓN DE SOFTPHONES

PS.Vending Almacén Pocket PC

Guía de inicio rápido a

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

Manual hosting acens

MANUAL DE USUARIO. Se deben seguir los siguientes pasos para la correcta instalación del módulo descargable:

RESUMEN. Solución web usable para la gestión de dispositivos móviles en empresas

COMO CREAR UN PROYECTO EN ANDROID. Para crear un proyecto en androide se necesitamos los siguientes software para realizar lo en un simulador.

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

CONFEDERACIÓN DE EMPRESARIOS DE MÁLAGA

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Así de fácil. Cortar, descargar y convertir vídeos o sonidos. Controles avanzados del reproductor multimedia VLC

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013.

Ejecución del programa de instalación de Windows XP

Introducción a los sitios de SharePoint en Office 365

Programa Maestro. E-Learning Class v 6.0

MANUAL DE CONFIGURACIÓN PARA EL ACCESO A RECURSOS-e RED DE BIBLIOTECAS DEL INSTITUTO CERVANTES

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

Tutorial de carga de fotos en

Person IP CRM Manual MOBILE

NOVEDADES DE WINDOWS 10

Guía de instalación de la carpeta Datos de IslaWin

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

V Manual de Portafirmas V.2.3.1

UNIDAD I PROCESADOR DE TEXTOS

COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC

Instalación de Fedora Core 18 junto a Windows 7.

Manual de NetBeans y XAMPP

MANUAL DE USUARIO DE UNIFIED IM

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Software Visiorecord para PC. Software Visiorecord para PC

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Sesión No. 11. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Heimdal Free POS Guía de instalación y puesta en marcha

Manual de uso básico de la aplicación

Oficina Online. Manual del administrador

Manual de configuración de Thunderbird ÍNDICE

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

Informática. Cómo haría yo un blog y un moodle?

Transcripción:

Ingeniería Técnica en Informática de Sistemas Aplicación en Android para elaborar un mapa de ruido con un Smartphone Presentado por: Roberto Garcia Porcellá Dirigido por: Raul Montoliu Colás Castellón de la Plana, 6 de Septiembre de 2012

2

Resumen El presente proyecto consiste en el desarrollo de una aplicación en Android que será utilizada en teléfonos móviles táctiles (Smartphones), cuya funcionalidad es saber el nivel de ruido que hay por los lugares por donde el usuario transcurre diariamente. Para ello se dispone de una interfaz grafica en la que se puede activar y desactivar el muestreo y ver tanto en una tabla como en un mapa, las zonas por las que se ha pasado y el ruido que ha soportado. La aplicación ha sido implementada para el sistema operativo Android y se ha tenido en cuenta en todo momento la tecnología de pantalla táctil que incorporan los dispositivos móviles de última generación, la opción que tienen todos los smartphones para tener conexión a Internet y como obtener la localización en cada momento (GPS) 3

Índice Resumen 3 Índice 4 Índice de figuras 5 1. Introducción 6 1.1 Motivación... 6 1.2 Qué es Android?.... 7 1.3 Por qué una aplicación en Android?... 9 1.4 Conceptos básicos... 10 1.5 Objetivo de la aplicación. 11 1.6 Herramientas utilizadas... 11 2 Planificación 12 2.1 Identificación de las tareas 12 2.2 Seguimiento del proyecto.. 14 2.2.1 Planificación prevista.. 14 2.2.2 Planificación real... 16 3 Programar en Android 19 3.1 Qué se necesita? 19 3.2 Cómo se programa?.. 23 3.3 Cómo se instala la aplicación en un móvil?.. 34 4 Desarrollo de la aplicación 35 4.1 Análisis 35 4.2 Diseño de la interfaz 36 4.3 Implementación.. 39 4.4 Pruebas 43 4.5 Aplicación finalizada.. 44 5 Utilización de la aplicación 48 6 Mejoras y trabajo futuro 49 Bibliografía 50 4

Índice de figuras Figura 1.2.1 Estructura del S.O Android 7 Figura 2.2.1 Tabla planificación prevista. 14 Figura 2.2.2 Diagrama de Gantt de la planificación prevista... 15 Figura 2.2.3 Tabla planificación real 16 Figura 2.2.4 Diagrama de Gantt de la planificación real.. 17 Figura 3.1.1 Descarga Eclipse.. 19 Figura 3.1.2 Descarga Android SDK... 20 Figura 3.1.3 Actualizando Android SDK 21 Figura 3.1.4 Configurando AVD. 22 Figura 3.2.1 Pantalla inicial para crear un nuevo proyecto.. 23 Figura 3.2.2 Pantalla para diseñar el icono de la aplicación. 24 Figura 3.2.3 Pantalla para crear la actividad. 25 Figura 3.2.4 Pantalla para configurar la actividad 26 Figura 3.2.5 Estructura inicial de carpetas 26 Figura 3.2.6 Ejemplo de código de la parte gráfica.. 27 Figura 3.2.7 Ejemplo de código de la parte funcional.. 28 Figura 3.2.8 Pantalla inicial para generar la firma... 29 Figura 3.2.9 Asistente de ayuda (chequeo del proyecto).. 30 Figura 3.2.10 Asistente de ayuda (crear una clave).. 31 Figura 3.2.11 Asistente de ayuda (asignación de datos)... 32 Figura 3.2.12 Asistente de ayuda (Ubicación donde guardar el apk firmado)... 33 Figura 4.2.1 Pantalla inicio... 36 Figura 4.2.2 Inicio cargando datos 36 Figura 4.2.3 Pantalla con mapa y resultados. 37 Figura 4.2.4 Barras de filtrado.. 38 Figura 4.3.1 Estructura de la carpeta src.. 39 Figura 4.3.2. Estructura de la primera ventana. 41 Figura 4.3.3. Estructura de la segunda ventana 42 Figura 4.5.1 Pantalla principal. 44 Figura 4.5.2 Primera ejecución 44 Figura 4.5.3 Obteniendo el sonido... 44 Figura 4.5.4 Cinco seg. parada 44 Figura 4.5.5 Aplicación parada 45 Figura 4.5.6 Botón View Map. 45 Figura 4.5.7 Tabla con valores 45 Figura 4.5.8 Organizada por distancia. 45 Figura 4.5.9 Organizada por fecha 46 Figura 4.5.10 Organizada por valor.. 46 Figura 4.5.11 Probando filtro (I)... 46 Figura 4.5.12 Probando filtro (II). 46 5

1. Introducción 1.1 Motivación La realización de cualquier actividad humana suele llevar aparejado un nivel sonoro de mayor o menor intensidad. Estos sonidos en función del tipo, lugar, duración y el momento del día en que se producen pueden resultar desde molestos a llegar a alterar el bienestar físico y psíquico de los seres vivos. Cuando esto sucede hablamos de Ruido y es considerado como Contaminación. La Contaminación Acústica es considerada en la actualidad como una de las formas de contaminación ambiental que más contribuyen al deterioro de la calidad ambiental del territorio. Diversos estudios realizados sobre la contaminación acústica en las grandes ciudades indican que la contaminación acústica es un fenómeno generalizado en todas las zonas urbanas y constituye un problema medioambiental cada vez más importante. Gracias al volunteered geographic information (VGI) que es un programa donde voluntarios de todo el mundo están contribuyendo a recopilar y mostrar información geográfica, podemos saber los cambios que hay en la biodiversidad, contaminaciones que nos pueden afectar, etc. Este es uno de los motivos por los que se realiza esta aplicación, ya que se podría ayudar a obtener información sobre la contaminación acústica. Para realizar las mediciones de ruido se necesitan muchos instrumentos y accesorios como sonómetro o decibelímetro, calibrador acústico, pantalla anti viento, trípode, micrófono, preamplificador, etc. por tanto, Por qué no aprovechar la tecnología de los móviles (Smartphones) que utilizamos hoy en día para simplificar y no llevar tantos aparatos? Está claro que la medición no es tan precisa como lo que se puede obtener con estos instrumentos, pero si lo que se quiere es hacer una medición a modo de curiosidad o no se precisa de tanta exactitud se puede tener al alcance de la mano. Este es otro de los motivos por los cuales se dio inicio a este proyecto ya que con un smartphone se puede obtener mayor información, con mayor rapidez y mayor comodidad con solo un dispositivo. Podemos capturar el sonido mediante el micrófono, saber la localización mediante el GPS, ver el mapa accediendo a Internet y consultar cualquier muestra utilizando la pantalla táctil de la que se dispone. 6

1.2 Qué es Android? Android es un sistema operativo diseñado inicialmente para smartphones y tablets aunque hoy en día también hay otros dispositivos que funcionan con Android como pueden ser: relojes, reproductores de MP3, ordenadores, netbooks e incluso televisores. Está basado en el núcleo de Linux y permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptadas por Google mediante el lenguaje de programación Java. El siguiente diagrama muestra los principales componentes del sistema operativo Android. Figura 1.2.1 Estructura del S.O Android 7

Características: Un Framework que permite la reutilización y sustitución de componentes. Máquina virtual de Dalvik optimizada para dispositivos móviles. Navegador integrado basado en el motor de código libre WebKit. Gráficos optimizados proporcionados por una colección de librerías gráficas 2D personalizadas; Gráficos 3D basados en la especificación OpenGL ES 1.0 (aceleración hardware opcional). SQLite para almacenamiento de datos estructurados. Soporte multimedia para audio, vídeo, y formatos de imágenes (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG,GIF). Telefonía GSM (dependiente del hardware). Bluetooth, EDGE, 3G, y WiFi (depende del hardware del móvil). Cámara, GPS y acelerómetro (depende del hardware del móvil). Un rico entorno de desarrollo incluyendo un emulador de dispositivos, herramientas para depuración, perfiles de rendimiento y memoria y plugin para el IDE Eclipse. 8

1.3 Por qué una aplicación en Android? La aplicación se desarrollara en el sistema operativo Android por las numerosas ventajas que presenta, por ejemplo: Android es fácil de aprender. Si se tienen conocimientos de cómo programar en Java o C#, solo se debe obtener el SDK de Android, incorporarlo al IDE y comenzar a aprender lo básico para empezar a desarrollar en Android. Android es sencillo de instalar. Por ello, esta presente en multitud de dispositivos y abarca desde relojes hasta televisores. Android es open source (código abierto). De esta forma se evitan problemas de licencias, problemas comerciales y se mantiene el código base. Android gestiona inteligentemente los recursos de que dispone. Con esto se evita que aplicaciones multitarea deje sin recursos al dispositivo y hace que funcione correctamente. Android tiene una comunidad muy extensa de desarrolladores y usuarios. Gracias a ello se pueden compartir soluciones o ideas y resolver dudas o problemas que puedan ir surgiendo durante el desarrollo. Android te da la posibilidad de manejar y gestionar cualquier parte o accesorio del dispositivo. Tiene una gran cantidad de herramientas que te ayudan a mantener el control de aplicación, como por ejemplo el uso de la memoria, el manejo de la interfaz táctil, la comunicación con los demás terminales, etc. 9

1.4 Conceptos básicos Se define a continuación la terminología utilizada en el presente proyecto a fin de que este sea fácil y cómodo de entender. - Android: Sistema operativo móvil en el que nos vamos a basar para realizar la aplicación. - Java: Lenguaje de programación de alto nivel orientado a objetos que se va a utilizar para programar la aplicación. - Eclipse: Entorno de desarrollo de código abierto con el que se ha diseñado, elaborado y compilado la aplicación. - Ruido: En el campo de la contaminación acústica, es el sonido con intensidad alta que puede resultar incluso perjudicial para la salud humana. - Mapa de ruido: Es la representación cartográfica de los niveles de ruido existentes en una zona concreta y en un período determinado. - Contaminación acústica: exceso de sonido que altera las condiciones normales del ambiente en una determinada zona provocado por las actividades humanas (tráfico, industrias, locales de ocio, aviones, etc.), y produce efectos negativos sobre la salud auditiva, física y mental de las personas. - Smartphone: teléfono móvil inteligente construido sobre un sistema operativo móvil, con una mayor capacidad de computación y conectividad que un teléfono movil convencional. Tiene la capacidad de conectarse a Internet, integrar GPS, cámara de fotos y acelerómetro, etc. - Interfaz de usuario: es el medio con que el usuario puede comunicarse con el movil, y comprende todos los puntos de contacto entre la persona y el dispositivo. Normalmente suelen ser fáciles de entender y fáciles de accionar. Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas, algunos sonidos que el movil hace, y en general, todos 10

aquellos canales por los cuales se permite la comunicación entre el ser humano y los dispositivos. 1.5 Objetivo de la aplicación El objetivo de este proyecto es el de desarrollar una aplicación para teléfonos móviles que incorporen el sistema operativo Android, que permita de forma sencilla y cómoda, obtener los datos del lugar donde se encuentra el usuario y el ruido que está soportando para hacer un mapa de ruido. Los principales objetivos del proyecto son los siguientes: 1. Realizar una aplicación que nos muestre un mapa de ruido de las zonas por donde transitamos habitualmente. 2. Facilidad de uso. Se ha intentado hacer una aplicación simple para que le sea fácil al usuario utilizarla en un momento dado y pueda obtener los resultados sin mucho esfuerzo. 3. Aprender a programar en Java. En diferentes asignaturas de la carrera de Ingeniería Técnica en Informática de Sistemas se han enseñado varios lenguajes de programación como C, Python, ensamblador, C++ pero no Java y por ello era un objetivo también aprender a programar en este lenguaje. 4. Aprender a desarrollar en Android mediante código. Existen programas diseñadores como AppInventor o Mono (entre muchos otros) con los que se pueden hacer aplicaciones mediante una interfaz grafica sin tener muchos conocimientos de Java, solo eligiendo desde un menú lo que quieres utilizar y que quieres que haga. Esta aplicación ha sido programada con Java y se ha utilizado el entorno de desarrollo Eclipse para hacer el diseño y elaborarla. 1.6 Herramientas utilizadas Las herramientas que se han utilizado para realizar este proyecto son las siguientes: Microsoft Windows 7 Eclipse Software Development Kit (SDK) de Android Java Development Kit (JDK) Microsoft Word 2007 GanttProject 2.5.5 Smartphones para realizar pruebas (Samsung Galaxy Ace y Samsung Galaxy S III) Paint 11

2. Planificación Con el fin de llevar una organización y un seguimiento de la duración de las tareas requeridas en el proyecto, se elaboró una tabla con dichas tareas y la duración estimada de cada una de ellas. A continuación se muestran dos tablas, una indicando las tareas y un cálculo estimado de horas y otra con el cálculo real de la duración de estas. Debido a la jornada laboral que se está realizando no se pudo avanzar de una manera planificada y se alargó más del periodo estipulado. 2.1 Identificación de las tareas Tras el estudio de los requisitos que debía cumplir el proyecto, se decidieron las tareas del proceso de desarrollo del proyecto. De esta manera, la organización sería la siguiente: 1. Requisitos 2. Diseño 3. Implementación 4. Pruebas A continuación se muestra la tabla con las tareas especificadas: FASE PLANIFICACION DESARROLLO CONCLUSIONES TAREAS Definición de objetivos Especificación de las tareas Instalación de las herramientas a utilizar Familiarización con el entorno de trabajo Especificación de requisitos Diseño de la interfaz Implementación Pruebas Instalación y pruebas en un dispositivo real Estudio de posibles mejoras DOCUMENTACION Elaborar la guía de uso Realización de la memoria final 12

A continuación se explica cada una de las tareas: Definición de objetivos. Tras varias reuniones con el profesor, se acordaron los objetivos que debía alcanzar el presente proyecto y las características que debía tener en su versión final. Especificación de las tareas. A partir de los objetivos establecidos, se definieron las tareas en las que debía de estar dividido el proyecto. Instalación de las herramientas a utilizar. Se buscaron, descargaron e instalaron todas las herramientas necesarias para el desarrollo. Familiarización con el entorno de trabajo. Después de haber instalado las herramientas, fue necesario un periodo de aprendizaje tanto para programar en Java como para utilizar el entorno de trabajo y las herramientas de las que se disponía. Al disponerse en carpetas los archivos que se generan en Android, hubo que hacer un esfuerzo mayor para intentar adaptarse a esta forma de programar. Se hicieron diferentes ejemplos de dificultad progresiva para ir adquiriendo conocimientos y experiencia. Especificación de requisitos. Se definieron los requisitos que debía cumplir la funcionalidad de la aplicación. Diseño de la interfaz. Se hizo un diseño sencillo e intuitivo para una mayor usabilidad y rapidez. Implementación. Se generó el código necesario para realizar todas las tareas requeridas. Pruebas. Se hicieron diferentes pruebas con el emulador de Eclipse para comprobar que no habían errores en el código y que funcionaba todo correctamente. Instalación y pruebas en un dispositivo real. Al comprobar que no daba errores en el emulador, se paso a probar la aplicación en varios móviles (Samsung Galaxy ace y Samsung Galaxy S III) que es donde realmente se va a utilizar. Estudio de posibles mejoras. Con la aplicación finalizada se miraron posibles mejoras que ampliara la funcionalidad de la aplicación. Elaborar la guía de uso. Como esta aplicación va orientada al público en general, se hizo una guía de uso para guiar al usuario a utilizarla y poder obtener y entender los resultados más fácilmente. 13

Realización de la memoria final. Se hizo la presente memoria con el objetivo de documentar todas las tareas realizadas durante la elaboración de la aplicación, la planificación y el manual de uso. 2.2 Seguimiento del proyecto Planificación prevista Como vemos en la figura 2.2.1, la fecha de inicio del proyecto fue el 3 de Octubre de 2011 y la fecha para finalizarlo era el 3 de Abril de 2012. De esta forma se cumplirían entre 300 y 350 horas de proyecto aproximadamente (descontando días festivos que no están descontados en los siguientes datos mostrados). En la siguiente tabla se muestra la planificación prevista para cada tarea: Figura 2.2.1 Tabla planificación prevista o Duración estimada proyecto: 137 días Planificación : 71 días Desarrollo : 42 días Conclusiones : 6 días Documentación : 21 días 14

A continuación se adjunta diagrama de Gantt donde se puede observar la tabla anterior de manera gráfica: Figura 2.2.2 Diagrama de Gantt de la planificación prevista 15

Planificación real Después de calcular los tiempos estimados para cada tarea, se empezó a desarrollar el proyecto intentando ajustarse a lo previsto. Aun así, no se pudo cumplir lo establecido, ya que, por motivos laborales, hubo un cambio en el horario de trabajo y esto afectó al tiempo dedicado a la realización diaria del proyecto. De esta forma, el tiempo real dedicado al proyecto se dividiría como se muestra en la siguiente tabla: Figura 2.2.3 Tabla planificación real o Duración real proyecto : 241 días Planificación : 71 días Desarrollo : 151 días Conclusiones : 6 días Documentación : 16 días 16

A continuación se adjunta diagrama de Gantt donde se puede observar la tabla de la dedicación real de manera gráfica: Figura 2.2.4 Diagrama de Gantt de la planificación real 17

Por qué hay una diferencia tan grande entre la tarea de desarrollo prevista y la real? Los motivos son los siguientes: 1. Como se comentó en la introducción, el lenguaje Java no se ha impartido en ninguna de las asignaturas estudiadas durante la carrera, por lo tanto se tuvo que aprender a programar en este lenguaje. 2. Se tuvo que adaptar los conocimientos obtenidos, a la manera de programar para Android, además de adquirir nuevos conocimientos. 3. No existía mucha información sobre código o métodos para sacar un valor absoluto del ruido que obtenemos y se tuvo que, mediante el profesor, preguntar a profesores de otras universidades (proceso que demoró también la realización de esta tarea). Con esta ayuda y buscando mucho, se pudo obtener. Observando la información obtenida de las tablas anteriores podemos comprobar que el proyecto se ha retrasado 104 días. Después del cambio de jornada laboral realizado en Noviembre, solo se podía dedicar 1 o 2 horas al día por lo que ha sido otros de los motivos del retraso sobre lo planificado inicialmente. 18

3. Programar en Android 3.1 Qué se necesita? A continuación se van a detallar las herramientas necesarias para empezar a programar y el proceso de instalación de cada una de ellas para que sea mas cómodo y fácil de entender. Para empezar a programar se necesita: Java 5.0 o superior Eclipse (Eclipse IDE for Java Developers) Android SDK Eclipse Plug-in (Android Development Toolkit - ADT) Instalación de la maquina virtual Java Este software va a permitir ejecutar código java en el equipo. Posiblemente ya este instalada en la mayoría de los equipos, pero a continuación se indica el enlace de descarga por si se tuviese que instalar de nuevo. Acceder a la web http://java.com/es/download/ y descargar e instalar el fichero correspondiente. Instalación de Eclipse Seguidamente se instalará el JDK (Java Development Kit) y el Eclipse. La versión del JDK debe ser 5.0 o superior. Eclipse es el entorno de desarrollo más recomendable para programar en Android ya que es libre y ha sido utilizado por los desarrolladores de Google para crear Android. Para descargarlo hay que acceder a la web http://www.eclipse.org/downloads/ y descargar la última versión de Eclipse IDE por Java Developers. Se puede descargar para Windows, Linux y Mac OS. Figura 3.1.1 Descarga Eclipse 19

La instalación consiste simplemente en descomprimir el zip descargado en la ubicación deseada. Para ejecutarlo se accederá al fichero eclipse.exe dentro de la ruta donde hayamos descomprimido la aplicación, por ejemplo c:\eclipse\eclipse.exe. Durante la primera ejecución de la aplicación, preguntará cuál será la carpeta donde se quieren almacenar los proyectos. Se indicará la ruta deseada y se marcará la opción check Use this as the default para que no vuelva a preguntarlo. Instalación Android SDK El siguiente paso a realizar es instalar el Android SDK de Google. Se accede a la web http://developer.android.com/sdk/index.html y se descarga la última versión del SDK para el S.O que utilicemos. Figura 3.1.2 Descarga Android SDK Una vez descargado, se instala fácilmente con el instalador del sistema operativo. Descargar el plug-in Android para Eclipse (ADT) Google pone a disposición de los desarrolladores un plug-in para Eclipse llamado Android Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma. Se puede descargar mediante las opciones de actualización de Eclipse, accediendo al menú Help / Install new software e indicando la siguiente URL de descarga: https://dl-ssl.google.com/android/eclipse/ 20

Se seleccionaran los dos paquetes disponibles Developer Tools y NDK Plugins y se pulsará el botón Next> para comenzar con el asistente de instalación. Para configurar el plug-in se tendrá que indicar la ruta en la que se ha instalado el SDK de Android. Para ello, se accede a la ventana de configuración de Eclipse (Window / Preferences ), y en la sección de Android se indicará la ruta en la que se ha instalado. Finalmente se pulsará OK para aceptar los cambios. Instalar las Platform Tools y los Platforms necesarios Además del SDK de Android que contiene las herramientas básicas para desarrollar en Android, también se deberán descargar las llamadas Platflorm Tools, que contienen herramientas específicas de la última versión de la plataforma, y una o varias plataformas (SDK Platforms) de Android, que no son más que las librerías necesarias para desarrollar sobre cada una de las versiones concretas de Android. Así, si se quiere desarrollar por ejemplo para Android 2.2 se tendrá que descargar su plataforma correspondiente. Para ello, desde Eclipse se debe acceder al menú Window / Android SDK Manager. En la lista de paquetes disponibles se seleccionarán las Android SDK Platform-tools, las plataformas Android 4.1 (API 16) y Android 2.2 (API 8), y el paquete extra Android Support Library, que es una librería que permitirá utilizar en versiones antiguas de Android características introducidas por versiones más recientes. Se pulsará el botón Install packages y una vez concluida la descarga ya estaría este paso completado. Figura 3.1.3 Actualizando Android SDK 21

Configurar un AVD Cuando se vaya a probar y depurar aplicaciones Android no hay que hacerlo necesariamente sobre un dispositivo físico, sino que se puede configurar un emulador o dispositivo virtual (Android Virtual Device, o AVD) donde poder realizar fácilmente estas tareas. Para ello, se accede al AVD Manager (menú Window / AVD Manager), y en la sección Virtual Devices se pueden añadir tantos AVD como se necesiten (por ejemplo, configurados para distintas versiones de Android o distintos tipos de dispositivo). Figura 3.1.4 Configurando AVD Para configurar el AVD hay que indicar un nombre descriptivo, la versión de la plataforma Android que utilizará, y las características de hardware del dispositivo virtual, como por ejemplo su resolución de pantalla, el tamaño de la tarjeta SD, o la disponibilidad de GPS. Además, se marcará la opción Snapshot enabled, que permitirá arrancar el emulador más rápidamente en futuras ejecuciones. 22

1.2 Cómo se programa? Para crear un nuevo proyecto hay que seguir los siguientes pasos: File --> New --> Project. Aparecerá una nueva ventana para indicar qué tipo de proyecto se quiere utilizar. Aquí se elegirá Android Project. A continuación se verá una ventana como la siguiente: Figura 3.2.1 Pantalla inicial para crear un nuevo proyecto Aquí se deben rellenar los siguientes campos: - Application name (Nombre de la aplicación): El nombre que aquí pongamos será el que aparezca en la aplicación instalada en el dispositivo, en nuestro caso, en el móvil. - Project name (Nombre del proyecto): Dentro de esta carpeta estarán todos los archivos por los que esta compuesto el proyecto. 23

- Package name (Nombre del paquete): Paquete de la aplicación, dentro de este paquete estarán todos los archivos.java de nuestro proyecto. Después de debe de elegir la versión para la que se va a programar la aplicación y la mínima con la que debería correr. Una vez rellenado esto, se le daría al botón Siguiente y nos aparecería esto: Figura 3.2.2 Pantalla para diseñar el icono de la aplicación Aquí se puede diseñar el icono de la aplicación con el que se mostrara en el dispositivo final. Se puede configurar el tamaño, la imagen, el fondo, etc. 24

Si se continúa con el asistente, muestra las siguientes opciones: Figura 3.2.3 Pantalla para crear la actividad Se puede crear una actividad vacía o una predefinida a la que podemos modificar. 25

Por último, muestra la pantalla donde se configura la actividad principal del proyecto. Figura 3.2.4 Pantalla para configurar la actividad Cuando creamos un nuevo proyecto Android en Eclipse se genera automáticamente la estructura de carpetas necesaria para poder generar posteriormente la aplicación. Esta estructura será común a cualquier aplicación, independientemente de su tamaño y complejidad. Figura 3.2.5 Estructura inicial de carpetas 26

A continuación se describirá brevemente que contiene cada una de ellas. o Src - Contiene todo el código fuente de la aplicación. o Gen - Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Se hace de esta manera porque así Android controla los recursos de la aplicación. o Assets - Contiene todos los ficheros auxiliares necesarios para la aplicación (y que se incluirán en su propio paquete), como por ejemplo ficheros de configuración, de datos, etc. o Res - Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Cada recurso tiene su propia carpeta: drawable para las imágenes, layout para los ficheros de definición de las diferentes pantallas de la interfaz grafica, etc. o Fichero AndroidManifest.xml Este fichero es muy importante ya que, aparte de definir los aspectos principales de la aplicación, contiene los permisos necesarios para su ejecución. Una vez creado el proyecto base, se puede empezar por modificar la pantalla de la aplicación. Para ello, se debe abrir el archivo /res/layout/main.xml donde está la parte grafica o /src/paquetejava/holausuario.java que es donde está la parte funcional para ir modificando lo que se necesite. Por ejemplo: Figura 3.2.6 Ejemplo de código de la parte gráfica 27

Código de la parte funcional que viene por defecto: Figura 3.2.7 Ejemplo de código de la parte funcional Posteriormente ya se puede ir ampliando el código e ir añadiendo funcionalidades para crear la aplicación. Una vez implementada y probada, el último paso que queda antes de instalarla en el móvil es exportarla a un archivo.apk que es el formato que reconocen los móviles que utilizan Android. Para ello, primero se tiene que firmar la aplicación y después generar el.apk. Tener la aplicación firmada es uno de los requisitos indispensables a la hora de compartirla con los demás o subirla al Android Market. Por qué firmar la aplicación? Como medida de seguridad y certificado de garantía Para poder instalar y distribuir la aplicación sin problemas Para que solo el autor pueda modificar y actualizar la aplicación Porque es un requisito que pide Android Market 28

Para crear un certificado de firma y generar el.apk hay que hacer lo siguiente: 1. Se abre el archivo AndroidManifest.xml del árbol de directorios y se accede a la primera pestaña llamada Manifest y en la parte de bajo aparece la sección Exporting. Figura 3.2.8 Pantalla inicial para generar la firma 29

2. Se selecciona la opción Use the Export Wizard, que es un asistente de ayuda en este proceso. El asistente seleccionara automáticamente el proyecto al que pertenece ese archivo y, si esta todo correcto, aparecerá la siguiente pantalla para poder avanzar. Figura 3.2.9 Asistente de ayuda (chequeo del proyecto) 30

3. Para firmar una aplicación es necesario tener una keystore que es un almacén de claves en dónde se encuentran todos los certificados validados que se requieren. Si es la primera vez que se va a firmar una aplicación, se debe crear una keystore. Para ello se pulsa la opción Create new keystore y se rellenan los siguientes campos: Location: Será el directorio del PC dónde se quiere que se guarde la keystore y se le da un nombre. Password: La keystore deberá tener una contraseña de 6 dígitos o más para crearla. Figura 3.2.10 Asistente de ayuda (crear una clave) Una vez confirmada, se le da a Next. 31

4. En la siguiente pantalla hay que rellenar el formulario para asignar los datos a la keystore. Alias: Un alias para la keystore, puede ser el mismo que el del nombre o una abreviación del mismo. Password: Nuevamente se asigna una contraseña y se confirma. Validity (years): En esta parte se define la duración de la validación de la keystore en años. Se puede definir un número relativamente grande para asegurarse de que no expirará pronto. Los siguientes campos corresponden a los datos personales y de empresa de cada uno. Para España, las dos letras del Country Code son ES. Figura 3.2.11 Asistente de ayuda (asignación de datos) Se le vuelve a dar a Next. 32

5. En la siguiente pantalla, se elige el directorio de destino dónde se quiere guardar el archivo.apk firmado y también indicará cuándo expirará el certificado. Se da clic en Finish y ya con esto se tiene la aplicación firmada. Figura 3.2.12 Asistente de ayuda (Ubicación donde guardar el apk firmado) Para el caso en que se quieran firmar mas aplicaciones, se tienen que repetir los pasos 1 y 2 pudiendo aprovechar la keystore que ya se tiene generada, ya que no es necesario generar una keystore para cada aplicación. 33

1.3 Cómo se instala la aplicación en un móvil? En este apartado se describirá la forma de instalar la aplicación desarrollada ya que, al no estar en el Android Market, se puede descargar e instalar de dos formas. Antes de nada, lo primero que hay que hacer es activar en el teléfono móvil la opción Fuentes desconocidas porque como se ha dicho antes, no es una aplicación que este en el Android Market y por lo tanto el teléfono la reconoce como no fiable y no la deja instalar. Esto esta en la siguiente ruta: Ajustes Aplicaciones Fuentes desconocidas. 1. La primera forma de instalar la aplicación es de manera online: Se accede al enlace http://www4.uji.es/~al076945/soundmap.apk con el navegador web del móvil y directamente pregunta si desea hacer la descarga del archivo. Se guarda en la memoria interna o externa del dispositivo y una vez descargado, se puede ejecutar desde el icono que aparece donde está almacenado. Esta forma es la más cómoda y práctica, ya que al ocupar solo 33.1 Kb se puede obtener en cualquier momento y es muy rápida la descarga y la instalación. 2. La segunda forma de instalar la aplicación es de manera local: Se conecta el teléfono al pc por cable, se transfiere el archivo mediante cualquier administrador de archivos que utilice el móvil y se almacena en la memoria de este para poder ser instalada y ejecutada. Una vez instalada la aplicación en el teléfono móvil, aparecerá el icono junto al resto de aplicaciones que se tenga y podrá ser ejecutada en cualquier momento como cualquier otra. 34

4. Desarrollo En este apartado se explicará el proceso de desarrollo del proyecto, viendo el análisis de requisitos, el diseño de la interfaz, la implementación y se analizará la aplicación ya terminada. 4.1 Análisis La aplicación tendrá las funcionalidades para obtener una serie de datos del ruido captado y mostrarlos gráficamente en un mapa de ruido. Obtener datos El usuario pulsa el botón Start para que el teléfono empiece a captar datos del ruido de su entorno y la localización de donde se encuentra en ese momento. Cada 10 segundos toma un muestreo de 5 segundos de sonido, obtiene la localización actual y actualiza los datos. Parar la obtención de datos El usuario pulsa el botón Stop y el teléfono deja de obtener datos. Mostrar mapa El usuario pulsa el botón de Menú del teléfono móvil (no de la aplicación) y aparece una pantalla dividida en dos. En la parte superior aparece un mapa en el cual se muestran puntos de mayor o menor tamaño según haya sido el valor del ruido obtenido. En la parte inferior se muestra una tabla con los datos obtenidos, especificando la fecha y hora a la que se ha tomado la muestra, la distancia a la que estamos actualmente de ese punto donde se ha tomado la muestra y el valor del ruido obtenido. Pulsando sobre el nombre de cada columna se puede organizar respecto al valor que contiene dicha columna. Si se pulsa sobre el nombre de Distancia se organiza de menor a mayor la columna de la distancia, si se pulsa sobre el nombre de Fecha se organiza la columna de fechas quedando en primera posición la fecha más reciente y si se pulsa sobre la columna Valor se organiza la columna con los valores de menor a mayor. 35

4.2 Diseño de la interfaz La idea principal para diseñar la interfaz es la sencillez y usabilidad de la aplicación por eso, cada una de las pantallas está hecha de forma intuitiva (pocos elementos y fáciles de utilizar) y sencilla de manejar (pocas funciones en cada elemento de la pantalla). La pantalla principal está dividida invisiblemente por dos partes: en la parte superior de la pantalla está la funcionalidad, compuesta de dos botones en los que inicia y se detiene la toma de datos. De esta forma es muy fácil utilizar la aplicación ya que se pulsa el botón de Start cuando se quiere iniciar o Stop cuando se quiere parar. En la parte inferior esta la ejecución, donde dos bucles de carga indican que la aplicación está corriendo y se están tomando datos y dos líneas donde muestran los datos obtenidos en cada ejecución. Figura 4.2.1 Pantalla inicio Figura 4.2.2 Inicio cargando datos 36

En la segunda pantalla, se muestran todos los datos obtenidos hasta el momento. Esta también está dividida en dos partes más diferenciadas: en la parte superior se muestra un mapa donde se puede ver en qué lugar se han tomado los datos y un punto (por cada muestra) de mayor o menor grosor e intensidad de color dependiendo si el valor del ruido es alto o bajo. En la parte inferior se muestra una tabla con tres columnas: en la primera columna esta la distancia a la que se encuentra actualmente el dispositivo de donde se tomo el dato, en la segunda la fecha y hora de cuando se tomó y en la tercera el valor de ese dato (ruido). En el caso de que se tuviesen muchos datos y no apareciese la tabla completa, aprovechando que los móviles son smartphones y tienen la pantalla táctil, se puede desplazar el dedo desde abajo hacia arriba para poder seguir viendo la parte de la tabla que no se muestre inicialmente. Para hacer zoom en el mapa y ver exactamente la ubicación, hay que pulsar sobre el mapa con dos dedos y deslizarlos a la vez, hacia el lado opuesto uno del otro. Figura 4.2.3 Pantalla con mapa y resultados 37

Modificaciones Como se puede ver en la figura 4.2.4, en el centro de la pantalla se muestran dos barras horizontales donde, en la parte izquierda de cada una de ellas, indican un texto: MIN y MAX. Con estas barras se puede filtrar los resultados según los valores que se quieran mostrar. Con esta función se filtraran los valores tanto en el mapa como en la tabla para mayor comodidad a la hora de observar los datos. Para recoger todos los datos obtenidos, la barra MIN (mínimo) debe estar lo más desplazada a la izquierda posible y la barra MAX (máximo) totalmente a la derecha. Respecto a eso, se pueden ir acortando y acercándolas para hacer un filtro más exhaustivo o dejándolas separadas para tener más margen. Se muestra a continuación una imagen de ejemplo donde se puede ver un filtro bastante exigente: Figura 4.2.4 Barras de filtrado 38

4.3 Implementación Para tener una mejor estructuración, el proyecto se ha dividido en 3 paquetes: org.jaumei.soundmap.info, org.jaumei.soundmap.managers y org.jaumei.soundmap.screen. Figura 4.3.1 Estructura de la carpeta src - org.jaumei.soundmap.info: En este paquete se encuentran los archivos java donde se gestiona la base de datos que se muestra en forma de tabla, la creación de los puntos en el mapa y la forma y color de esos puntos. o SoundPoint.java: Aquí se define el valor de cada punto. Ello incluye la ubicación, la fecha y hora, la distancia entre puntos y el valor del ruido pasado a decibelios (db). o SoundPointOverlay.java: En este archivo se define la forma y color de cada punto mostrado en el mapa dependiendo del valor del ruido (cuanto mayor sea el valor, más oscuro será el color verde del punto y más grande será su tamaño) o SQLiteManager.java: Este es el archivo de la base de datos del proyecto. Aquí se define la tabla mostrada con los datos, la organización, donde se guarda y como se guarda. - org.jaumei.soundmap.managers: En este paquete se encuentran los archivos java donde se captura y trabaja con el sonido y donde se saca la ubicación con la mayor exactitud y menor coste. o ExtAudioRecorder.java: Este archivo tiene todas las funciones para tratar la amplitud del sonido que se captura por el micrófono, coger un valor medio y convertirlo en ruido medido en decibelios. Son funciones matemáticas algo complejas obtenidas, en parte, del foro 39

http://stackoverflow.com/ donde se comparte código, se exponen cuestiones y se resuelven dudas de programadores (esta en ingles). o GpsManager.java: Aquí se definen las características y las funciones del GPS. Se puede elegir que sea más o menos exacto, se decide cuando se actualiza la posición, etc. - org.jaumei.soundmap.screen: Este paquete contiene los archivos java para dibujar el mapa y mostrar los datos sobre él, se dibuja también la tabla y se calculan las distancias sobre los datos obtenidos y tiene el archivo principal que genera la aplicación. o MyMapActivity.java: En este archivo se dibujan los puntos sobre el mapa, las barras que hacen de filtro y se hace la ordenación de la tabla según los valores que tomemos de referencia (si queremos ordenar según la distancia, la fecha o el valor del ruido). o PointsListAdapter.java: En este archivo se dibuja la tabla y se hace la conversión de valores (la distancia se pone en metros o kilómetros, el valor del ruido se pasa a decibelios). o SoundMapActivity.java: Este es el archivo principal de la aplicación. Desde aquí arranca con las funciones principales y llamando a las funciones y clases de los archivos anteriores. Para que la aplicación pueda mostrar el mapa de Google Maps, a parte de la implementación, hay que obtener una KEY de Google. Se obtiene de la siguiente forma: - Se escribe en la consola de MS-DOS (hay que cambiar la ruta donde se tenga instalado Java y la keystore y poner el alias que se quiera) C:\Java\jdk1.5.0_15\bin keytool -genkey -alias android -keystore C:\anddev.keystore - Seguidamente se lanza el siguiente comando (modificando los datos oportunos): C:\Java\jdk1.5.0_15\bin>keytool -list -alias android -keystore C:\anddev.keystore - Y la clave que muestra ponerla en el siguiente enlace: https://developers.google.com/android/maps-api-signup?hl=es La KEY obtenida se pone dentro del archivo res/values/appvalues.xml <string name="google_map_apikey">0vclwjitt9vvfu--9ogmxmmpqxw0r5upktgoyuq </string> 40

La figura 4.3.2 muestra el diagrama seguido en la implementación de la clase SoundMapActivity (clase principal). Figura 4.3.2. Estructura de la primera ventana 41

La figura 4.3.3 muestra el diagrama seguido en la implementación de la clase MyMapActivity (clase secundaria) Figura 4.3.3. Estructura de la segunda ventana 42

4.4 Pruebas Se realizaron pruebas de la aplicación tanto en el simulador que trae el Eclipse como en móviles reales. Se hicieron las siguientes comprobaciones: Al pulsar sobre el icono de la aplicación cargaba correctamente Al pulsar sobre el botón de Start, los scrolls de carga de empezaban a mover correctamente Al pulsar sobre el botón de Stop, los scrolls de carga se paraban y desaparecían. Cuando estaba en ejecución el muestreo, se mostraban correctamente los valores de coordenadas y el resultado del ruido en las líneas adecuadas. Mientras se ejecutaba el muestreo, los scrolls se cargaban y paraban con el tiempo establecido. Que en cada muestreo se actualizaban los valores de coordenadas y de ruido. Se mostraba el mapa correctamente. Se mostraban los puntos en el mapa. Los puntos tenían el color y el tamaño establecido. La tabla tenía los valores correctos. La tabla de ordenaba correctamente según se indicara una columna u otra. Se hacia el filtrado correctamente Se cruzaron los indicadores de las dos barras para probar si daba error, pero no indicaba ningún resultado como es lo correcto. Después de realizar todas estas pruebas, el resultado fue el esperado y no surgió ningún problema. Tanto los botones cumplían su función y arrancaba y paraba cuando se ordenaba, como el mapa mostraba los valores correctamente. 43

4.5 Aplicación finalizada En este apartado se van a describir las diferentes pantallas de la aplicación ya finalizada. Se podrá observar la pantalla inicial sin ejecutarse ninguna acción, la pantalla inicial en proceso, la pantalla secundaria con el mapa y las diferentes funciones que presenta. Figura 4.5.1 Pantalla principal Figura 4.5.2 Primera ejecución Figura 4.5.3 Obteniendo el sonido Figura 4.5.4 Cinco seg. parada 44

Figura 4.5.5 Aplicación parada Figura 4.5.6 Botón View Map Figura 4.5.7 Tabla con valores Figura 4.5.8 Organizada por distancia 45

Figura 4.5.9 Organizada por fecha Figura 4.5.10 Organizada por valor Figura 4.5.11 Probando filtro (I) Figura 4.5.12 Probando filtro (II) La figura 4.5.1 muestra la pantalla principal de la aplicación. Desde aquí se pueden pulsar los botones de Start y Stop para empezar o parar la muestra. También se accede desde aquí al botón View Map para ver el mapa como se mostrara más adelante. 46

La figura 4.5.2 muestra la primera ejecución de la aplicación. Como se puede ver, en las líneas de Coordinates y Result aun no aparece ningún valor anotado y además, aparecen los dos scrolls de carga en ejecución. En la figura 4.5.3 se puede ver como solo se está ejecutando el scroll de carga del valor del ruido. Esto es porque, una vez ya se ha hecho la primera ejecución, el muestreo de datos se realiza de la siguiente forma: cada 10 segundos se toma la localización y se obtiene el sonido. Entonces, en cada bloque de muestras, hay 5 segundos donde la obtención de la localización y sonido esta parada y 5 segundos donde esta capturando datos (figura 4.5.4). 10 segundos 5 segundos obteniendo datos 5 segundos parada (esperando) La figura 4.5.5 muestra como queda la pantalla cuando se le da al botón Stop y se detiene la ejecución. En la figura 4.5.6 podemos ver que, cuando se pulsa la tecla de menú en la pantalla principal, aparece un botón en la parte inferior de la pantalla donde pone View Map. Pulsando sobre este botón nos aparece el mapa mostrando los datos que ha obtenido hasta el momento (figura 4.5.7). En las figuras 4.5.8, 4.5.9 y 4.5.10 se puede ver que, si se pulsa sobre el nombre de cualquier columna, éste queda de manera más resaltada y la tabla queda organizada según los datos de esta columna (de menor a mayor). Como podemos ver en las figuras 4.5.11 y 4.5.12, se ha probado la función del filtro y funciona correctamente. En la primera de ellas se filtra un solo valor y en la segunda, no se filtra nada porque no puede ser que el mínimo sea mayor que el máximo. 47

5. UTILIZACIÓN DE LA APLICACIÓN Para utilizar la aplicación de manera sencilla hay que seguir los siguientes pasos: 1. Activar GPS 2. Ejecutar aplicación 3. Pulsar botón Start 4. Esperar el tiempo que se quiera mientras la aplicación toma los datos 5. Pulsar botón Stop 6. Pulsar tecla Menu del móvil 7. Pulsar botón View Map 8. Aquí ya se puede ver el mapa de ruido y se pueden filtrar los resultados (se filtran tanto en la tabla como en el mapa) 9. Para volver a la pantalla inicial debemos pulsar la tecla de retorno del móvil 10. Se podría volver a repetir los pasos del 3 al 5 para seguir tomando datos. 48

6. MEJORAS Y TRABAJO FUTURO Durante las pruebas finales de la aplicación han surgido ideas y mejoras para implementarlas en un futuro. Una de estas mejoras sería poder subir en algún momento a un servidor los datos obtenidos en vez de guardar los datos en el móvil. De esta forma no ocuparía parte de la memoria del dispositivo. Por ejemplo, cuando el móvil esté conectado a una red wifi se haría la sincronización y, de esta forma no se consumirían datos de la tarifa que tenga contratada el usuario. Otra mejora seria tener el servicio en background para que no esté la aplicación como hilo principal y se puedan realizar otras tareas con el dispositivo móvil mientras se toman los datos. Para trabajo futuro queda tener la posibilidad de borrar los datos obtenidos cuando se quiera o necesite ya que parece algo necesario si se tienen muchos datos o alguna muestra que no se quiere. De momento no se puede borrar ningún dato para que no se puedan modificar los resultados obtenidos. 49

Bibliografía [1] Volunteer Geographic Information http://ijsdir.jrc.ec.europa.eu/index.php/ijsdir/article/viewfile/140/223 [2] Volunteer Geographic Information (II) http://www.esri.com/news/arcwatch/0311/power-of-vgi.html [3] Que es android? http://www.xatakandroid.com/sistema-operativo/que-es-android [4] Android en general El gran libro de Android, Autor: Jesús Tomás Gironés Ed: Marcombo [5] Mapa de ruido http://www.valencia.es/ayuntamiento/maparuido.nsf/vdocumentostituloaux/m apa%20ruido-introducci%c3%b3n?opendocument&lang=1&nivel=8_1 [6] Para aprender a programar en Android. Curso Android http://www.sgoliver.net/blog/?page_id=3011 [7] Otro curso Android http://www.androidstartup.com/tutorial-de-desarrollo [8] Que es Android y caracteristicas http://www.elbauldelprogramador.com/programacion/desarrollo-android-que-esandroid/ [9] Grabar Audio http://www.android.es/foro/viewtopic.php?f=2&t=654 [10] Grabar Audio (II) http://www.benmccann.com/dev-blog/android-audio-recording-tutorial/ [11] Para manejar GPS http://www.elandroidelibre.com/2010/08/aprendiendo-android-v-inicializaciona-la-api-del-gps.html [12] Obtener coordenadas http://www.android-spa.com/viewtopic.php?t=6725&highlight=gps [13] Colores en android http://programa.nii.com/pt/forum/topic/f%c3%b3rumandroid/poner-colores-enandroid [14] Obtener clave para los mapas http://www.android-spa.com/viewtopic.php?t=1126&highlight=storekey 50

[15] Obtener clave para los mapas (II) https://developers.google.com/android/maps-api-signup?hl=es [16] Instalar aplicación en el móvil http://www.androidforos.es/tutoriales/como-instalar-una-aplicacion-apk-androidtelefono-tablet-t630.html [17] Firmar aplicaciones en Android http://androideity.com/2011/08/25/%c2%bfcomo-firmar-aplicaciones-android/ 51