Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


android, Apuntes de Informática

Asignatura: programación I, Profesor: , Carrera: Ingeniería en Informática, Universidad: UVIGO

Tipo: Apuntes

2015/2016

Subido el 24/11/2016

mellen-2
mellen-2 🇪🇸

5

(9)

31 documentos

1 / 222

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
SALVADOR GÓMEZ OLIVER
WWW.SGOLIVER.NET
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga android y más Apuntes en PDF de Informática solo en Docsity!

SALVADOR GÓMEZ OLIVER

WWW.SGOLIVER.NET

Versión 2.0 // Noviembre 2011

Este documento y todo el código fuente suministrado, al igual que todos los contenidos

publicados en el blog sgoliver.net , se publica bajo licencia Creative Commons

“Reconocimiento – NoComercial - SinObraDerivada” 3.0 España (CC BY-NC-ND 3.0). Siga el

enlace anterior para obtener información detallada sobre los términos de la licencia indicada.

Tratamiento de XML con DOM ............................................................................. 114 Tratamiento de XML con XmlPull ......................................................................... 119 ................................................................................................................ 122 Primeros pasos con SQLite ................................................................................... 123 Insertar/Actualizar/Eliminar .................................................................................. 128 Consultar/Recuperar registros .............................................................................. 130 .................................................................................................................... 133 Preferencias Compartidas .................................................................................... 134 Pantallas de Preferencias ..................................................................................... 136 ................................................................................................... 144 Localización Geográfica Básica ............................................................................. 145 Profundizando en la Localización Geográfica ........................................................ 151

............................................................................................................................. 158

Preparativos y ejemplo básico .............................................................................. 159 Control MapView ................................................................................................. 166 Overlays (Capas) ................................................................................................... ........................................................................................................................... Ficheros en Memoria Interna ................................................................................ 178 Ficheros en Memoria Externa (Tarjeta SD) ............................................................ 181 ............................................................................................................ 186 Construcción de Content Providers ....................................................................... 187 Utilización de Content Providers ........................................................................... 196 ................................................................................................................. 202 Notificaciones Toast ............................................................................................ 203 Notificaciones de la Barra de Estado ..................................................................... 207 Cuadros de Diálogo .............................................................................................. 211 .............................................................................................. 218 Logging en Android ............................................................................................. 219

PRÓLOGO

Hay proyectos que se comienzan sin saber muy bien el rumbo exacto que se tomará, ni el destino que se pretende alcanzar. Proyectos cuyo único impulso es el día a día, sin planes, sin reglas, tan solo con el entusiasmo de seguir adelante, a veces con ganas, a veces sin fuerzas, pero siempre con la intuición de que va a salir bien.

El papel bajo estas líneas es uno de esos proyectos. Nació casi de la casualidad allá por 2010. Hoy estamos viendo como acaba el 2011 y sigue más vivo que nunca.

A pesar de llevar metido en el desarrollo para Android casi desde sus inicios, en mi blog [sgoliver.net] nunca había tratado estos temas, pretendía mantenerme fiel a su temática original: el desarrollo bajo las plataformas Java y .NET. Surgieron en algún momento algunos escarceos con otros lenguajes, pero siempre con un ojo puesto en los dos primeros.

Mi formación en Android fue en inglés. No había alternativa, era el único idioma en el que, por aquel entonces, existía buena documentación sobre la plataforma. Desde el primer concepto hasta el último tuve que aprenderlo en el idioma de Shakespeare. A día de hoy esto no ha cambiado mucho, la buena documentación sobre Android, la buena de verdad, sigue y seguirá aún durante algún tiempo estando en inglés, pero afortunadamente son ya muchas las personas de habla hispana las que se están ocupando de ir equilibrando poco a poco esta balanza de idiomas.

Y con ese afán de aportar un pequeño granito de arena a la comunidad hispanohablante es como acabé decidiendo dar un giro, quien sabe si temporal o permanente, a mi blog y comenzar a escribir sobre desarrollo para la plataforma Android. No sabía hasta dónde iba a llegar, no sabía la aceptación que tendría, pero lo que sí sabía es que me apetecía ayudar un poco a los que como yo les costaba encontrar información básica sobre Android disponible en su idioma.

Hoy, gracias a todo vuestro apoyo, vuestra colaboración, vuestras propuestas, y vuestras críticas (de todo se aprende) éste es un proyecto con más de un año ya de vida. Más de 250 páginas, más de 40 artículos, y sobre todo cientos de comentarios de ánimo recibidos.

