INGENIERÍA INFORMÁTICA RECURSOS ANDROID BASADOS EN GEOLOCALIZACIÓN. Realizado por Francisco Javier Martín Otero

Tamaño: px
Comenzar la demostración a partir de la página:

Download "INGENIERÍA INFORMÁTICA RECURSOS ANDROID BASADOS EN GEOLOCALIZACIÓN. Realizado por Francisco Javier Martín Otero"

Transcripción

1 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA INGENIERÍA INFORMÁTICA RECURSOS ANDROID BASADOS EN GEOLOCALIZACIÓN Realizado por Francisco Javier Martín Otero Dirigido por José Ramón Portillo Fernández Departamento Matemática Aplicada I Sevilla, (Junio/2012)

2

3 Resumen Esta documentación corresponde a la memoria del Proyecto Fin de Carrera de recursos Android basados en geolocalización, desarrollado para la titulación de Ingeniería Informática en la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Sevilla. Se incluye, además de una introducción al sistema operativo Android, todos los pasos realizados para lograr el objetivo, desde el nacimiento de la idea hasta completar su desarrollo, incluida la publicación en la tienda Google Play de Android y la puesta a disposición de todos los usuarios. Además de esta documentación, también adjuntamos el código fuente de la aplicación en un fichero aparte, así como su ejecutable listo para ser instalado en un terminal Android. I

4

5 Agradecimientos En primer lugar quisiera agradecer a José Ramón Portillo la oportunidad que me ha brindado para realizar este proyecto y al Departamento de Matemática Aplicada I, el permitirme realizarlo. A toda mi familia por la confianza que depositaron en mí, sobre todo a mis padres y hermanos. A todos mis profesores, desde el colegio hasta la universidad, por todo lo que he aprendido gracias a vosotros. A todos mis amigos, porque gracias a ellos he podido llegar hasta el final y he pasado momentos memorables con todos vosotros. A Alba Castiñeira Mouzo y Seyfedin Ben Gamra Lobo por colaborar desinteresadamente en las traducciones de esta aplicación. A todos los compañeros de piso que he tenido durante estos años, en especial a Adrián y Javi por ayudarme con los problemas que me han surgido durante el desarrollo de este proyecto. Gracias a todos. III

6

7 Índice general Índice general Índice de cuadros Índice de figuras Índice de código V VII IX XI 1 Introducción GeoTask Android Definición de objetivos 7 3 Análisis de antecedentes y aportación realizada 9 4 Análisis temporal y costes de desarrollo Análisis temporal Costes de desarrollo Software Utilizado Instalación del entorno de trabajo Requisitos del Sistema Instalación de Eclipse ide Instalación sdk Android Instalación del plugin ADT de Eclipse Descargando el proyecto desde la forja de REDIRIS Análisis de requisitos, diseño e implementación Análisis de Requisitos Diseño Implementación Añadir una nueva tarea Problemas encontrados V

8 VI Índice general 7 Pruebas Pruebas unitarias Pruebas de integración Manual Requisitos Funcionamiento Consideraciones sobre el idioma Publicación de una aplicación Publicar fuera de Google Play Publicar en Google Play Comparación con otras alternativas 57 Conclusiones 59 Apéndices 61 Bibliografía 63 Licencia 65

9 Índice de cuadros 4.1 Etapas del proyecto Coordenadas usadas en las pruebas VII

10

11 Índice de figuras 1.1 Arquitectura de Android Ciclo de vida de una aplicación Android HTC Dream Descarga de eclipse Descarga de sdk de Android Descarga de las distintas apis Instalación de Android Developer Tools Especificar ubicación del sdk adv Manager Diagrama de clases de GeoTask Estructura del proyecto GeoTask en eclipse Interacción usuario sistema a la hora de elegir el área de proximidad de un perfil Interacción usuario sistema a la hora de autorizar una cuenta de una red social Pantalla principal de GeoTask sin perfiles Pantalla con las cuentas de redes sociales que puede utilizar GeoTask Pantalla de un perfil en GeoTask Pantalla para elegir el área de proximidad en GeoTask Pantalla con todas las tareas que permite GeoTask Pantalla de la tarea recordatorio en GeoTask Pantalla de la tarea twitter en GeoTask Pantalla de la tarea lista blanca en GeoTask Pantalla principal de GeoTask con perfiles IX

12

13 Índice de código 6.1 Algunos atributos de la clase DBAdapter Métodos oncreate y onupgrade de la clase DBAdapter Método onlistitemclick de la clase Perfil Método removetask de la clase Perfil Método filldata de la clase Accounts Método CrearDialogoCuentas de la clase Accounts XI

14

15 CAPÍTULO 1 Introducción 1.1 GeoTask GeoTask es una aplicación para móviles con SO Android que permite realizar automáticamente ciertas tareas sin la intervención del usuario al cumplirse una determinada condición. En nuestro caso, dicha condición será que la aplicación detecte que nos encontramos en un determinado lugar. GeoTask se cimenta en un concepto fundamental: el perfil. El perfil nos indica qué tareas queremos realizar en un área de proximidad determinado. Un perfil está compuesto por: Nombre. El nombre que pongamos será el que aparezca en la pantalla principal de GeoTask. Área de proximidad. El área de proximidad no es más que el área geográfica que se encuentra a una distancia del punto que elegimos como dirección, menor o igual al radio que hemos seleccionado. Se compone de un punto central (dirección) y el radio. Tareas que queremos realizar. Estas tareas pueden ser : Recibir recordatorios. Enviar sms. Realizar llamadas. 1

16 2 1. Introducción Realizar una lista negra de nuestros contactos. Realizar una lista blanca de nuestros contactos. Enviar tweets. Actualizar nuestro estado en Facebook. El primer paso que debemos hacer es crear una perfil. Para ello debemos de proporcionarle un nombre un nombre y elegir el área de proximidad que queremos que tenga esa tarea. El último paso es elegir las distintas tareas que queremos que se hagan. Algunas tareas podrán ser seleccionadas una sóla vez, como realizar llamadas y realizar una lista negra o blanca de nuestros contactos, las restantes podrán ser seleccionadas las veces que queramos. Cada perfil podrá ser activado/desactivado desde la pantalla principal. Para que funcione correctamente nuestra aplicación y se realicen automáticamente las tareas, debemos habilitar un servicio, que se encargará de actualizar la ubicación en tiempo real del teléfono, que podremos parar en el momento que consideremos oportuno. GeoTask fue galardonado con el Primer Premio en el V Premio Local de Sevilla del VI Concurso Universitario de Software Libre el 13 de Abril de 2012 y con el Premio al mejor proyecto comunitario en la Fase Final del VI Concurso Universitario de Software Libre el 11 de Mayo de Android Android es un sistema operativo basado en el núcleo Linux diseñado originalmente para dispositivos móviles, tales como smartphones, pero que posteriormente se expandió su desarrollo para soportar otros dispositivos tales como tablet, reproductores mp3, netbook, PC, televisores, lectores de e-book e incluso, se han llegado a ver en el ces, microondas y lavadoras. Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. Android, al contrario que otros sistemas operativos para dispositivos móviles como ios o Windows Phone, se desarrolla de forma abierta y se puede acceder tanto al código fuente como al listado de incidencias donde se pueden ver problemas aún no resueltos y reportar problemas nuevos. El que se tenga acceso al código fuente no significa que se pueda tener siempre la última versión de Android en un determinado móvil, ya que el código para soportar el hardware (controladores) de cada fabricante normalmente no es público, así que faltaría un trozo básico del firmware para poder hacerlo funcionar en dicho terminal, y porque las nuevas versiones

17 1.2. Android 3 de Android suelen requerir más recursos, por lo que los modelos más antiguos quedan descartados por razones de memoria (ram), velocidad de procesador, etc. La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una api gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico sgl, ssl y una biblioteca estándar de C. A continuación voy a presentar los principales componentes de Android de una forma más extensa: Un núcleo Linux que proporciona una capa de abstracción de hardware básica así como servicios de gestión, memoria y sistema de archivos. En el núcleo se implementan controladores de hardware específicos, funciones como WI-FI y Bluetooth. La pila de Android tiene un diseño flexible, con diferentes componentes opcionales que dependen de la disponibilidad de hardware concreto en cada dispositivo, como por ejemplo pantallas táctiles, cámaras, receptores gps o acelerómetros. Entre las principales bibliotecas de código destacan las siguientes: Tecnología de navegador WebKit, el mismo motor de código abierto de Safari de Macintosh y del navegador Mobile Safari del iphone. Compatibilidad con bases de datos a través de SQLite, una base de datos SQL sencilla de utilizar. Compatibilidad grafica avanzada, con 2D, 3D, animación de sgl y OpenGL. Compatibilidad con audio y vídeoa través de OpenCore de Packet Video. Funciones ssl del proyecto Apache. Diferentes administraciones de servicios para: Actividades y vistas. Telefonía. Windows. Recursos. Servicios basados en ubicación.

18 4 1. Introducción Figura 1.1: Arquitectura de Android El entorno de ejecución de Android proporciona lo siguiente: Paquetes Java para obtener un entorno de programación Java prácticamente completo. No es un entorno J2ME. La máquina virtual Dalvik utiliza los servicios del núcleo basado en Linux para proporcionar un entorno de alojamiento para las aplicaciones Android. El Framework de Android permite una sencilla reutilización de componentes y comunicación ente aplicaciones, siempre sujetas a ciertas medidas de seguridad, que facilita, por ejemplo, la actualización o sustitución de componentes por parte del usuario, resultando un sencillo y efectivo método para utilizar novedades o introducir mejoras en el software. Los principales conjuntos de servicios ofrecidos son los siguientes: Un extenso y variado conjunto de vistas (Views) ofrecidas para el diseño de interfaces gráficas de usuario y su interactividad con el sistema, como los típicos botones, cuadros de texto o listas. Los proveedores de contenidos (Contents Providers) son el método de intercambio de información entre aplicaciones, ya sea compartiendo los datos propios o accediendo a los de otras aplicaciones.

19 1.2. Android 5 Los gestores de recursos (Resources Manager) permiten el acceso indexado a recursos como cadenas o gráficos, en un intento de modularaun más el diseño de las aplicaciones y el uso de sus recursos. El gestor de notificaciones (Notification Manager) dirige alertas personalizadas al software, que son mostradas en una barra de estado. Finalmente, el gestor de actividades (Activities Manager) es responsable del ciclo de vida de las aplicaciones. En el ámbito de desarrollo, dispone de un complemento para el ide Eclipse, así como herramientas de simulación y depuración. Las aplicaciones creadas pueden ponerse a disposición del usuario a través de Google Play, donde podrán ser descargadas e instaladas por los usuarios, sirviendo igualmente como fuente de reporte de fallos y errores en el funcionamiento. Otra peculiaridad de Android es el ciclo de vida de las aplicaciones,ya que no se trata unicamente de abrir y cerrar a gusto del usuario, si no que éstas, una vez iniciadas, permanecen cargadas en memoria siempre que se disponga de recursos para ello. En caso contrario el propio sistema operativo se encargar de destruirlas definitivamente. Dicho ciclo de vida se rige por las llamadas a los métodos oncreate, onstart, onresume, onpause, onstop, onstop, ondestroy y onrestart. En el gráfico adjunto puede entenderse este flujo de forma más intuitiva.

20 6 1. Introducción Figura 1.2: Ciclo de vida de una aplicación Android

21 CAPÍTULO 2 Definición de objetivos El sistema operativo para dispositivos móviles de Google, Android, centra el desarrollo de este proyecto fin de carrera. Para poder dirigir con mayor éxito los esfuerzos para conocer y comprender las características de este nuevo sistema, es necesario fijar unos objetivos que abarquen las actividades que se pretenden realizar y, además, permitan al final de las mismas conocer el grado de desarrollo y cumplimiento alcanzado. Para ello, los objetivos perseguidos en el desarrollo de este proyecto fin de carrera son: El principal objetivo que se ha perseguido a lo largo del desarrollo de este proyecto ha sido crear una aplicación que dada una condición (en nuestro caso será la ubicación de nuestro móvil) ejecute de forma automática y sin la intervención del usuario una serie de tareas que hayamos elegido previamente. Asegurar que el sistema sea fácil de mantener, extender y escalar. Para ello tomaremos una serie de medidas, por ejemplo, hacer independiente nuestro código de la base de datos usada en nuestra aplicación, estructurar el código para conseguir que añadir una nueva tarea sea lo más sencillo posible, etc. Investigación del funcionamiento del sistema operativo Android, las posibilidades que nos ofrece y su gestión por parte de las apis disponibles y el manejo de aplicaciones. Centrándonos en las tareas de desarrollo, es indispensable el conocimiento de la completa herramienta ofrecida para tal fin, así como su integración y uso en entornos de desarrollo ya existentes. Estudiar el entorno de desarrollo de Android. 7

22 8 2. Definición de objetivos Al lanzarse bajo una licencia de software libre, el sdk completo está disponible para cualquier desarrollador que desee descargarlo. Éste incluye numerosas ayudas para comenzar a crear aplicaciones en Android, desde la api completa con todas las clases y paquetes, hasta herramientas de programación y un completo emulador para poder realizar pruebas. Todos estos elementos han de ser estudiados y explicados. Dispondremos de una completa guía de instalación de su sdk (kit de desarrollo de software) y explicaremos como instalar el plugin adt en Eclipse o en el entorno de desarrollo que estemos utilizando, necesario para empezar a crear aplicaciones propias en Android. Desarrollar una aplicación para Android totalmente funcional que sea muy intuitiva y fácil de utilizar. Para ello la aplicación será testeada por un conjunto de personas. Así conseguiremos comprobar si la aplicación cumple con este criterio y en caso negativo, podremos mejorarla siguiendo las pautas que nos sean marcadas. Demostrar lo sencillo que resulta en Android realizar tareas de forma automática. En este caso nos basamos en nuestra localización, pero se podría realizar igualmente basándonos en la hora, en el nivel de bateria, etc.