Y este documento no es un final, es sólo un punto y seguido. Este libro es tan solo la mejor forma que he encontrado de mirar atrás, ordenar ideas, y pensar en el siguiente camino a tomar, que espero sea largo. Espero que muchos de vosotros me acompañéis en parte de ese camino igual que lo habéis hecho en el recorrido hasta ahora.

Muchas gracias, y que comience el espectáculo.

I. Conceptos Básicos

Entorno de desarrollo Android

En este apartado vamos a describir los pasos básicos para disponer en nuestro PC del entorno y las herramientas necesarias para comenzar a programar aplicaciones para la plataforma Android.

No voy a ser exhaustivo, ya existen muy buenos tutoriales sobre la instalación de Eclipse y Android, incluida la documentación oficial de la plataforma. Además, si has llegado hasta aquí quiero suponer que tienes unos conocimientos básicos de Eclipse y Java, por lo que tan sólo enumeraré los pasos necesarios de instalación y configuración, y proporcionaré los enlaces a las distintas herramientas. Vamos allá.

Paso 1. Descarga e instalación de Eclipse.

Si aún no tienes instalado Eclipse, puedes descargar la última versión (3.7 en el momento de escribir estas líneas) desde este enlace. Recomiendo descargar por ejemplo la versión “ Eclipse IDE for Java Developers ”. La instalación consiste simplemente en descomprimir el ZIP en la ubicación deseada.

Paso 2. Descargar el SDK de Android.

El SDK de la plataforma Android se puede descargar desde este enlace (la última versión disponible en el momento de escribir este tema es la r15). Una vez descargado, de nuevo bastará con descomprimir el zip en cualquier ubicación.

Paso 3. Descargar el plugin Android para Eclipse.

Google pone a disposición de los desarrolladores un plugin para Eclipse llamado Android Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma. Podéis descargarlo mediante las opciones de actualización de Eclipse, accediendo al menú “ Help / Install new software… ” e indicando la URL de descarga:

https://dl-ssl.google.com/android/eclipse/

Se debe seleccionar e instalar el paquete completo Developer Tools , formado por Android DDMS y Android Development Tools.

Paso 4. Configurar el plugin ADT.

En la ventana de configuración de Eclipse, se debe acceder a la sección de Android e indicar la ruta en la que se ha instalado el SDK (paso 2).

Paso 6. Configurar un AVD.

A la hora de probar y depurar aplicaciones Android no tendremos que hacerlo necesariamente sobre un dispositivo físico, sino que podremos configurar un emulador o dispositivo virtual ( Android Virtual Device , o AVD) donde poder realizar fácilmente estas tareas. Para ello, volveremos a acceder al AVD Manager, y en la sección Virtual Devices podremos añadir tantos AVD como se necesiten (por ejemplo, configurados para distintas versiones de Android). Para configurar el AVD tan sólo tendremos que indicar un nombre descriptivo, el target de Android que utilizará, y las características de hardware del dispositivo virtual, como por ejemplo su resolución de pantalla, el tamaño de la tarjeta SD, o la disponibilidad de GPS.

Y con este paso ya estamos preparados para crear nuestro primer proyecto para Android.

Paso 7. ¡Hola Mundo! en Android.

Creamos un nuevo proyecto de tipo Android Project. Indicamos su nombre, el target deseado, el nombre de la aplicación, el paquete java por defecto para nuestras clases y el nombre de la clase ( activity ) principal.

Esta acción creará toda la estructura de carpetas necesaria para compilar un proyecto para Android. Hablaremos de ella más adelante.

Para ejecutar el proyecto tal cual podremos hacerlo como cualquier otro proyecto java configurando una nueva entrada de tipo Android Applications en la ventana de Run Configurations. Al ejecutar el proyecto, se abrirá un nuevo emulador Android y se cargará automáticamente nuestra aplicación.

Carpeta /src/

Contiene todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico de la pantalla (Activity) principal de la aplicación, siempre bajo la estructura del paquete java definido.

Carpeta /res/

Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán distribuir entre las siguientes carpetas:

Carpeta Descripción

/res/drawable/ (^) Contienen las imágenes de la aplicación. Para utilizar diferentes recursos dependiendo de la resolución del dispositivo se suele dividir en varias subcarpetas:  /drawable-ldpi  /drawable-mdpi  /drawable-hdpi