23 CAPÍTULO 3 Análisis de antecedentes y aportación realizada Determinar en todo el mundo la posición de un objeto, una persona o un vehículo con la mayor precisión posible, es algo que lleva haciéndose desde hace años gracias al gps (Sistema de posicionamiento global). En 1957, la Unión Soviética lanzó al espacio el satélite Sputnik I, que era monitorizado mediante la observación del efecto Doppler de la señal que transmitía. Debido a este hecho, se comenzó a pensar que, de igual modo, la posición de un observador podría ser establecida mediante el estudio de la frecuencia Doppler de una señal transmitida por un satélite cuya órbita estuviera determinada con precisión. La armada estadounidense rápidamente aplicó esta tecnología, para proveer a los sistemas de navegación de sus flotas de observaciones de posiciones actualizadas y precisas. Así surgió el sistema TRANSIT, que quedó operativo en 1964, y hacia 1967 estuvo disponible, además, para uso comercial. Las actualizaciones de posición, en ese entonces, se encontraban disponibles cada 40 minutos y el observador debía permanecer casi estático para poder obtener información adecuada. Posteriormente, en esa misma década y gracias al desarrollo de los relojes atómicos, se diseñó una constelación de satélites, portando cada uno de ellos uno de estos relojes y estando todos sincronizados con base en una referencia de tiempo determinado. En 1973 se combinaron los programas de la Armada y el de la Fuerza Aérea de los Estados Unidos (este último consistente en una técnica de transmisión codificada que proveía datos precisos usando una señal modulada con un código de prn (Pseudo-Random Noise: ruido pseudoaleatorio), en lo que se conoció como Navigation Technology Program (programa de tecnología de navegación), posteriormente renombrado como NAVSTAR gps. 9

24 10 3. Análisis de antecedentes y aportación realizada Entre 1978 y 1985 se desarrollaron y lanzaron once satélites prototipo experimentales NAVSTAR, a los que siguieron otras generaciones de satélites, hasta completar la constelación actual, a la que se declaró con capacidad operacional inicial en diciembre de 1993 y con capacidad operacional total en abril de En 2009, este país ofreció el servicio normalizado de determinación de la posición para apoyar las necesidades de la OACI, y ésta aceptó el ofrecimiento. Actualmente dentro del mercado de la telefonía móvil la tendencia es la de integrar, por parte de los fabricantes, la tecnología gps dentro de sus dispositivos. El uso y masificación del gps está particularmente extendido en los teléfonos móviles smartphone, lo que ha hecho surgir todo un ecosistema de software para este tipo dispositivos, así como nuevos modelos de negocios que van desde el uso del terminal móvil para la navegación tradicional punto-a-punto hasta la prestación de los llamados Servicios Basados en la Localización (lbs). Dentro del mercado de los smartphones, podemos observar que Android se ha ido extendiendo rápidamente entre la sociedad hasta poseer aproximadamente el 32,9 % de cuota de mercado a escala mundial de los smartphones, por delante de Symbian OS que posee una cuota aproximada del 30,6 %. En tercer lugar se sitúa ios con una cuota de mercado del 16 %. El principal atractivo que posee Android es que su código ha sido liberado (excepto la versión 3.0, HoneyComb), lo que lo convierte en un sistema operativo totalmente libre para que un desarrollador no sólo pueda ver su código sino también mejorarlo. A través de esas mejoras puede publicar el nuevo código y con él, ayudar a mejorar el sistema operativo para futuras versiones sin depender de fabricantes u operadoras para ver si se libera o no dicha mejora. Del mismo modo, al ser código abierto garantiza que, en caso de haber un bug o error, sea detectado y reparado con mayor presteza al no existir ninguna traba legal para indagar en su interior ni depender de nadie para pedir autorización a su cambio. Ésto ha propiciado una gran acogida por parte de desarrolladores independientes, dando lugar a una gran comunidad internacional que, en apoyo a la propia documentación oficial disponible, abre puertas a casi cualquier persona que quiera iniciarse en la programación de dispositivos móviles. En la selección de esta plataforma, además de los motivos ya señalados, ha influido decisivamente el hecho de que el lenguaje de desarrollo sea Java, ampliamente estudiado en la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Sevilla. Además del propio sdk (Software Development Kit), Android dispone de un plugin que lo integra perfectamente en el ide Eclipse, herramienta

25 ya utilizada en la Escuela Técnica Superior de Ingeniería Informática de la Universidad de Sevilla, tanto en el ámbito de la programación como el de la simulación, incluyendo todas las funcionalidades de un terminal real, lo que facilita las tareas de testeo y depuración del software. En el mercado ya existen aplicaciones basadas en la localización ampliamente utilizadas en la comunidad Android, como Locale [11] o Tasker [12], aunque nuestra aplicación ofrece algo que no poseen ninguna de las dos aplicaciones anteriormente citados: interacción con las redes sociales. Hacemos uso de los 4 componentes que una aplicación Android puede disponer: Activity, Service, BroadcastReceiver y Content Provider, por lo que creo que es una magnífica aplicación para entender como funciona Android y todas las posibilidades que nos ofrece. Además, hemos contado con un grupo de usuarios que nos han dado su opinión para tener una aplicación que sea muy fácil de utilizar y muy intuitiva. Pautas muy importantes para no fracasar en una aplicación a causa del diseño o de la usabilidad, conceptos que son muy importantes para cualquier aplicación software. 11

26

27 CAPÍTULO 4 Análisis temporal y costes de desarrollo 4.1 Análisis temporal En esta sección se exponen las diferentes etapas del desarrollo del proyecto. En primer lugar se adjunta una tabla resumen con las horas aproximadas dedicadas a cada etapa. A continuación se añade un breve comentario sobre cada tarea. Tarea Número de horas Planificación 50 Investigación 150 Desarrollo de GeoTask 300 Pruebas 15 Documentación 50 Total 565 Cuadro 4.1: Etapas del proyecto Planificación Dada la envergadura del proyecto, era necesaria una etapa de planificación en la que se ha estudiado de forma cuidadosa el alcance del mismo, los objetivos que debíamos alcanzar y las posibles dificultades a encontrar durante el desarrollo. Investigación Al comienzo del proyecto desconocía por completo el uso de la api de Android. Por tanto, fue necesaria una larga etapa de formación personal utilizando varios recursos bibliográficos, así cómo realizar pequeños ejemplos para familiarizarme con los conceptos y funcionalidades que eran necesarios para la realización de la aplicación. 13

28 14 4. Análisis temporal y costes de desarrollo Desarrollo de GeoTask Tras el periodo de formación inicial y familiarizarme con la api de Android en la etapa de investigación, dio comienzo el desarrollo de GeoTask. Fue la etapa mas larga debido a que cada funcionalidad añadida era probada e investigada antes de continuar. Pruebas Durante la implementación se fueron realizando pruebas para verificar que las tareas que añadíamos funcionaban correctamente de forma individual, pero al finalizar GeoTask se realizaron pruebas para testear la fiabilidad y el correcto funcionamiento de la aplicación en su conjunto. Documentación Conjuntamente con el desarrollo de la aplicación, se procedió a la redacción del presente documento. 4.2 Costes de desarrollo El único gasto que ha ocasionado el proyecto es la adquisición de un terminal Android, en concreto un HTC Dream, adquirido libre por un precio aproximado de 200 euros. Aunque en el kit de desarrollo de Android se incluye un emulador muy completo de la plataforma no es posible simular algunas características como el posicionamiento vía WiFi o por torre celular. Por esto fue necesario adquirir este terminal. Las especificaciones completas del terminal son las siguientes: Medidas: 117 x 55.7 x 17.1 mm Peso: 158 g Bateria: Li-Ion 1150 mah. Brinda hasta 5 h 20 min de conversacíon y hasta 406 h de standby Pantalla multitáctil capacitiva de 3.2 pulgadas HVGA con 320 x 480 pixels de resolución Procesador: Qualcomm MSM7201A ARM MHz Cámara de 3 2 megapixels con Autofocus (desde 6cm hasta el infinito) Android (no oficial) 256 mb rom

29 4.3. Software Utilizado 15 Figura 4.1: HTC Dream 192 mb ram Tarjeta microsd de 1gb expandible hasta 16 gb Dual band UMTS MHz HSDPA/HSUPA 7.2/2 Mbit/s GPRS/EDGE Wi-Fi (802.11b/g) Bluetooth edr Receptor a-gps Posicionamiento por torre celular y Wi-Fi Brújula digital Acelerómetro Es un terminal de gama media y, aunque ya hay en el mercado móviles con mayor potencia de procesado, tiene potencia de sobra para realizar este proyecto. El equipo de desarrollo ha sido mi ordenador personal, con un coste aproximado de unos 1000 euros y el coste del software utilizado es nulo al tratarse de herramientas gratuitas y en la mayoría de los casos libres.

30 16 4. Análisis temporal y costes de desarrollo 4.3 Software Utilizado En esta sección vemos de las herramientas utilizadas durante el desarrollo de GeoTask. Para cada herramienta se ofrece una pequeña descripción de sus funcionalidades y se adjuntan las razones por las cuales ha sido elegida para el desarrollo frente a sus competidoras. Eclipse Es un Entorno Integrado de Desarrollo, del inglés Integrated Development Environment (ide), para todo tipo de aplicaciones libres, inicialmente desarrollado por IBM, y actualmente gestionado por la Fundación Eclipse. Herramienta para el programador desarrollada principalmente para el desarrollo de aplicaciones Java, es posible añadirle nuevas funcionalidades al editor, a través de nuevos módulos (plugins), para programar en otros lenguajes de programación además de Java como C/C++, PHP, Python, Ruby, Cobol, etc. Es además el entorno mas utilizado por los desarrolladores de aplicaciones Android, por esto ha sido elegido para la realización de este proyecto. SVN Subversion es un sistema de control de versiones libre cuya primera versión fue lanzada en el año 2000 por CollabNet. Es compatible en mayor parte con su predecesor CVS. Gracias a esta herramienta podemos guardar un historial de todas las versiones de los ficheros fuente del proyecto así como deshacer cambios en caso de que fuera necesario. Con SVN conseguimos acceso al código del proyecto desde cualquier equipo. Además, pone a disposición de cualquier interesado el código fuente de forma sencilla. Existen otros sistemas de control de versiones como Git o Mercurial. Se ha elegido Subversion por su sencillez y por mostrarse suficientemente potente para gestionar el código de un proyecto de un sólo programador. Inkscape Inkscape es un editor de gráficos vectoriales de código abierto, con capacidades similares a Illustrator, Freehand, CorelDraw o Xara X, usando el estándar de la W3C: el formato de archivo Scalable Vector Graphics (SVG). Las características soportadas incluyen: formas, trazos, texto, marcadores, clones, mezclas de canales alfa, transformaciones, gradientes, patrones y agrupamientos.

31 4.3. Software Utilizado 17 Inkscape también soporta meta-datos Creative Commons, edición de nodos, capas, operaciones complejas con trazos, vectorización de archivos gráficos, texto en trazos, alineación de textos, edición de XML directo y mucho más. Puede importar formatos como Postscript, EPS, JPEG, PNG, y TIFF y exporta PNG asi como muchos formatos basados en vectores.

32

33 CAPÍTULO 5 Instalación del entorno de trabajo En este manual se va a tratar la instalación paso a paso de las herramientas necesarias para comenzar a desarrollar nuestra aplicación sobre un sistema Android. Los principales componentes son el sdk de Android, el plugin ADT para eclipse, así como el propio ide Eclipse. 5.1 Requisitos del Sistema Para desarrollar aplicaciones en Android usando las herramientas que aporta su sdk, es necesario disponer del siguiente software en nuestro PC: Sistema Operativo: Windows XP (32-bit), Vista (32 o 64-bit), o Windows 7 (32 o 64-bit) Mac OS X or superior (x86 sólo) Linux (probado en Ubuntu Linux, Lucid Lynx) GNU C Library (glibc) 2.7 o superior. En Ubuntu Linux, version 8.04 o superior. Entorno de desarrollo: Eclipse ide Eclipse 3.5 (Galileo) o superior. Eclipse JDT plugin. JDK 5 or JDK 6 (JRE no es suficiente). Android Development Tools plugin (recomendado). No compatible con Gnu Compiler para Java (gcj). Otros entornos de desarrollo: 19

34 20 5. Instalación del entorno de trabajo Apache Ant. Ahora procederemos a explicar la instalación del sdk de Android trabajando en Windows 7 con el ide Eclipse Indigo. 5.2 Instalación de Eclipse ide Aunque la instalación del ide no forma parte del proyecto vamos a proceder a su instalación, que es fácilmente abordable desde su propia web[13]. En la sección Download, se elige la versión deseada, que en nuestro caso sera Eclipse ide for Java Developers para Windows 32 bits, con un tamaño de 128mb. Una vez descargado, basta descomprimir y ejecutar eclipse.exe para comenzar a usar la aplicación. Figura 5.1: Descarga de eclipse 5.3 Instalación sdk Android Entre los numeros recursos disponibles en la web de desarrolladores de Android[4] tenemos la versión más reciente del sdk, en la sección sdk. En nuestro caso elegimos la versión para Windows recomendada, con un tamaño de 32,3mb. Una vez completada la descarga, ejecutamos el.exe descargado y seguimos los pasos para su correcta instalación. Una vez que lo hayamos instalado, se nos abrirá el Android sdk Manager para poder descargarnos las versiones de las apis que queramos y tras aceptar las licencias correspondientes, comenzará la descarga. En el caso de que la aplicación falle, deberemos ejecutar Android sdk Manager como administrador.

35 5.4. Instalación del plugin ADT de Eclipse 21 Figura 5.2: Descarga de sdk de Android Antes de proseguir, es recomendable almacenar la ruta de la subcarpeta tools en la variable de entorno path de nuestro sistema. Para ello hacemos clic con el boton derecho en Equipo para acceder a las Propiedades del sistema. En configuración avanzada podemos acceder a dichas variables. Basta buscar la variable path en la lista y hacer doble clic para editar. Al valor actual debemos añadir nuestra ruta, precedida por ;, para conservar los valores anteriormente almacenados. Esto nos falicitará el acceso mediante símbolo del sistema a algunas configuraciones del sdk Android por comandos, no siendo necesario escribir la ruta completa de la ubicación de las utilidades. 5.4 Instalación del plugin ADT de Eclipse Usando Eclipse, este plugin nos facilitará tareas de programación, simulación y depuración de nuestras aplicaciones. Para descargarlo, basta acceder a Install new software del menú Help, e introducir la dirección donde se ubica[16] como directorio de trabajo. Aunque por razones de seguridad es preferible usar el protocolo https, en caso de problemas también podrá usarse http. A continuación debe ofrecernos la instalación de Developer Tools, desplegando el arbol podremos ver que se compone de Android ddms, Android Developer Tools, Android hierarchy Viewer y Android Traceview. Elegimos las dos primeras herramientas que son las imprescindibles y tras aceptar la correspondiente licencia en el siguiente paso, comienza la descarga del nuevo software. Una vez descargado e instalado hay que configurar las nuevas utilidades para que Eclipse reconozca el sdk Android. Para ello, en el menú Win-

36 22 5. Instalación del entorno de trabajo Figura 5.3: Descarga de las distintas apis Figura 5.4: Instalación de Android Developer Tools

37 5.5. Descargando el proyecto desde la forja de REDIRIS 23 Figura 5.5: Especificar ubicación del sdk dow/preferences elegimos la opción Android. En el cuadro de dialogo mostrado debemos introducir la ruta donde fue instalado el sdk en el paso anterior, por ejemplo C:\android-sdk-windows. Si todo el proceso se ha realizado correctamente, tras pulsar el boton Apply nos aparecerán todas las versiones de las apis incluidas en nuestro sdk. Aceptamos los cambios y ya podremos empezar a desarrollar para Android. Sin embargo, para completar la puesta en marcha de las utilidades que nos ofrece el plugin, todavía nos queda por crear nuestro simulador, o simuladores, para probar nuestras aplicaciones. Esto evitará tener que acceder a nuestro terminal para testear cada cambio realizado en el código fuente desarrollado. Para ellos accedemos al menú Window\adv Manager, podremos crear fácilmente nuestros dispositivos haciendo clic en New.... Basta elegir el nombre deseado, elegir la versión de la api deseada y añadir la compatibilidad hardware que vayamos a necesitar. Tras hacer clic en Create adv nuestro dispositivo aparecerá en el listado.

38 24 5. Instalación del entorno de trabajo Figura 5.6: adv Manager 5.5 Descargando el proyecto desde la forja de REDIRIS Hay dos posibilidades : Si trabajais en Linux. Para conseguir una copia del proyecto abrimos una Terminal e introducimos el siguiente comando: svn checkout https://forja.rediris.es/svn/geotask Solo queda importar el proyecto en eclipse utilizando la función Import>Existing Projets Into Workspace. Si trabajais en Windows. Deberéis instalaros un cliente Subversion para poder descargaros una copia del proyecto. Ahora deberéis crear una carpeta que será dónde guardaréis la copia del proyecto. Una vez creada la carpeta, le damos sobre ella con el botón derecho del ratón y en el menú desplegable seleccionamos SVN Checkout. En la URL del repositorio debemos escribir https://forja.rediris.es/svn/geotask y le damos a OK para empezar la descarga.

39 CAPÍTULO 6 Análisis de requisitos, diseño e implementación Una vez que ya tenemos preparado nuestro entorno de trabajo y nos hemos familiarizado con Android, podemos empezar con el desarrollo de nuestra aplicación. Además del estudio del sistema operativo que incorpora Android, también se han desarrollado algunas aplicaciones de prueba para irnos familiarizando con el entorno de programación que éste ofrece y entender el funcionamiento de diversas funcionalidades de Android que necesitamos para poder realizar nuestra aplicación. Ahora pasaremos a explicar la realización de nuestra aplicación dividiéndola en tres apartados. Primeramente pasaremos a desglosar el análisis de requisitos necesarios que hemos necesitado para llevar a cabo la realización del proyecto. Desde cuáles son las tecnologías necesarias que hemos utilizado durante la etapa de desarrollo hasta los conocimientos que hemos tenido que ampliar para combinar estas tecnologías y llegar al buen funcionamiento de la aplicación. Seguidamente describiremos el diseño de nuestra aplicación, en él se analizará la estructura elegida para nuestro sistema, justificándola y explicándo la relación de cada clase con los módulos anteriormente expuestos. Tras una fase teórica y otra teorico-práctica, pasaremos a la práctica, propiamente dicha: el desarrollo de la aplicación. Será entonces cuando se comentará con más detalle el código de la aplicación, ahondando en las caracteristicas propias de Android, pudiendo afianzar los conocimientos anteriormente expuestos. 6.1 Análisis de Requisitos El principal objetivo de GeoTask es realizar ciertas tareas automáticamente al llegar a un lugar determinado. 25

40 26 6. Análisis de requisitos, diseño e implementación Para determinar nuestra ubicación, usaremos el dispositivo gps disponible en los terminales con Android, en el caso de que el dispositivo gps no se encuentre activado, usaremos el geoposicionamiento via wifi. Si no tenemos activado el wifi, usaremos como último recurso la geoposición basada en las antenas de telefonía móvil. GeoTask se cimenta en un concepto fundamental: el perfil. El perfil nos indica qué tareas queremos realizar en un área de proximidad determinado. Un perfil está compuesto por: Nombre. El nombre que pongamos será el que aparezca en la pantalla principal. Área de proximidad. El área de proximidad no es más que el área geográfica que se encuentra a una distancia del punto que elegimos como dirección, menor o igual al radio que hemos seleccionado. Se compone de un punto central (dirección) y el radio. Tareas que queremos realizar. Estas tareas pueden ser : Recibir recordatorios. Enviar sms. Realizar llamadas. Realizar una lista negra de nuestros contactos. Realizar una lista blanca de nuestros contactos. Enviar tweets. Actualizar nuestro estado en Facebook. El primer paso que debemos hacer es crear una perfil. Para ello debemos de proporcionarle un nombre un nombre y elegir el área de proximidad que queremos que tenga esa tarea. A primera instancia será necesaria la localización del usuario sobre el mapa. Este posicionamiento se realizará sobre un mapa proporcionado por la api de Google Maps para Android y tendremos un radio de cobertura de 100 metros, que será el radio más pequeño que podremos elegir, y que podremos modificar dinámicamente. A continuación podremos movernos con total libertad por el mapa en el caso de que queramos elegir otro lugar. El último paso es elegir las distintas tareas que queremos que se hagan. Algunas tareas podrán ser seleccionadas una sóla vez, como realizar

41 6.1. Análisis de Requisitos 27 llamadas y realizar una lista negra o blanca de nuestros contactos, las restantes podrán ser seleccionadas las veces que queramos. Cada perfil podrá ser activado/desactivado desde la pantalla principal. Para que funcione correctamente nuestra aplicación y se realicen automáticamente las tareas, debemos habilitar un servicio, en background, que se encargará de actualizar la ubicación en tiempo real del teléfono, que podremos parar en el momento que consideremos oportuno. Este servicio será el encargado de verificar si nos encontramos dentro del área de proximidad asociado algún perfil. Si nos encontramos dentro del área de proximidad de algún perfil, el sistema ejecutará las tareas asociadas a dicho perfil. En caso contrario lo normal será no hacer nada, a menos que alguna de las tareas del perfil asociada al área de proximidad del que salimos, sea una lista negra o blanca de nuestros contactos. En ese caso, deberemos eliminar esa lista para que el sistema funcione correctamente. Ahora vamos a pasar a explicar todas las tecnologías o componentes que utilizamos en GeoTask: GPS (Global Positioning System). Es un sistema global de navegación por satélite (GNSS) que permite determinar en todo el mundo la posición de un objeto, una persona o un vehículo con una precisión hasta de centímetros (si se utiliza gps diferencial), aunque lo habitual son unos pocos metros de precisión. El sistema fue desarrollado, instalado y actualmente operado por el Departamento de Defensa de los Estados Unidos. El gps funciona mediante una red de 24 satélites en órbita sobre el globo, a km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Cuando se desea determinar la posición, el receptor que se utiliza para ello localiza automáticamente como mínimo tres satélites de la red, de los que recibe unas señales indicando la identificación y la hora del reloj de cada uno de ellos. Con base en estas señales, el aparato sincroniza el reloj del gps y calcula el tiempo que tardan en llegar las señales al equipo, y de tal modo mide la distancia al satélite mediante triangulación (método de trilateracién inversa), la cual se basa en determinar la distancia de cada satélite respecto al punto de medición. Conocidas las distancias, se determina fácilmente la propia posición relativa respecto a los tres satélites. Conociendo además las coordenadas o posicián de cada uno de ellos por la señal que emiten, se obtiene la posición absoluta o coordenadas reales del punto de medición. También se consigue una exactitud extrema en el reloj del gps, similar a la de los relojes atómicos que llevan a bordo cada uno de los satélites. Actualmente dentro del mercado de la telefonía móvil la tendencia es la de integrar, por parte de los fabricante, la tecnología gps dentro de

42 28 6. Análisis de requisitos, diseño e implementación sus dispositivos. El uso y masificación del gps está particularmente extendido en los teléfonos móviles smartphone, lo que ha hecho surgir todo un ecosistema de software para este tipo dispositivos, así como nuevos modelos de negocios que van desde el uso del terminal móvil para la navegación tradicional punto-a-punto hasta la prestación de los llamados Servicios Basados en la Localización(LBS). Localización WiFi. El mecanismo de posicionamiento basado en redes inalámbricas WiFi o redes Wireless se basa en las mediciones que los puntos de acceso de la red hacen de la potencia y de la relación snr de las emisiones transmitidas por los dispositivos inalámbricos que se conectan a la red. Una red Wireless utiliza frecuencias libres y no necesita licencia. Localización GSM. Es un servicio ofrecido por las empresas operadoras de telefonía móvil que permite determinar, con una cierta precisión, donde se encuentra físicamente un terminal móvil determinado. Los distintos métodos que se emplean para la localización gsm son los siguientes: Célula de origen (Cell of Origin), en el que se incluyen id de célula (Cell id) e id de célula mejorada (Enhanced Cell id). id de célula: la precisión de este método es de 200 m en áreas urbanas, 2 km en áreas suburbanas y varía entre 3-4 km en entornos rurales. id de célula mejorada: con este método se consigue una precisión muy parecida a la que ofrece el Cell id para zonas urbanas, y en entornos rurales ofrece sectores circulares de 550 m. Diferencia de tiempo observada o e-otd (Enhanced-Observed Timed Difference): la precisión de este método depende del número de lmus disponibles en la red, variando entre 50 m y 200 m con un lmu por cada 3 estaciones base. Tiempo de llegada (Time of Arrival). Angulo de llegada (Angle of Arrival). Enhanced Observed Time Difference (estimación mejorada de la diferencia de tiempo). gps Asistido (Assisted gps). API Google Maps para Android. Proporciona un uso fácil y familiar del servicio Google Maps directamente desde nuestro terminal Android, gracias a la inclusión de la librería externa com.google.android.maps. Ofrece una funcionalidad similar al servicio Google Maps via web,

43 6.1. Análisis de Requisitos 29 permitiendo desplazamientos sobre el mapa, zoom, y otras opciones comunes. La clase MapView, que hereda de la clase ViewGroup en la api de Android, es el punto de inicio para su inclusión en nuestra aplicación. Se encarga de mostrar el mapa, configurarlo y hacerlo usable. Sobre ella se desarrollará toda la funcionalidad adicional necesaria. Hay otras clases suministradas por la misma librería que serán de especial interés en nuestra aplicación. Entre otras, Overlay nos permite añadir nuevas capas a nuestro mapa, donde dibujaremos la información que necesitemos. Servicio SMS. El servicio de mensajes cortos o sms (Short Message Service) es un servicio disponible en los teléfonos móviles que permite el envío de mensajes de texto entre teléfonos móviles y otros dispositivos de mano. sms fue diseñado originariamente como parte del estándar de telefonía móvil digital gsm, pero actualmente está disponible en una amplia variedad de redes, entre ellas las redes 3G. Un sms incluye una cadena alfanumérica de hasta 160 caracteres de 7 bits, y se encapsulan mediante unos estándares de telefonía móvil transparentes al usuario. El proceso de envío de sms consiste en el procesamiento de un centro de mensajes cortos, o smsc (Short Message Service Center) que se encarga de almacenarlos hasta que son enviados y de conectar con el resto de elementos de la red gsm. Cuando un usuario envía un sms, se incluyen una serie de parámetros como la fecha de envío, la validez del mensaje, número de teléfono del emisor y del receptor y el número del smsc que ha originado el mensaje. De esta forma, se asegura el correcto procesamiento a lo largo de toda la cadena. Al tener los sms un tamaño tan pequeño, no es necesario asignarles ningún canal de radio exclusivo para el envío, lo que permite un uso muy óptimo y eficaz a la hora de enviarlos y recibirlos. Conexión de datos (WIFI/3G/GPRS). Nuestra aplicación necesitará disponer de conexión a la Red para poder ver correctamente el mapa de Google Maps, poder enviar tweets a nuestra cuenta de Twitter o actualizar el estado de nuestra cuenta de Facebook. Esta conexión se realiza mediante peticiones internas por parte de las distintas apis que utilizamos en GeoTask (Maps,Twitter,Facebook). Twitter4J. Es una biblioteca no oficial para la api de Twitter. Con ésta biblioteca, podremos integrar fácilmente cualquier aplicación Android con Twitter.

44 30 6. Análisis de requisitos, diseño e implementación Gracias a Twitter4J podremos darle acceso a nuestra aplicación a las cuentas de Twitter que deseemos y poder enviar tweets con ellas a través de GeoTask. Facebook SDK. Kit de desarrollo software oficial de Facebook para poder integrar nuestra aplicación Android de una forma muy sencilla con Facebbok. Este kit de desarrollo software cuenta con las siguientes características : Utiliza autenticación OAuth2.0. Posibilidad de hacer peticiones a la nueva Graph api. Publicar historias a Facebook a través de Feeds. Gracias a este kit de desarrollo software que nos proporciona Facebook, podremos darle acceso a nuestra aplicación a las cuentas de Facebook que deseemos y poder actualizar el estado de cada una de ellas a través de GeoTask. En cuanto a requisitos no funcionales, además de los conocimientos requeridos por las herramientas de desarollo expuestas anteriormente, es necesario tener en cuenta otros aspectos importantes el proyecto debe desarrollarse con el concepto de modularidad necesarios, siguiendo las pautas de bajo acoplamiento y alta coherencia. También es importante tener en cuenta el hecho de estar programando para un sistema empotrado, por lo que habrá que evitar consumir recursos que no sean estrictamente necesarios, que tendrían un alcance significativo más allá de nuestra aplicación, ya que podría provocar un drástico efecto sobre el consumo de bateria. El punto más crítico en este sentido será la recepción de la señal del gps. Sobre las posibilidades ofrecidas por la aplicación, dado que no queremos que su uso se limite a España, deberá ofrecer la posibilidad de usar varios idiomas. Finalmente, dadas las diferentes versiones del sdk de Android que han sido publicadas y las modificaciones que, aunque pequeñas, han ido realizando los distintos fabricantes, es importante que el sistema sea probado bajo la mayor variedad de versiones posibles, ya sea mendiante simulación o en terminales reales. Sobre este aspecto ahondaremos en la fase de Pruebas. 6.2 Diseño Tras el Análisis de Requisitos, ya podemos realizar el diseño de nuestro sistema, distribuyendo las funcionalidades previstas de la forma más ópti-

45 6.2. Diseño 31 ma posible, proporcionando un entendimiento fácil e intuitivo, así como su mantenimiento. Hemos organizado el proyecto en 7 paquetes. Un paquete en Java es un contenedor de clases que permite agrupar las distintas partes de un programa cuya funcionalidad tienen elementos comunes. Nuestra aplicación contará con una clase principal llamada Main y que será la clase a la que accedamos cuando arrancamos la aplicación. En ella es donde se mostrarán los perfiles que ya hayamos creado, con la posibilidad de editarlos, eliminarlos o activarlos/desactivarlos, también podremos añadir nuevos perfiles, ver las cuentas de las redes sociales en las que nuestra aplicación tiene permiso para usar (clase Accounts) y habilitar/deshabilitar el servicio encargado de obtener nuestra localización. Esta clase extiende de Activity. Una Activity representa el componente principal de la interfaz gráfica de una aplicación Android. Se puede pensar en una actividad como el elemento análogo a una ventana en cualquier otro lenguaje visual. Otra clase importante es Perfil, que es la encargada de crear o editar los perfiles y de crear la Activity Map, que tiene asignadas 3 tareas básicas: construcción del mapa, designación de área de proximidad donde el centro es un localizador de posición dónde podremos aumentar/disminuir el radio e interactuar con el localizador de posicion anterior y configurar el modo de vista del mapa. El modo de vista nos ofrecerá la posibilidad de elegir entre Map y Satellite. Estas clases se encuentran en el paquete com.pfc.geotask. En el paquete com.pfc.database, se encuentran todas tablas necesarias para el correcto funcionamiento de nuestra aplicación. La clase principal de este paquete es la clase DBAdapter, que es la encargada de crear todas las bases de datos y triggers que necesita la aplicación. En el paquete com.pfc.task se encuentran todas las Activities correspondientes a las tareas que puede ejecutar nuestra aplicación. Todas estas clases cuentan con la misma estructura, a excepción de 3 de ellas: La clase BlackWhitelist, que se encarga tanto de crear una lista negra como una lista blanca de nuestros contactos. Tiene la particularidad de que podremos cambiar de tarea desde la misma aplicación a través del menú. Las clases Twitter y TFacebook, que se encargan de las tareas relacionadas con las redes sociales Twitter y Facebook, cuentan con la aprticularidad de que podremos autorizar el uso de nuevas cuentas a través del menú.

46 32 6. Análisis de requisitos, diseño e implementación Para ello cada una crea una Activity (AutorizaTwitter y Autoriza- Facebook respectivamente) que son las encargadas de realizar todo el proceso necesario para ello. Estas dos Activities encargadas de dar permisos a nuestra aplicación, se encuentran en el paquete com.pfc.geotask.authorize. La clase fundamental de nuestra aplicación se encuentra en el paquete com.pfc.geotask.service. Es la clase GeoService y su principal funcionalidad es asignar el listener que se encargará de actualizar periódicamente la posición del usuario y lanzar las alertas de proximidad de todos los perfiles que se encuentren activos. Esta clase extiende de Service. Un Service es un componente sin interfaz gráfica que se ejecutan en segundo plano. En concepto, es exactamente igual a los servicios presentes en cualquier otro sistema operativo. Los servicios pueden realizar cualquier tipo de acciones, por ejemplo actualizar datos, lanzar notificaciones, o incluso mostrar elementos visuales (Activities) si se necesita en algún momento la interacción con del usuario. Cuando entremos dentro del área de proximidad de algún perfil, entrarán en juego las clases que se encuentran en el paquete com.pfc.broadcast Cuando entramos dentro de un área de proximidad se activa la clase AreaProximityReceiver. Su función principal es la de detectar sin hemos salido del área de proximidad del perfil o estamos entrando. Si hemos salido deberemos activar la clase RemoveBWlistReceiver para eliminar del sistema las lista blanca o negra que pudiera tener el perfil. Si estamos entrando, deberemos activar todas las clases que lanzan las tareas automáticamente que estén asociadas al perfil. Esta clase extiende de BroadcastReceiver. Un BroadcastReceiver es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (por ejemplo: Batería baja, sms recibido, Tarjeta sd insertada,... ) o por otras aplicaciones (cualquier aplicación puede generar mensajes (intents, en terminología Android) broadcast, es decir, no dirigidos a una aplicación concreta sino a cualquiera que quiera escucharlo). Un intent es el elemento básico de comunicación entre los distintos componentes Android que hemos descrito anteriormente. Se pueden entender como los mensajes o peticiones que son enviados entre los distintos componentes de una aplicación o entre distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc. Nos falta hablar del paquete com.pfc.geotask.utils. A este paquete pertenecen las clases Java, la mayoria son estáticas, que nos ofrecen ciertas funcionalidades necesarias para varias clases, por ejemplo: saber si un número es un número de teléfono válido, etc.

47 6.3. Implementación 33 Figura 6.1: Diagrama de clases de GeoTask A continuación se representa un diagrama de clases donde se reflejan las principales funcionalides de cada una, así como su interconexión. También puede verse la interacción usuario-sistema a la hora de elegir el área de proximidad de un perfil y a la hora de pedir a nuestra aplicación autorización para usar cuentas de distintas redes sociales. 6.3 Implementación Antes de empezar, es importante comentar la estructura de un proyecto Android. Su peculiaridad reside en la carpeta res, de resources, donde a su vez se incluyen tres tipos de carpetas: drawable, para imágenes, layout, para los ficheros de configuración gráfica, y values, donde se crean diccionarios de variables, por ejemplo Strings.

48 34 6. Análisis de requisitos, diseño e implementación Figura 6.2: Estructura del proyecto GeoTask en eclipse Figura 6.3: Interacción usuario sistema a la hora de elegir el área de proximidad de un perfil

49 6.3. Implementación 35 Figura 6.4: Interacción usuario sistema a la hora de autorizar una cuenta de una red social

50 36 6. Análisis de requisitos, diseño e implementación Sobre esta estructura reside la modularidad definida en un proyecto Android, de forma que todos estos recursos quedan totalmente desacoplados del código de la aplicación. Su uso no es obligatorio, pero si muy recomendado, por directivas propias de buenas prácticas en el diseño del software. Además existe la carpeta Gen, autogenerada, que hace las funciones de índice para nuestros recursos a través del fichero R.java contenido en nuestro código fuente, con el que podremos acceder a los recursos comentados anteriormente Añadir una nueva tarea Ahora pasaremos a explicar cuáles son los pasos a seguir si queremos añadir una nueva tarea a GeoTask. El primer paso es diseñar la base de datos de la tarea que queremos añadir. Para ello deberemos determinar que datos son necesarios para poder ejecutar adecuadamente la tarea sin que le usuario tenga que intervenir. El segundo paso es crear la base de datos, para ello deberemos seguir los siguientes pasos: Modificar la variable DATABASE VERSION de la clase DBAdapter.java para que el sistema cree correctamente la nueva base de datos. Añadir el código necesario para la creación de la base de datos, así como el trigger en el caso de que sea necesario para el borrado en cascada (la versión 2.1 de Android no trae el borrado en cascada de forma nativa). No olvidar modificar las funciones de la clase DBAdapter.java oncreate y onupgrade. Crear una clase en el paquete com.pfc.database donde se implementarán todos los métodos necesarios para consultar, insertar, actualizar o eliminar registros de la base de datos. Para ello nos podemos guiar de la estructura de cualquiera de las clases ya creadas en ese paquete. 1 private static final String DATABASE_CREATE_CFACEBOOK = 2 "create table " + CFacebookDB.DATABASE_TABLE + " ( " + CFacebookDB.KEY_ROWID + 3 " integer primary key autoincrement, " + CFacebookDB.KEY_NAME + " text not null, " + 4 CFacebookDB.KEY_ACCESS_TOKEN + " text not null, " + CFacebookDB.KEY_ACCESS_EXPIRES + 5 " text not null);"; 6

51 6.3. Implementación 37 7 public static final String DATABASE_NAME = "Geotask"; 8 public static final int DATABASE_VERSION = 2; 9 10 /** 11 * Triggers necesarios para borrar en cascada. 12 */ 13 private static final String CREATE_TRIGGER_DELETE_REMINDER= 14 "CREATE TRIGGER fkd_reminder_perfil_id " 15 +"BEFORE DELETE ON " + PerfilDB.DATABASE_TABLE 16 +" FOR EACH ROW BEGIN " 17 +"DELETE FROM " + ReminderDB.DATABASE_TABLE 18 +" WHERE " + ReminderDB.KEY_IDPERFIL + " = OLD." 19 +PerfilDB.KEY_ROWID+"; END;"; Código 6.1: Algunos atributos de la clase DBAdapter 2 public void oncreate(sqlitedatabase db) { 3 db.execsql(database_create_perfil); 4 db.execsql(database_create_reminder); 5 db.execsql(create_trigger_delete_reminder); 6 db.execsql(database_create_sms); 7 db.execsql(create_trigger_delete_sms); 8 db.execsql(database_create_call); 9 db.execsql(create_trigger_delete_call); 10 db.execsql(database_create_bwlist); 11 db.execsql(create_trigger_delete_bwlist); 12 db.execsql(database_create_twitter); 13 db.execsql(create_trigger_delete_twitter); 14 db.execsql(database_create_ctwitter); 15 db.execsql(create_trigger_delete_ctwitter); 16 db.execsql(database_create_facebook); 17 db.execsql(create_trigger_delete_facebook); 18 db.execsql(database_create_cfacebook); 19 db.execsql(create_trigger_delete_cfacebook); } 22 /* 23 * (non-javadoc) 24 android.database.sqlite.sqliteopenhelper#onupgrade( android.database.sqlite.sqlitedatabase, int, int) 25 */ 27 public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { 28 Log.w(TAG, "Upgrading database from version " + oldversion + " to " 29 + newversion + ", which will destroy all old data"); 30 db.execsql("drop TABLE IF EXISTS " + PerfilDB.DATABASE_

52 38 6. Análisis de requisitos, diseño e implementación TABLE); 31 db.execsql("drop TABLE IF EXISTS " + ReminderDB. DATABASE_TABLE); Código 6.2: Métodos oncreate y onupgrade de la clase DBAdapter El siguiente paso sería crear la pantalla de la nueva tarea, para ello debemos realizar los siguientes pasos: Crear una clase en el paquete com.pfc.geotask.task, dónde se encontrará toda la lógica necesaria para la creación de una pantalla para que el usuario dé valor a todos los datos que necesitemos para el correcto funcionamiento de la tarea, interactuando con la base de datos cuando sea necesario. Para ello nos podemos guiar de la estructura de cualquiera de las clases ya creadas en ese paquete. Modificar la clase Perfil.java Crear una atributo de la clase que hace referencia a la base de datos anteriormente creada Desarrollar todo el código necesario en el método OnCreate para abrir la base de datos y en el método ondestroy para cerrarla. Modificar el método removetask para poder eliminar dicha tarea llegado el momento. Modificar el método filldata para poder mostrar la tarea en el perfil. Modificar el método creardialogoseleccion para que la nueva tarea se muestre a la hora de añadir una nueva tarea. Modificar el método onlistitemclick para poder editar la nueva tarea al pulsar sobre ella. 1 protected void onlistitemclick(view v, int position) { 2 Task t = (Task) lv.getitematposition(position); 3 Intent i = null; 4 5 String database = t.getdatabase(); 6 //Comprobamos que tarea es 7 if(database.equals(reminderdb.database_table)) 8 i = new Intent(this, Reminder.class); 9 if(database.equals(smsdb.database_table)) 10 i = new Intent(this, Sms.class); 11 if(database.equals(calldb.database_table)) 12 i = new Intent(this, Call.class); 13 if(database.equals(bwlistdb.database_table)) 14 i = new Intent(this, BlackWhitelist.class); 15 if(database.equals(twitterdb.database_table))

53 6.3. Implementación i = new Intent(this, Twitter.class); 17 if(database.equals(facebookdb.database_table)) 18 i = new Intent(this, TFacebook.class); i.putextra(reminderdb.key_idperfil, t.getid()); 21 i.putextra(perfildb.key_rowid, mrowid); 22 // Nos vamos a la pantalla correspondiente 23 startactivityforresult(i,activity_task); 24 } Código 6.3: Método onlistitemclick de la clase Perfil 1 2 public void removetask(int position){ 3 4 Task t = list_tasks.get(position); 5 String database = t.getdatabase(); 6 7 // Buscamos de que tarea se trata 8 if(database.equals(reminderdb.database_table)) 9 reminderdb.deletereminder(t.getid()); 10 else if(database.equals(smsdb.database_table)) 11 smsdb.deletesms(t.getid()); 12 else if(database.equals(calldb.database_table)) 13 calldb.deletecall(t.getid()); 14 else if(database.equals(bwlistdb.database_table)) 15 blackwhitelistdb.deletebwlist(t.getid()); 16 else if(database.equals(twitterdb.database_table)) 17 twitterdb.deletetweet(t.getid()); 18 else if(database.equals(facebookdb.database_table)) 19 facebookdb.deletemessage(t.getid()); 20 } Código 6.4: Método removetask de la clase Perfil Si estamos realizando una tarea relacionada con alguna red social, deberemos modificar la clase Accounts del paquete com.pfc.geotask y realizar los siguientes pasos: Crear una atributo de la clase que hace referencia a la base datos donde guardamos las cuentas de esa red social. Desarrollar todo el código necesario en el método OnCreate para abrir la base de datos y en el método ondestroy para cerrarla. Modificar el método removeaccount para poder eliminar dicha tarea llegado el momento. Modificar el método filldata para poder mostrar la tarea en el perfil.

54 40 6. Análisis de requisitos, diseño e implementación Modificar el método creardialogocuentas para poder añadir cuentas de dicha red social. 1 private void filldata() { 2 3 list_accounts = new ArrayList<Task>(); 4 list_accounts.addall(ctwitterdb.getallaccount()); 5 list_accounts.addall(cfacebookdb.getallaccount()); 6 7 setlistadapter(new TaskAdapter(this, list_accounts)); 8 } Código 6.5: Método filldata de la clase Accounts 1 2 private Dialog creardialogocuentas() { 3 4 final String[] items = getresources().getstringarray(r. array.accounts); 5 AlertDialog.Builder builder = new AlertDialog.Builder( this); 6 builder.settitle(r.string.seleccion_cuenta); 7 builder.setitems(items, new DialogInterface. OnClickListener() { 9 /* 10 * (non-javadoc) 11 android.content.dialoginterface. OnClickListener#onClick(android.content. DialogInterface, int) 12 */ 13 public void onclick(dialoginterface dialog, int item ) { String seleccionado = items[item]; 16 if(getstring(r.string.task_twitter).equals( seleccionado)) autoriza_twitter(); 19 else if(getstring(r.string.task_facebook).equals (seleccionado)) 20 autoriza_facebook(); 21 } }); 24 return builder.create(); 25 } Código 6.6: Método CrearDialogoCuentas de la clase Accounts

55 6.3. Implementación 41 El tercer paso sería añadir toda la lógica necesaria para que la tarea se ejecute sin la intervención del usuario. Para ello debemos crear una clase en el paquete com.pfc.geotask.broadcast, pudiéndonos guiar de la estructura de cualquiera de las clases ya creadas en este paquete. Por último deberemos modificar el archivo AndroidManifest.xml, donde deberemos realizar las siguientes acciones: Añadir nuevos permisos si es necesario. Añadir las Activities y BroadcastReceivers que hayamos creado. Después de realizar todos estos pasos, ya podremos probar la nueva tarea para comprobar su correcto funcionamiento Problemas encontrados A la hora de implementar esta aplicación, nos hemos encontrado con una serie de problemas que pasamos a detallar a continuación: No hemos podido implementar una tarea que hiciera uso de la aplicación whatsapp, al no poseer una api pública. Sería interesante que la tuviera, ya que es un servicio muy usado actualmente. Por el mismo motivo, no hemos podido implementar una tarea que interactuara con la red social española Tuenti. Cuenta con una api pública cerrada(debes tener una licencia), con lo cuál nos es imposible acceder a dicha api. Intentamos realizar una tarea para enviar correos electrónicos de forma automática, pero se desecho al tener que utilizar clases Java auxiliares, que presentaban varios inconvenientes: No funcionaban para cualquier proveedor de correos electrónicos(gmail, Hotmail, etc.), sino para uno en particular. Lo cual hacía imposible que nuestra aplicación pudiera enviar correos desde cualquier proveedor. Aún así, optamos por utilizar una clase Java auxilar que nos asegurara el envío desde un correo Gmail. Para enviar los correos electrónicos estas clases necesitan la contraseña de la cuenta de correo. Este hecho nos parecía crítico, ya que necesitabamos obtener y guardar la contraseña, en vez de utilizar otro tipo de autenticación como en las cuentas de Twitter y Facebook. Esto nos hizo desistir, ya que después de preguntar a amigos y familiares, nos dijeron que no se sentirían seguros a la hora de poner sus contraseñas de sus cuentas de correos electrónicos.

56 42 6. Análisis de requisitos, diseño e implementación Tuvimos un problema con el manejo de memoria que hace Android. El problema surgía al autorizar a nuestra aplicación utilizar una cuenta de Twitter y era un error aleatorio. Al utilizar el navegador para realizar el proceso de autorización y dejar a nuestra aplicación en pausa, Android, a veces, cerraba la aplicación ya que necesitaba memoria ram para otros procesos. Esto provocaba que al volver del proceso de autorización, no concordara las claves utilizadas para el proceso y no se pudiera completar el proceso. Esto se solucionó, abriendo el navegador en la misma aplicación, asegurándonos con ello que Android no nos cerrara la aplicación y poder así completar todo el proceso de manera satisfactoria.

57 CAPÍTULO 7 Pruebas Una vez completado el desarrollo de una aplicación es necesario llevar a cabo una fase de pruebas que, aunque no garanticen totalmente el correcto funcionamiento de la aplicación, sí podremos decir que, al menos, en las condiciones que han sido supervisadas el resultado ha sido positivo. El motivo es que es imposible desarrollar una batería de pruebas para experimentar absolutamente todas las posibilidades de funcionamiento y todas las condiciones del sistema. Además, el periodo de pruebas también supone un coste, por lo que habrá que decidir la fiabilidad que deseamos ofrecer, basándose en un equilibrio coste-garantía. Estas pruebas no comprueban únicamente el funcionamiento de la aplicación final, lo que se conoce como pruebas de integración, sino también el funcionamiento parcial de de cada funcionalidad que se va incorporando al sistema, lo que se conoce como pruebas unitarias. De lo anterior se desprende que las pruebas no se llevan a cabo únicamente al finalizar el desarrollo, sino que es una operación necesaria a lo largo de todo el proceso. Inicialmente serán casos más parecidos a pruebas unitarias y progresivamente irán acercándose a las pruebas finales de integración. 7.1 Pruebas unitarias Para la realización de pruebas, el sdk de Android ofrece la herramienta de gestión de avds (Android Virtual Devices), de la que ya hablamos anteriormente en el capítulo dedicado a la instalación del entorno de desarrollo. Este ha sido el método principal elegido en estas pruebas de unitarias, aunque también se han realizado algunas, más reducidas, en un terminal HTC Dream. El avd elegido está basado en la versión Google apis Android 2.1, mientras que el terminal HTC Dream cuenta con la versión de Android 43

58 44 7. Pruebas Este terminal virtual cuenta con una pantalla tipo WVGA854 y lleva instalado el dispositivo gps. La simulación del gps se realiza obligatoriamente enviando coordenadas al receptor, ya sea mediante Eclipse o mediante la linea de comandos. El funcionamiento de la primera opción es trivial, activando la perspectiva ddms de Eclipse. En el segundo caso hay que conectar usando telnet con el avd mediante el comando telnet localhost X, donde X es el id asignado por el Sistema Operativo al avd, normalmente Una vez conectado, el comando necesario es geo fix [latitud] [longitud]. En esta fase de pruebas hemos probado todas las tareas de forma separada, cada vez que añadíamos una nueva, para comprobar su correcto funcionamiento, corrigiendo aquellas dónde aparece algún error o fallo, posibilitando incluso cambios en el diseño para conseguir optimizaciones y/o el correcto funcionamiento de la aplicación. También fue probado en esta etapa la interacción con Google Maps, añadiendo mejoras para que al usuario le resulte lo más cómodo posible elegir el área de proximidad de un perfil. Para estas pruebas unitarias también se ha usado el terminal HTC Dream, aunque en menor medida porque se ha usado una vez que las pruebas en el avd han sido positivas, para cerciorarnos de que funciona correctamente en un terminal real. Hemos usado el terminal debido mayormente a que el comportamiento del simulador no es fidedigno a un terminal real, sobre todo en tiempos de procesamiento y de respuesta, resultando en unos casos más a rápido y en otros más lento. Además hay funcionalidades que no podemos probar en el simulador, como la obtención de la unicación a través de Wi-Fi o de las antenas de telefonía. Longitud Latitud Sevilla Jerez de la Frontera Las Cabezas de San Juan Chipiona Madrid Cuadro 7.1: Coordenadas usadas en las pruebas 7.2 Pruebas de integración Las pruebas de integración son las que determinan la calidad y fiabilidad final del sistema desarrollado, pues supone garantizar el correcto funcionamiento, de forma global, bajo las condiciones probadas. En primer lugar se ha probado el funcionamiento en el simulador sobre dos versiones: Google apis Android 2.1 y Google apis Android 2.2.

59 7.2. Pruebas de integración 45 Para las dos versiones, hemos realizando un flujo de operaciones normal: creación de varios perfiles con sus correspondientes tareas, estando algunos perfiles en el mismo área de proximidad y coincidiendo varias tareas en ellos. Además se comprobará el correcto funciomamiento del idioma inglés y en el terminal HTC Dream se ha probado el idioma español. A continuación se comentan los resultados para las diferentes versiones, empezando por la más avanzada. De esta forma podremos concluir enunciando las compatibilidades de la aplicación. En el cuadro anterior se muestran las coordenadas usadas en las pruebas. Google apis 2.2 (api Level 8). Tras arrancar la aplicación con el terminal en inglés, se observa un funcionamiento normal. Pero al intentar crear el área de proximidad, el sistema no es capaz de obtener el nombre de la dirección del punto medio de nuestro área. Al realizar varias búsquedas por internet nos encontramos con que parece ser que hay en bug en esta versión que no permite obtener el nombre de la dirección de un punto. Esto se corrobora al probar la aplicación en nuestro terminal HTC Dream con version de Android y comprobar que obtiene el nombre de la dirección del punto central de nuestro área de proximidad. Además también comprobamos con el terminal en español que la aplicacion funciona de forma normal y que funciona correctamente la aplicación se tenemos dos perfiles en el mismo área de proximidad con varias tareas del mismo tipo, por lo que el sistema parece que se comporta como queremos sin obtener problemas de ningún tipo. Con estos datos podemos decir que el resultado es satisfactorio. Google apis 2.1 (api Level 7). Ha sido la versión utilizada para las pruebas unitarias, por lo que aunque en este apartado solo se comentan las pruebas de integración, su compatibilidad esta ampliamente testada. Tras iniciar la aplicación con el terminal en inglés, se crean varios perfiles con sus correspondientes tareas, algunas en el mismo área de proximidad. Una vez que tenemos todos los perfiles que queremos, vamos modificando nuestra posición a través del comando geo fix para comprobar que solo se ejecutan los perfiles cuando estamos dentro del área de proximidad y no en otro caso.

60 46 7. Pruebas Una vez terminadas todas las pruebas, podemos decir que el sistema funciona de forma correcta, sin detectarse ningún fallo en todo el proceso, por lo que podemos decir que el resultado es satisfactorio.

61 CAPÍTULO 8 Manual Una vez finalizada la implementación de la aplicación y habiendo probado su correcto funcionamiento, es necesario redactar un manual de uso, de forma que, aún teniendo un uso intuitivo, cualquier usuario sea capaz de familiarizarse fácilmente con la interfaz y su correcto funcionamiento. 8.1 Requisitos GeoTask es una sencilla aplicación destinada a la realización automática de tareas sin la intervención del usuario cuando nos encontramos en una determinada ubicación. La localización se realiza mediante el dispositivo gps integrado en el terminal móvil si se encuentra activo. En caso de no estar activo, se realizará vía Wi-Fi si tenemos activada esta opción en nuestro teléfono. En caso de no estar disponible utilizaremos la localización vía gsm. En caso de no estar disponible ninguna de las tres opciones, se avisará de la imposibilidad de localizar al usuario. Además, es necesaria una conexión a Internet ya sea mediante una red Wi-Fi o a través de la conexión de datos ofrecida por el operador de telefonía móvil. Si no dispone de conexión no se mostrará ninguna advertencia, pero el funcionamiento no será el correcto. En primer lugar, será imposible mostrar el mapa de situación a la hora de crear o editar el área de proximidad de un perfil, por lo que el usuario será situado en una pantalla gris sin ningún tipo de detalles. Además, no se podrá ejecutar con normalidad ciertas tareas como el envío de tweets o la actualización de nuestro estado en Facebook. NOTA: La señal del gps solo estará disponible en lugares abiertos, por lo que en edificios o cualquier espacio que represente obstáculos para la recepción no se conseguirá un correcto funcionamiento. 47

62 48 8. Manual Figura 8.1: Pantalla principal de GeoTask sin perfiles 8.2 Funcionamiento Una vez iniciada la aplicación correctamente nos aparecerá una pantalla con el nombre de todos los perfiles creados o, en caso de que no hayamos creado ninguno, se nos mostrará la frase Sin perfiles. Si pulsamos la tecla menú, veremos las siguientes opciones: Añadir Perfil: Podremos añadir un nuevo perfil. Cuentas: Podremos ver las cuentas de nuestras redes sociales que GeoTask puede utilizar y añadir más. Habilitar GeoTask/Deshabilitar GeoTask: Podremos habilitar/deshabilitar la posibilidad de que GeoTask localice la posición del móvil para saber si debe ejecutar alguna tarea. Si elegimos la opción de añadir un perfil, nos aparecerá una pantalla dónde podremos elegir el nombre, la dirección junto con el radio de proximidad y las tareas que deseamos que sean ejecutadas. Si pulsamos la tecla menú, veremos que podemos guardar el perfil o desechar los cambios que hayamos hecho. Es necesario saber que si elegimos una tarea, automáticamente el perfil es guardado. Para elegir la dirección, basta con pulsar el botón Añadir Localización. En el caso de que queremos editar, deberemos pulsar el nombre de la dirección que aparezca. Si queremos eliminar la dirección, sólo tendremos que resalizar una pulsación larga hasta que nos aparezca la opción Eliminar.

63 8.2. Funcionamiento 49 Figura 8.2: Pantalla con las cuentas de redes sociales que puede utilizar GeoTask Figura 8.3: Pantalla de un perfil en GeoTask

64 50 8. Manual Figura 8.4: Pantalla para elegir el área de proximidad en GeoTask A la hora de elegir o editar el área de proximidad de un perfil, se nos mostrará la ubicación anterior en el caso de que estemos editándola o nuestra ubicación actual sobre un mapa en caso contrario. En ambos casos contaremos con un área de proximidad, que indicará la zona en la que, si entramos, se ejecutarían las alertas de ese perfil. El mapa soporta la funciones de zoom y desplazamiento, que permite además un movimiento libre al usuario. Podremos modificar el radio de forma totálmente dinámica, teniendo un mínimo de 100 metros, al igual que cambiar la ubicación hasta el lugar que nos interese. Si pulsamos la tecla menú, veremos las siguientes opciones: Ver: podemos elegir el tipo de mapa que queremos visualizar. Localización: El sistema determinará nuestra ubicación y nos situará en el mapa. Guardar: Guardamos los cambios realizados. No Guardar: No guardamos los cambios realizados. El siguiente paso después de seleccionar la dirección y el área de proximidad que queremos es seleccionar las tareas que debe ejecutar nuestro móvil. Para ello deberemos seleccionar el botón Añadir Tareas. Al pulsar nos aparecerán todas las tareas que podemos añadir. Están limitadas a una por perfil las tareas llamada y lista negra/blanca, las demás no tienen ningún límite establecido. Casi todas las tareas tienen una misma estructura, debes darle valor a una serie de campos para que la ejecución sea satisfactoria.

65 8.2. Funcionamiento 51 Figura 8.5: Pantalla con todas las tareas que permite GeoTask Figura 8.6: Pantalla de la tarea recordatorio en GeoTask

66 52 8. Manual Figura 8.7: Pantalla de la tarea twitter en GeoTask Si presionamos la tecla menú, la mayoría cuenta con dos opciones únicamente, pudiendo guardar o no los cambios efectuados en la tarea. Hay dos excepciones: Tareas Facebook y Twitter. Admite, en el menú, la posibilidad de autorizar a GeoTask el uso de más cuentas de estas dos redes sociales. Tiene una restricción, si no hemos autorizado en el dispositivo el uso de una cuenta de la red social de la cuál queremos realizar la tarea, no podremos añadirla. Tarea Lista Negra/Blanca. Es una tarea especial al ser, en realidad, dos tareas en una. A la hora de crearla nos permitirá elegir que tipo de lista queremos, explicándonos lo que hace cada una de ellas. También podremos modificar el tipo de lista presionando la tecla Menú y presionando la opción Tipo de Lista. Todas las tareas que vayamos creando, irán apareciendo debajo de Tareas:. Estas tareas podrán ser editadas presionando sobre ellas o, directamente, eliminarlas realizando una pulsación larga hasta que nos aparezca la opción de eliminarlo. Una vez que ya hayamos completado el perfil, volveremos a la pantalla principal. Desde allí podremos activar/desactivar cada perfil que hayamos creado. También podremos editar un perfil determinado pulsando sobre su nombre o eliminarlo directamente realizando una pulsación larga hasta que nos aparezca la opción de eliminarlo.

Tema 2: Introducción a Android

Tema 2: Introducción a Android Tema 2: Introducción a Android Android Android es un sistema operativo basado en el Kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil. Android Fue desarrollado originalmente

Más detalles

INGENIERÍA INFORMÁTICA SEGUIMIENTO DE USUARIO USANDO RECURSOS ANDROID. Realizado por Miguel Martín Macías. Dirigido por José Ramón Portillo Fernández

INGENIERÍA INFORMÁTICA SEGUIMIENTO DE USUARIO USANDO RECURSOS ANDROID. Realizado por Miguel Martín Macías. Dirigido por José Ramón Portillo Fernández ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA INGENIERÍA INFORMÁTICA SEGUIMIENTO DE USUARIO USANDO RECURSOS ANDROID Realizado por Miguel Martín Macías Dirigido por José Ramón Portillo Fernández Departamento

Más detalles

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

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C. U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C. Rogelio Vázquez Hernández Smartphone Termino utilizado para referirse

Más detalles

http://www.droidlife.com/#47

http://www.droidlife.com/#47 Oct 2003 Fundación de Android, Inc. en Palo Alto, CA. 16 Ago, 2005 Android, Inc. es adquirida por Google. 5 Nov, 2007 Se anuncia el Open Handset Alliance (OHA), una alianza formada por 34 compañías líderes

Más detalles

Cookbook Creando un Proyecto Android (ADT-Eclipse)

Cookbook Creando un Proyecto Android (ADT-Eclipse) Cookbook Creando un Proyecto Android (ADT-Eclipse) ALONSO PARRA CESAR VIELMA FREDDY RONDON JOSE MARQUEZ Alienx9889 * cesarvielma * spantons * joseangel2212 * * @gmail.com Universidad de Los Andes Escuela

Más detalles

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

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

Más detalles

TEMA 1. Introducción

TEMA 1. Introducción TEMA 1 Introducción LO QUE ABORDAREMOS Qué es Android? Qué lo hace interesante? Arquitectura del sistema Entorno de desarrollo 2 QUÉ ES ANDROID? Sistema operativo para móviles Desarrollado inicialmente

Más detalles

Programación Android Completo

Programación Android Completo Programación Android Completo Duración: 50.00 horas Descripción Este curso pretende formar al alumno en el desarrollo de aplicaciones para dispositivos Android. Se estudiarán con detalle todos aquellos

Más detalles

1.1. Instalación del entorno de desarrollo

1.1. Instalación del entorno de desarrollo 1.1. Instalación del entorno de desarrollo Para el desarrollo de las aplicaciones vamos a poder utilizar un potente y moderno entorno de desarrollo. Al igual que Android, todas las herramientas están basadas

Más detalles

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

Desarrollo de apps para móviles Android. Entorno de desarrollo Desarrollo de apps para móviles Android Entorno de desarrollo Entorno de desarrollo Las aplicaciones Android van a ser implementadas en Java usando Android SDK. El software necesario para realizarlas es

Más detalles

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

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE Tutorial 1 Instalación del entorno de desarrollo de Android Curso de perfeccionamiento: Programación de Android 2013 1 Para desarrollar aplicaciones Android debemos instalar el siguiente software en nuestro

Más detalles

Curso de Android con Java

Curso de Android con Java Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 Este es un tiempo único para el mundo de los celulares, en particular de los Smartphones. Este tipo de dispositivos

Más detalles

Capitulo 1: Plataforma Android

Capitulo 1: Plataforma Android Capitulo 1: Plataforma Android Elaborado por: Gary Briceño http://gary.pe http://gary.pe 1 Temario 1. Android 2. Evolución 3. Arquitectura Android 4. Paquetes de Trabajo 5. Android y Java http://gary.pe

Más detalles

IVista: es la interfaz con la que el Presentador se comunica con la vista.

IVista: es la interfaz con la que el Presentador se comunica con la vista. Capítulo 3 MODELO DE DISEÑO 3.1 Arquitectura Modelo-Vista-Presentador La arquitectura Modelo-Vista-Presentador (MVP) [11] separa el modelo, la presentación y las acciones basadas en la interacción con

Más detalles

Entorno de desarrollo Instalación y configuración

Entorno de desarrollo Instalación y configuración Entorno de desarrollo Instalación y configuración GExCALL Formación http://gexcall.unex.es/formacion El plugin ADT (Android Development Tools) extiende al IDE Eclipse. Te permite crear y depurar aplicaciones

Más detalles

App Android: Desarrollo de aplicaciones en Android.

App Android: Desarrollo de aplicaciones en Android. App Android: Desarrollo de aplicaciones en Android. Introducción a Android Charla-taller impartida en CAMON Alicante el 11-12 de enero de 2011. Boyán Bonev, Pablo Suau, Miguel A. Lozano y el Dep. CCIA

Más detalles

INTRODUCCIÓN. paco@portadaalta.es

INTRODUCCIÓN. paco@portadaalta.es INTRODUCCIÓN paco@portadaalta.es Índice Entorno de desarrollo Estructura de un proyecto Android Componentes de una aplicación Android Ejemplos: Mi primera aplicación Divisas 2 actividades Contador de cafés

Más detalles

Tabletas en el aula. Diseño de apps con MIT App Inventor 2. Edición 2015. Autor: Fernando Posada Prieto canaltic.com

Tabletas en el aula. Diseño de apps con MIT App Inventor 2. Edición 2015. Autor: Fernando Posada Prieto canaltic.com Tabletas en el aula Diseño de apps con MIT App Inventor 2 Edición 2015 Autor: Fernando Posada Prieto canaltic.com Diseño de apps con MIT App Inventor 2 Índice 1. Qué es App Inventor 2?... 2 2. Requisitos

Más detalles

Visión general y entorno de desarrollo

Visión general y entorno de desarrollo CAPÍTULO 1. Visión general y entorno de desarrollo La telefonía móvil está cambiando la sociedad actual de una forma tan significativa como lo ha hecho Internet. Esta revolución no ha hecho más que empezar,

Más detalles

IMPLANTACIÓN PLATAFORMA DE DIFUSIÓN (PAGINA WEB / APP ANDROID)

IMPLANTACIÓN PLATAFORMA DE DIFUSIÓN (PAGINA WEB / APP ANDROID) IMPLANTACIÓN PLATAFORMA DE DIFUSIÓN (PAGINA WEB / APP ANDROID) Valeska Concha C. 122 Transferencia Tecnológica y Difusión del proyecto. Introducción El desarrollo de un plataforma de información para el

Más detalles

Android 4 Principios del desarrollo de aplicaciones Java

Android 4 Principios del desarrollo de aplicaciones Java La plataforma Android 1. Presentación 13 2. Origen 14 3. Google Play 15 3.1. Creación de una cuenta de desarrollador 16 3.2 Publicación de una aplicación 16 3.3. Seguimiento y actualización de una aplicación

Más detalles

Instalación del entorno de desarrollo

Instalación del entorno de desarrollo Curso 13/14 Desarrollo de Instalación del entorno de desarrollo Pasos a seguir Pre-requisitos Instalación de Eclipse+ADT ( Developer Tools) Presentación de la interfaz del plugin ADT para Eclipse Añadir

Más detalles

Que es el Sistema de Posicionamiento GPS?

Que es el Sistema de Posicionamiento GPS? Que es el Sistema de Posicionamiento GPS? El Global Positioning System (GPS) o Sistema de Posicionamiento Global (más conocido con las siglas GPS aunque su nombre correcto es NAVSTAR-GPS) es un Sistema

Más detalles

Versiones offline. Índice EDELVIVES DIGITAL. Versión offline para ipad 01. Versión offline para tabletas Android 06. Versión offline para Windows 8 12

Versiones offline. Índice EDELVIVES DIGITAL. Versión offline para ipad 01. Versión offline para tabletas Android 06. Versión offline para Windows 8 12 Versiones offline Índice Versión offline para ipad 01 Versión offline para tabletas Android 06 Versión offline para Windows 8 12 Versión offline de escritorio Windows 18 Versión offline de escritorio Linux

Más detalles

Software libre complementario

Software libre complementario Software libre complementario Ministerio de Educación. ITE. Software libre complementario. 1 Módulo 4. Software libre complementario En este apartado vamos a contemplar algunos programas de acceso libre

Más detalles

MANUAL DE USUARIO CENTRO DE CONTROL DE FLOTAS MU-CCF-021-SN AGOSTO 2000 EDICIÓN: 1 REVISIÓN: 0

MANUAL DE USUARIO CENTRO DE CONTROL DE FLOTAS MU-CCF-021-SN AGOSTO 2000 EDICIÓN: 1 REVISIÓN: 0 CENTRO DE CONTROL DE FLOTAS MANUAL DE USUARIO MU-CCF-021-SN EDICIÓN: 1 ÍNDICE 1 INTRODUCCIÓN... 1.1 2 FUNCIONALIDAD... 2.1 3 REQUISITOS DEL SISTEMA... 3.1 4 INSTALACIÓN DEL PROGRAMA... 4.1 5 MANEJO DEL

Más detalles

CAPÍTULO 1. Visión general y entorno de desarrollo... 21

CAPÍTULO 1. Visión general y entorno de desarrollo... 21 Índice general Lista de acrónimos... xv Cómo leer este libro?... xvii CAPÍTULO 1. Visión general y entorno de desarrollo... 21 1.1. Qué hace que Android sea especial?... 22 1.2. Los orígenes... 23 1.3.

Más detalles

Ejemplo práctico de instalación del programa JCLIC en red

Ejemplo práctico de instalación del programa JCLIC en red Ejemplo práctico de instalación del programa JCLIC en red Una red local permite optimizar los recursos, tanto en relación al espacio (los programas se pueden colocar en el disco duro del servidor y ser

Más detalles

Presentación y objetivos

Presentación y objetivos Presentación y objetivos Android es un sistema operativo para dispositivos móviles (Smartphone, Tablet-pc,...) basado en Linux, que integra una serie de librerías para el desarrollo de aplicaciones en

Más detalles

Requisitos del Software Aplicativo Móvil SISTEMAS INTELIGENTES EN RED S.A.S.

Requisitos del Software Aplicativo Móvil SISTEMAS INTELIGENTES EN RED S.A.S. Requisitos del Software Aplicativo Móvil SISTEMAS INTELIGENTES EN RED S.A.S. Desarrollo de Aplicativo Móvil 2 Índice 1. INTRODUCCIÓN... 3 2. OBJETIVO... 3 3. MÓDULO MENSAJERÍA... 3 3.1. Actores... 3 3.2.

Más detalles

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales.

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales. 1 Arquitectura de una Aplicación Android Para empezar con el desarrollo de aplicaciones en Android es importante conocer cómo está estructurado este sistema operativo. A esto le llamamos arquitectura y

Más detalles

CIF-GPS GUÍA DE USUARIO

CIF-GPS GUÍA DE USUARIO CIF-GPS GUÍA DE USUARIO Secciones 1. VENTAJAS DE CIF-GPS 2. INSTALAR CIF-GPS 3. FUNCIONAMIENTO DE LA APLICACIÓN. 3.1 Visión general y conceptos 3.2 Entrar en CIF-GPS. 3.3 Ventana Principal. 3.4 Menús contextuales

Más detalles

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

http://www.oracle.com/technetwork/es/java/javase/downloads/index.html Introducción En esta primera parte del taller iremos viendo paso a paso como poner a punto todo tu entorno de trabajo para poder empezar cuanto antes a desarrollar tu primera aplicación Android para luego

Más detalles

TEMA 3: SISTEMAS OPERATIVOS.

TEMA 3: SISTEMAS OPERATIVOS. TEMA 3: SISTEMAS OPERATIVOS. 1. QUÉ ES UN SISTEMA OPERATIVO? 2. SISTEMAS OPERATIVOS GRÁFICOS. 3. SISTEMAS OPERATIVOS MÓVILES. 4. EL ENTORNO DE WINDOWS PARA PC. 5. LA APLICACIÓN DEL TEMA. 6. ACTIVIDADES.

Más detalles

Material Actividad de aprendizaje 1. Primeros Pasos con App Inventor

Material Actividad de aprendizaje 1. Primeros Pasos con App Inventor Análisis Desarrollo de para aplicaciones el desarrollo móviles móvil con APP con INVENTOR.. Indice Introducción 1. Android. 2. Introducción. 3. Requisitos para la Configuración. 4. Configuración de 2.

Más detalles

Manual de la aplicación para terminales móviles AppTUSSAM

Manual de la aplicación para terminales móviles AppTUSSAM Edición: 5ª Página 1 de 13 Fecha: 25-03-2014 Manual de la aplicación para terminales móviles AppTUSSAM Edición: 5ª Página 2 de 13 Fecha: 25-03-2014 PANTALLA PRINCIPAL Tiempos de llegada: para consultar

Más detalles

Por medio de la presente nos complace presentar a ustedes nuestra propuesta de certificaciones de alta cobertura por volumen.

Por medio de la presente nos complace presentar a ustedes nuestra propuesta de certificaciones de alta cobertura por volumen. MBA. JUAN ALFREDO SALDÍVAR CABRAL Director Nacional de MexicoFIRST LIC. ANDRÉS SIMÓN BUJAIDAR Director de Alianzas de MexicoFIRST México D.F. a 05 de agosto de 2014 P R E S E N T E Por medio de la presente

Más detalles

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

Guía de instalación del software de la asignatura Guía de instalación del software de la asignatura Eclipse + Android SDK 1. La forma más sencilla de instalar Eclipse con el plugin ADT para desarrollo de aplicaciones Android es descargar el paquete preconfigurado

Más detalles

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación ) Clase:003 1 Unidad I Introducción a la programación de Dispositivos Móviles (Continuación ) 2 Entornos de Desarrollo Virtualizaciones. Agenda IDE s. Y Lenguajes de Programación. 3 Virtualización Que es

Más detalles

Reproductor Multimedia Streaming v0.1

Reproductor Multimedia Streaming v0.1 Reproductor Multimedia Streaming v0.1 Joaquín Gutiérrez Gil Universidad Pablo de Olavide Ingeniería Técnica en Informática de Gestión Asignatura Proyecto Introducción El presente documento trata sobre

Más detalles

Introduccion a la plataforma Android

Introduccion a la plataforma Android Introduccion a la plataforma Android Felipe A. Besoaín Pino fbesoain@gmail.com 22-05-2009 Resumen Las características y usos que nos proveen los dispositivos móviles en los últimos años, han provocado

Más detalles

Ministerio de Educación,Cultura y Deporte. Aulas en Red. Windows. Módulo 4: Servicios de Internet. FTP

Ministerio de Educación,Cultura y Deporte. Aulas en Red. Windows. Módulo 4: Servicios de Internet. FTP Ministerio de Educación,Cultura y Deporte. Aulas en Red. Windows Módulo 4: Servicios de Internet. FTP Aulas en red. Aplicaciones y servicios. Windows Servicio FTP Con anterioridad, en este mismo módulo

Más detalles

BÁSICOS APP INVENTOR. Manual de Introducción a AppInventor

BÁSICOS APP INVENTOR. Manual de Introducción a AppInventor BÁSICOS APP INVENTOR Manual de Introducción a AppInventor Contenido 1. Qué es AppInventor?... 2 2. Qué tipo de aplicaciones pueden crearse con AppInventor?... 3 3. Cómo se construye una aplicación en

Más detalles

INTRODUCCIÓN AL WEB. Pag. 1 de 10

INTRODUCCIÓN AL WEB. Pag. 1 de 10 INTRODUCCIÓN AL WEB La World Wide Web o simplemente WWW o Web es uno de los métodos más importantes de comunicación que existe en Internet. Consiste en un sistema de información basado en Hipertexto (texto

Más detalles

Desarrollo de apps para móviles Android. Conceptos básicos de las aplicaciones Android

Desarrollo de apps para móviles Android. Conceptos básicos de las aplicaciones Android Desarrollo de apps para móviles Android Conceptos básicos de las aplicaciones Android Modelo vista controlador (MVC) En Android se utiliza el patrón de arquitectura llamado modelo vista controlador. Este

Más detalles

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México Licencia La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México S. A de C.V., Está protegida por derechos de autor y / u otras leyes aplicables. Cualquier uso diferente a

Más detalles

CIF-GPS GUÍA DE USUARIO

CIF-GPS GUÍA DE USUARIO mensja CIF-GPS GUÍA DE USUARIO Secciones 1. VENTAJAS DE CIF-GPS 2. INSTALAR CIF-GPS 3. FUNCIONAMIENTO DE LA APLICACIÓN. 3.1 Visión general y conceptos 3.2 Entrar en CIF-GPS. 3.3 Ventana Principal. 3.4

Más detalles

Plan 95 Adecuado ASIGNATURA: DESARROLLO EN ANDROID HORAS / AÑO: 64 HS.

Plan 95 Adecuado ASIGNATURA: DESARROLLO EN ANDROID HORAS / AÑO: 64 HS. Plan 95 Adecuado ASIGNATURA: DESARROLLO EN ANDROID DEPARTAMENTO: ELECTRÓNICA ÁREA: TÉCNICAS DIGITALES CODIGO: CLASE: ELECTIVA DE ESPECIALIDAD HORAS SEM.: 4 HS. HORAS / AÑO: 64 HS. Fundamentación: En los

Más detalles

Diseño e Implementación de un kit de aplicaciones para personas con discapacidad visual utilizando la plataforma android SDK

Diseño e Implementación de un kit de aplicaciones para personas con discapacidad visual utilizando la plataforma android SDK Diseño e Implementación de un kit de aplicaciones para personas con discapacidad visual utilizando la plataforma android SDK Byron Javier Llerena Zambrano Director: Ing. Fabián Sáenz Codirector: Ing. Carlos

Más detalles

Cursos de orientación profesional

Cursos de orientación profesional Cursos de orientación profesional ACCIONES COFINANCIADAS CON FONDOS COMUNITARIOS DEL FONDO SOCIAL EUROPEO, A TRAVÉS DEL PROGRAMA OPERATIVO FONDO SOCIAL EUROPEO DE CANARIAS 20072013 CON UN PORCENTAJE DE

Más detalles

Nombre. El nombre corto del recurso. Éste será mostrado en la página principal de curso.

Nombre. El nombre corto del recurso. Éste será mostrado en la página principal de curso. 4.4. ENLAZAR UN ARCHIVO O UNA PÁGINA WEB 4.4.1. Características El contenido de un curso no sólo se limita a los creados mediante los editores de Moodle, puesto que este tipo de recursos permite enlazar

Más detalles

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Versión 3.0 02/12/2010 2 3 1 Control de versiones VERSIÓN AUTOR FECHA CAMBIO 1.0 SAIG, S.L. 22/03/2007

Más detalles

Aplicación de Gestión de Gastos para Smartphones con Sistema Operativo Android

Aplicación de Gestión de Gastos para Smartphones con Sistema Operativo Android Aplicación de Gestión de Gastos para Smartphones con Sistema Operativo Android Alberto Pérez Méndez Estudiante de Ingeniería Técnica en Informática de Gestión Alayn.albert@gmail.com Este proyecto de final

Más detalles

Aplicateca. Guía Rápida SPONTANIA de DIALCOM NETWORKS

Aplicateca. Guía Rápida SPONTANIA de DIALCOM NETWORKS Aplicateca Guía Rápida SPONTANIA de DIALCOM NETWORKS Índice 1 Qué es SPONTANIA?...2 1.1 Más detalles... 2 1.2 Qué ventajas ofrece SPONTANIA?... 3 1.3 Cuáles son las principales funcionalidades de SPONTANIA?...

Más detalles

Manual de Instrucciones

Manual de Instrucciones Manual de Instrucciones Audi connect (myaudi) Manual de Instrucciones Audi connect (myaudi) Spanisch 11.2014 152566AMH60 www.audi.com Audi Vorsprung durch Technik 2014 AUDI AG AUDI AG trabaja constantemente

Más detalles

SOBRE LA GUÍA. Atribución-NoComercial-CompartirIgual 3.0 Unported (CC BY-NC-SA 3.0)

SOBRE LA GUÍA. Atribución-NoComercial-CompartirIgual 3.0 Unported (CC BY-NC-SA 3.0) 2 Curso Android: Desarrollo de aplicaciones móviles SOBRE LA GUÍA Versión 1 / junio 2011 Nivel: Básico / Intermedio El Curso Android se encuentra en línea en: http://www.maestrosdelweb.com/editorial/curso-android

Más detalles

INTRODUCCIÓN A ANDROID

INTRODUCCIÓN A ANDROID INTRODUCCIÓN A ANDROID Por Francisco J. Recio Portillo para http://www.tostring.es Historia [0] Julio 2005 Google adquiere Android, Inc. Pequeña empresa que desarrolla software para móviles (hasta entonces

Más detalles

Ejecutar el instalador y seleccionar los paquetes necesarios. En nuestro caso son los siguientes: Android SDK Tools (ya vendrá instalado) Android SDK

Ejecutar el instalador y seleccionar los paquetes necesarios. En nuestro caso son los siguientes: Android SDK Tools (ya vendrá instalado) Android SDK Processing es un entorno y un lenguaje de programación para aprender a codificar en el contexto de las artes visuales de forma rápida y sencilla, sin preocuparnos por el hardware que estamos utilizando.

Más detalles

Grupo de Usuarios de Linux Universidad Carlos III de Madrid Jornadas de Noviembre 2010. Desarrollando Aplicaciones para Android.

Grupo de Usuarios de Linux Universidad Carlos III de Madrid Jornadas de Noviembre 2010. Desarrollando Aplicaciones para Android. Grupo de Usuarios de Linux Universidad Carlos III de Madrid Jornadas de Noviembre 2010 Desarrollando Aplicaciones para Android Tania Pérez Índice Qué es Android? Historia Características Competidores Dispositivos

Más detalles

MÓDULO: SERVICIOS E RED. Nombre: Curso: 2º SMR (9-6-2011) [Examen Final Junio]

MÓDULO: SERVICIOS E RED. Nombre: Curso: 2º SMR (9-6-2011) [Examen Final Junio] MÓDULO: SERVICIOS E RED Nombre: Curso: 2º SMR (9-6-2011) [Examen Final Junio] PARTE 1: Responde las siguientes preguntas tipo TEST. Solo hay una respuesta correcta. Dos respuestas incorrectas anulan una

Más detalles

Prólogo...3 Agradecimientos...4. Tabla de Contenidos...5. Lista de figuras...17. Apartado I: El ecosistema móvil...33

Prólogo...3 Agradecimientos...4. Tabla de Contenidos...5. Lista de figuras...17. Apartado I: El ecosistema móvil...33 Tabla de Contenidos - 5 Tabla de Contenidos Prólogo...3 Agradecimientos...4 Tabla de Contenidos...5 Lista de figuras...17 Introducción...25 La historia de Delphi...26 Delphi para plataformas móviles...29

Más detalles

3.4. Reload Editor ( Guía de Uso).

3.4. Reload Editor ( Guía de Uso). 3.4. Reload Editor ( Guía de Uso). Anterior 3. Lors Management Siguiente 3.4. Reload Editor ( Guía de Uso). 3.4.1. Preguntas básicas sobre Reload Editor. - Qué hace el programa Reload Editor? RELOAD Editor

Más detalles

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día.

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día. NOMBRE DEL EXPERIMENTO Construye y Controla tu Robot en un día. AUTOR Juan Antonio Holgado Terriza Marcelino Cabrera Cuevas Jesús Luis Muros Cobos Sandra Rodríguez Valenzuela CATEGORÍA Tecnología PALABRAS

Más detalles

Unidad II. Interfaz Grafica

Unidad II. Interfaz Grafica Clase:004 1 Unidad II Interfaz Grafica Basado en https://developer.apple.com/library/ios/#referencelibrary/gettingstar ted/roadmapios/chapters/introduction.html 2 Agenda Desarrollo de Apps para IOS. Diseño

Más detalles

Guía de Instalación de Java y jedit. Alumno Colaborador de la Asignatura

Guía de Instalación de Java y jedit. Alumno Colaborador de la Asignatura Guía de Instalación de Java y jedit Iván Félix Álvarez García Alumno Colaborador de la Asignatura 1 Índice 1. Instalación de Java 3 1.1. Instalación en Windows (Oracle).................. 3 1.1.1. Instalación

Más detalles

Luis Sosa : 06-40351 Cesar Hernández: 06-39724

Luis Sosa : 06-40351 Cesar Hernández: 06-39724 Sistemas de Operación en Dispositivos Móviles Un enfoque a Android y ios. Luis Sosa : 06-40351 Cesar Hernández: 06-39724 Historia Desarrollado inicialmente por Android Inc. Firma comprada por Google en

Más detalles

MANUAL DE ANDROID 2.2

MANUAL DE ANDROID 2.2 MANUAL DE ANDROID 2.2 (Y Android 2.3) Android 2.2 es un Sistema Operativo con muchos recursos y aplicaciones. Con este manual se pretende enseñar las nociones básicas para que el usuario pueda desenvolverse

Más detalles

Este documento se distribuye bajo los términos de la licencia Creative Commons by sa. http://creativecommons.org/licenses/by sa/2.

Este documento se distribuye bajo los términos de la licencia Creative Commons by sa. http://creativecommons.org/licenses/by sa/2. Análisis de aplicación: Visual Understanding Environment (VUE) Este documento ha sido elaborado por el Centro de excelencia de software libre de Castilla La Mancha (Ceslcam, http://ceslcam.com). Copyright

Más detalles

Lista de siglas y acrónimos... xvii. Cómo leer este libro?... xix

Lista de siglas y acrónimos... xvii. Cómo leer este libro?... xix Índice general Lista de siglas y acrónimos... xvii Cómo leer este libro?... xix CAPÍTULO 1. Visión general y entorno de desarrollo... 23 1.1. Qué hace que Android sea especial?... 24 1.2. Los orígenes...

Más detalles

Unidad I. Introducción a la programación de Dispositivos Móviles

Unidad I. Introducción a la programación de Dispositivos Móviles Clase:002 1 Unidad I Introducción a la programación de Dispositivos Móviles Tomado de : Programación Multimedia y Dispositivos Móviles 2012 Paredes Velasco, Maximiliano / Santacruz Valencia, Liliana 2

Más detalles

Taller Caldum Introducción al desarrollo Android

Taller Caldum Introducción al desarrollo Android Taller Caldum Introducción al desarrollo Android Acerca de CALDUM CALDUM es : Conocimiento abierto y libremente distribuido desde la Universidad de Murcia. Desde Caldum, colaboramos para acercar el Software

Más detalles

Breve introducción a: Por: Oscar Salguero Guandique @oscarsalguero Real Action! Software @realactionsoft

Breve introducción a: Por: Oscar Salguero Guandique @oscarsalguero Real Action! Software @realactionsoft Breve introducción a: Por: Oscar Salguero Guandique @oscarsalguero Real Action! Software @realactionsoft Qué es Android?: Algunas generalidades. Herramientas de Desarrollo: Eclipse IDE, ADT y SDK Hola

Más detalles

DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID. Ing. Marco Antonio Toscano Freire mtoscano@matoosfe.com tw: martosfre

DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID. Ing. Marco Antonio Toscano Freire mtoscano@matoosfe.com tw: martosfre DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID Ing. Marco Antonio Toscano Freire mtoscano@matoosfe.com tw: martosfre Introducción Aplicaciones Móbiles Desventajas Tanto las pantallas como teclados son demasiado

Más detalles

Anexo A Diagramas de Navegación

Anexo A Diagramas de Navegación Anexo A Diagramas de Navegación Figura D.1: Diagrama de navegación de la pantalla principal. 43 Figura D.2: Diagrama de navegación del apartado Crear Encuesta. 44 Figura D.3: Diagrama de navegación del

Más detalles

Guía de Instalación de la JDK y del Eclipse

Guía de Instalación de la JDK y del Eclipse Guía de Instalación de la JDK y del Eclipse En esta guía tenemos por objetivo llevar a cabo la instalación de nuestro entorno de programación Java. En primer lugar, vamos a instalar el kit de desarrollo

Más detalles

Manual de Enlace telefónico

Manual de Enlace telefónico Manual de Enlace telefónico Copyright 2003 Palm, Inc. Todos los derechos reservados. El logotipo de Palm y HotSync son marcas registradas de Palm, Inc. El logotipo de HotSync y Palm son marcas comerciales

Más detalles

Gestión Documental ERP

Gestión Documental ERP N. Documento Revisión Nº: 1.0 Fecha: 30/03/11 Introducción 1 Configuración de la Gestión Documental ERP 2 Funcionamiento de la Gestión Documental ERP 6 ÍNDICE Introducción El programa Ahora permite una

Más detalles

UNIVERSIDAD TÉCNICA DEL NORTE

UNIVERSIDAD TÉCNICA DEL NORTE UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES MANUAL DE INSTALACIÓN AUTOR: CHRISTIAN FELIPE REINOSO CHAMBA DIRECTOR: ING.

Más detalles

FOTO CLIC Nociones básicas sobre imagen digital

FOTO CLIC Nociones básicas sobre imagen digital FOTO CLIC Nociones básicas sobre imagen digital 1. INTRODUCCIÓN 2. CÁMARAS DIGITALES 2.1. Tipos de cámaras digitales 2.2. Partes de una cámara digital 2.3. Almacenaje de fotografías 2.4. Transferencia

Más detalles

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

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX... INDICE 1 Configuración previa...2 1.1 Configuración Internet Explorer para ActiveX...2 1.2 Problemas comunes en sistema operativo Windows...8 1.2.1 Usuarios con sistema operativo Windows XP con el Service

Más detalles

Introducción a las presentaciones

Introducción a las presentaciones LibreOffice CALC Presentaciones 1 Índice de contenido Licencia y condiciones de uso...3 Introducción...4 Conociendo Impress...5 Iniciando Impress...5 Pantalla inicial de Impress...6 Activando el asistente...10

Más detalles

Unidad 3: El sistema operativo. Trabajo con conexión.

Unidad 3: El sistema operativo. Trabajo con conexión. Unidad 3: El sistema operativo. Trabajo con conexión. 1.- Red de ordenadores Vamos a describir que es una red informática o red de ordenadores. Una red informática es un sistema de interconexión entre

Más detalles

www.apliqr.com Manual de Usuario - v0.1 Manual de usuario v0.1

www.apliqr.com Manual de Usuario - v0.1 Manual de usuario v0.1 Manual de usuario v0.1 1 Índice de contenidos 1.Iniciar sesión...3 2.Crear una cuenta de usuario...4 3.Elegir un plan de servicio...5 4.Pasar a un plan de pago...7 5.Ver el plan contratado...8 6.Códigos

Más detalles

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011 Hands-On Lab Windows Azure: Java, Eclipse y Azure Última Actualización: 16/12/2011 1 Contenido INTRODUCCIÓN... 3 Objetivos 3 Prerequisitos 4 PREPARANDO EL ENTORNO... 5 Instalar Windows Azure Toolkit para

Más detalles

Curso de Android con Java

Curso de Android con Java Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 Una aplicación Android consiste en una serie de componentes poco acoplados y perfectamente estructurados, los cuales

Más detalles

Lista de acrónimos... 15

Lista de acrónimos... 15 Índice general Lista de acrónimos... 15 CAPÍTULO 1. Visión general y entorno de desarrollo... 17 1.1. Qué hace Android especial?... 18 1.2. Los orígenes... 19 1.3. Comparativa con otras plataformas...

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

ÍNDICE 1. INTRODUCCIÓN... 4 1.1 MODOS DE ACCESO AL SISTEMA... 4 1.2 PERFILES DE USUARIO... 4 2. APLICACIÓN CLIENTE... 5

ÍNDICE 1. INTRODUCCIÓN... 4 1.1 MODOS DE ACCESO AL SISTEMA... 4 1.2 PERFILES DE USUARIO... 4 2. APLICACIÓN CLIENTE... 5 MANUAL DE USUARIO ÍNDICE 1. INTRODUCCIÓN... 4 1.1 MODOS DE ACCESO AL SISTEMA... 4 1.2 PERFILES DE USUARIO... 4 2. APLICACIÓN CLIENTE... 5 2.1 REQUISITOS MÍNIMOS DE USO DEL SERVICIO... 5 2.1.1 REQUISITOS

Más detalles

Configuración de PDAs en ITACTIL.

Configuración de PDAs en ITACTIL. Configuración de PDAs en ITACTIL. La aplicación ITACTIL puede trabajar con terminales de mano (PDAs, tablets o teléfonos Android, Iphone, Ipad, etc.) en sus versiones Profesional y Líder. El funcionamiento

Más detalles

Introducción al desarrollo para plataformas móviles con Phonegap

Introducción al desarrollo para plataformas móviles con Phonegap Introducción al desarrollo para plataformas móviles con Phonegap Si queremos desarrollar aplicaciones para móviles, qué herramienta conviene utilizar y para qué plataforma móvil? Las aplicaciones Android

Más detalles

Instalación de Tomcat7 en Ubuntu

Instalación de Tomcat7 en Ubuntu 2. Instala el servidor web java TomCat en Windows y Linux. Documenta los módulos/servicios necesarios. Instala el CMS Java Liferay. Documenta el proceso. Instalación de Tomcat7 en Ubuntu Comenzamos instalando

Más detalles

Instalación De ANDROID STUDIO

Instalación De ANDROID STUDIO Área y Sub-área: Informatica/Computacion Educador: _Luis Orozco Ciclo Escolar: 2015 Grado: 5to Secciones: A,B,C y D Instalación De ANDROID STUDIO Paso 1. Descarga e instalación de Java. Si aún no tienes

Más detalles

Acercándose a Flash. Capítulo. 1.1 Por qué Flash?

Acercándose a Flash. Capítulo. 1.1 Por qué Flash? Capítulo 1 Acercándose a Flash 1.1 Por qué Flash? F lash se ha convertido en un clásico para el diseño de páginas web y de presentaciones multimedia interactivas. Las características más destacadas de

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 18 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 5 Situación RD 1201/2007 Actualización

Más detalles

Instalación de Oracle 9i

Instalación de Oracle 9i Instalación de Oracle 9i versión para Windows Esta obra está bajo una licencia de Creative Commons. Autor: Jorge Sánchez Asenjo (año 2004) http://www.jorgesanchez.net email:info@jorgesanchez.net Esta obra

Más detalles

TUTORIAL PARA CREAR LA WEB DEL DEPARTAMENTO

TUTORIAL PARA CREAR LA WEB DEL DEPARTAMENTO TUTORIAL PARA CREAR LA WEB DEL DEPARTAMENTO Este tutorial muestra los pasos a seguir para que un departamento organice su espacio web en la intranet (red interna) del Instituto. Se trata de que al acceder

Más detalles

Curso Avanzado de Programación en Dispositivos Móviles con Android

Curso Avanzado de Programación en Dispositivos Móviles con Android 2013 Curso Avanzado de Programación en Dispositivos Móviles con Android Pablo Formoso Ayudas del programa de consolidación y estructuración de unidades de investigación competitivas: Agrupación Estratégica

Más detalles

Android Professional

Android Professional Android Professional Información del examen: Certificación Asociada: Android Professional Duración: 150 minutes. Número de preguntas: 70. Porcentaje para aprobar: 70%. Formato: opción Múltiple. Lenguaje:

Más detalles

Universidad de Almería Máster en Administración, Comunicaciones y Seguridad Informática. Aplicación Tablet para gestión de red de sensores

Universidad de Almería Máster en Administración, Comunicaciones y Seguridad Informática. Aplicación Tablet para gestión de red de sensores Universidad de Almería Máster en Administración, Comunicaciones y Seguridad Informática Aplicación Tablet para gestión de red de sensores Autores: Felipe Martínez Carreño Felipe Martínez Carreño Ingeniero

Más detalles

Creación de redes AirPort 2

Creación de redes AirPort 2 apple Creación de redes AirPort 2 Contenido 1 Introducción 5 Acerca de AirPort 5 Cómo funciona AirPort 6 Cómo se proporciona acceso inalámbrico a Internet 6 Configuración del acceso a Internet de la estación

Más detalles