/res/layout/ (^) Contienen los ficheros de definición de las diferentes pantallas de la interfaz gráfica. Para definir distintos layouts dependiendo de la orientación del dispositivo se puede dividir en dos subcarpetas:  /layout  /layout-land

/res/anim/ (^) Contiene la definición de las animaciones utilizadas por la aplicación.

/res/menu/ (^) Contiene la definición de los menús de la aplicación.

/res/values/ (^) Contiene otros recursos de la aplicación como por ejemplo cadenas de texto ( strings.xml ), estilos ( styles.xml ), colores ( colors.xml ), etc.

/res/xml/ (^) Contiene los ficheros XML utilizados por la aplicación.

/res/raw/ (^) Contiene recursos adicionales, normalmente en formato distinto a XML, que no se incluyan en el resto de carpetas de recursos.

Como ejemplo, para un proyecto nuevo Android, se crean los siguientes recursos para la aplicación:

Carpeta /gen/

Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente en java dirigidos al control de los recursos de la aplicación.

El más importante es el que se puede observar en la imagen, el fichero R.java, y la clase R.

Esta clase R contendrá en todo momento una serie de constantes con los ID de todos los recursos de la aplicación incluidos en la carpeta /res/, de forma que podamos acceder fácilmente a estos recursos desde nuestro código a través de este dato. Así, por ejemplo, la constante R.drawable.icon contendrá el ID de la imagen “ icon.png ” contenida en la carpeta /res/drawable/. Veamos como ejemplo la clase R creada por defecto para un proyecto nuevo:

package net.sgoliver; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; }

View

Los objetos view son los componentes básicos con los que se construye la interfaz gráfica de la aplicación, análogo por ejemplo a los controles de Java o .NET. De inicio, Android pone a nuestra disposición una gran cantidad de controles básicos, como cuadros de texto, botones, listas desplegables o imágenes, aunque también existe la posibilidad de extender la funcionalidad de estos controles básicos o crear nuestros propios controles personalizados.

Service

Los servicios son componentes sin interfaz gráfica que se ejecutan en segundo plano. En concepto, son exactamente iguales 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 (p.ej. activities) si se necesita en algún momento la interacción con del usuario.

Content Provider

Un content provider es el mecanismo que se ha definido en Android para compartir datos entre aplicaciones. Mediante estos componentes es posible compartir determinados datos de nuestra aplicación sin mostrar detalles sobre su almacenamiento interno, su estructura, o su implementación. De la misma forma, nuestra aplicación podrá acceder a los datos de otra a través de los content provider que se hayan definido.

Broadcast Receiver

Un broadcast receiver 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).

Widget

Los widgets son elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal ( home screen ) del dispositivo Android y recibir actualizaciones periódicas. Permiten mostrar información de la aplicación al usuario directamente sobre la pantalla principal.

Intent

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.

En el siguiente apartado empezaremos ya a ver algo de código, analizando al detalle una aplicación sencilla.

Desarrollando una aplicación Android sencilla

Después de instalar nuestro entorno de desarrollo para Android y comentar la estructura básica de un proyecto y los diferentes componentes software que podemos utilizar ya es hora de empezar a escribir algo de código. Y como siempre lo mejor es empezar por escribir una aplicación sencilla.

En un principio me planteé analizar en este post el clásico Hola Mundo pero más tarde me pareció que se iban a quedar algunas cosas básicas en el tintero. Así que he versionado a mi manera el Hola Mundo transformándolo en algo así como un Hola Usuario , que es igual de sencilla pero añade un par de cosas interesantes de contar. La aplicación constará de dos pantallas, por un lado la pantalla principal que solicitará un nombre al usuario y una segunda pantalla en la que se mostrará un mensaje personalizado para el usuario. Sencillo, inútil, pero aprenderemos muchos conceptos básicos, que para empezar no está mal.

En primer lugar vamos a crear un nuevo proyecto Android tal como vimos al final del primer post de la serie. Llamaremos al proyecto “ HolaUsuario ”, indicaremos como target por ejemplo “Android 1.6″, daremos un nombre a la aplicación e indicaremos que se cree una actividad llamada HolaUsuario.

Vamos a modificar en primer lugar el aspecto de la ventana principal de la aplicación añadiendo los controles ( views ) que vemos en la primera captura de pantalla. Para ello, vamos a sustituir el contenido del fichero main.xml por el siguiente: