Vous êtes sur la page 1sur 13

Captulo 1.

La anatoma de una aplicacin Android

1. La anatoma de una aplicacin Android


Mientras que la mayor parte de este libro se centrar en aprender a desarrollar
aplicaciones para Android usando C# y Xamarin.Android, nosotros comenzaremos con una
discusin ms general de Android. Qu es Android? Cmo Android facilita la tarea de
crear grandes aplicaciones mviles? La anatoma de una aplicacin Android ayudar a
responder estas preguntas proporcionando un nivel base de comprensin de los siguientes
temas.

La plataforma Android.
Aplicaciones Android (construyendo bloques).

La plataforma Android.
La plataforma Android ha sido una de las plataformas ms exitosas desarrolladas en
los ltimos aos y ofrece a los desarrolladores muchos servicios y funciones requeridas para
crear valiosas aplicaciones mviles. El siguiente diagrama proporciona una vista de alto nivel
de como la plataforma Android est organizada, y las secciones posteriores ofrecen una
breve descripcin de cada componente principal:

1
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

Linux
Android es un sistema operativo basado en Linux diseado principalmente para
dispositivos mviles tales como Smartphones y Tablets. Las ltimas versiones de Android
estn basadas en la versin 3.x del kernel de Linux (versin 2.6 para versiones anteriores de
Android 4.0).

Libreras nativas
Android es liberado con un conjunto de libreras nativas escritas en C/C++, que
ofrecen varios tipos de servicios. Esas libreras vienen mayormente de la comunidad de
cdigo abierto.

Tiempo de ejecucin Android


Las aplicaciones Android corren dentro de la Mquina Virtual Dalvik (Dalvik VM),
que es similar a Java VM (mquina virtual de Java) pero ha sido optimizada para dispositivos
con memoria y capacidad de procesamiento limitados.
Las aplicaciones Android son inicialmente compiladas por el bytecode Java usando el
compilador de Java, pero tienen un paso adicional de compilacin que transforma el
bytecode Java a bytecode Dalvik, adecundolo para correr en dentro de Dalvik VM.

Dalvik es liberado con las bibliotecas del ncleo Android. Esas libreras no estn alineadas
con una plataforma especfica de Java (JSE, JEE o JME) pero ms bien actan como una
plataforma hibrida ms directamente alineada con JME, menos la interfaz del usuario
centrada en los componentes AWT y Swing. El Android Application Framework (AAF)
proporciona medios alternativos de creacin de interfaces de usuario.

Application Framework
Application Framework es la parte de la plataforma Android, ms familiar para los
desarrolladores. Este es liberado como un conjunto de libreras Java y te permite construir
interfaces de usuario, interactuar con las capacidades del dispositivo tales como la cmara
o los servicios de ubicacin, cargar y trabajar con varios tipos de recursos de la aplicacin,
y realizar muchas ms tareas tiles.

2
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

Aplicaciones
En la parte superior de la pila se encuentra la aplicacin humilde, el componente
que en realidad libera valor al usuario. Android viene con un conjunto de aplicaciones que
ofrecen funcionalidades bsicas tales como administracin de contactos, uso del telfono,
comprobacin del correo electrnico, y navegacin de la web. La clave del xito de Android
es la gran cantidad de aplicaciones de terceros que pueden ser instaladas, las cuales
permiten a los usuarios hacer cosas tales como transmisin en vivo de eventos deportivos,
editar una pelcula capturada con el telfono, interactuar con amigos a travs de su sitio
favorito de medios sociales, y mucho ms.

Los paquetes Android (.apk)


Las aplicaciones son liberadas para su instalacin en un formato de paquete Android.
Un paquete Android es creado como el resultado de compilar una aplicacin Android y un
archivo de almacenamiento con una extensin .apk. Un paquete Android contiene todo el
cdigo y los archivos de soporte requeridos para correr una sola aplicacin incluyendo los
siguientes:

Ejecutables Dalvik (*. archivos dex).


Recursos.
Libreras nativas.
El manifiesto de la aplicacin.

Los paquetes Android pueden ser instalados directamente va correo electrnico, URLs o
tarjetas de memoria. Tambin pueden ser instalados indirectamente a travs de tiendas de
aplicaciones tales como Google Play.

El manifiesto de la aplicacin
Todas las aplicaciones Android tienen un archivo manifiesto (AndroidManifest.xml)
que le dice a la plataforma Android todas las cosas que necesita saber para ejecutar
correctamente la aplicacin, incluyendo lo siguiente:

Nivel API mnimo requerido por la aplicacin.


Caractersticas de Software/Hardware usadas o requeridas por la aplicacin.
Permisos requeridos por la aplicacin.
La pantalla inicial (Android activity) para empezar cuando la aplicacin es puesta en
marcha.
Libreras, aparte de AFF requeridas por la aplicacin.
Etctera.
3

Desarrollo de aplicaciones mviles para Android con Xamarin


Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

Versiones de Android
Identificar la versin de la plataforma Android puede ser algo confuso, hay un
nmero de versin, nivel de API, y sobre nombre, y estos son usados algunas veces
indistintamente.
El nmero de versin representa una liberacin de la plataforma. Algunas veces, una nueva
liberacin es creada para entregar nuevas capacidades, mientras que algunas veces son
creadas para arreglar bugs.
El nivel API representa un conjunto de capacidades. A medida que aumenta el nivel API,
nuevas capacidades son entregadas para el desarrollador.
La siguiente tabla lista las versiones de la plataforma en orden cronolgico inverso:

Las aplicaciones Android


Ahora, vamos a pasar algn tiempo discutiendo las aplicaciones Android esas cosas
que escribimos para proporcionar valor al usuario. Las aplicaciones Android se componen
de varios tipos de clases y recursos. Las siguientes secciones describen los diferentes tipos
de clases o bloques de construccin por los cuales una aplicacin puede ser compuesta.
4
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

Actividades
Una de las partes ms fundamentales de una aplicacin Android es una actividad
(activity). Una actividad proporciona una sola funcin que un usuario puede realizar con
una aplicacin tal como una lista de contactos, ingresar a nuevo contacto, y ver ubicaciones
en un mapa. Una sola aplicacin es conformada con muchas actividades.
Un usuario interacta con una actividad a travs de una o ms vistas, que son descritas
despus en este captulo. Si est familiarizado con el patrn modelo-vista-controlador, se
dar cuenta que las actividades cumplen el papel de controlador.

El ciclo de vida de una actividad


Las actividades tienen un bien definido ciclo de vida que puede ser descrito en
trminos de estados, transiciones y eventos. El siguiente diagrama proporciona una vista
grafica del ciclo de vida de una actividad:

Estados de una actividad


Los estados representados en el diagrama anterior se derivan, esto significa que no
hay una variable Estado en una actividad que identifica explcitamente uno de esos
estados, pero el estado es implcito y til para la discusin. La siguiente tabla describe el
comportamiento de una actividad basada en su estado:
Estado

Descripcin

Running

La actividad ha sido creada e inicializada, y esta visible y disponible


para la interaccin del usuario.
5

Desarrollo de aplicaciones mviles para Android con Xamarin


Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

Paused
Stopped

La vista de la actividad est siendo parcialmente bloqueada por otra


actividad.
La actividad ya no es visible para el usuario. La actividad no ha sido
destruida, y el estado se mantiene en el fondo y no se permite el
procesamiento.

Eventos de una actividad


Durante la transicin entre estados, una serie de eventos son llamados en la
actividad. Esos eventos proporcionan a los desarrolladores una plataforma para varios tipos
de procesamiento.
Evento
onCreate

onStart

onResume

onPause

onStop
onRestart

onDestroy

Llamado
Cuando una actividad es creada,
generalmente de una eleccin del
usuario para iniciar la aplicacin.
Despus de onCreate u onRestart, y
justo antes que una actividad se
convierte en visible para el usuario.
Antes que una actividad se encuentre
lista para iniciar la interaccin con el
usuario.

Procesamiento tpico
Crear vistas.
Inicializar variables.
Asignar recursos de vida larga.
Asignar recursos.

Cuando una vista de actividad se ha


convertido
en
parcialmente
bloqueada y no es el foco de entrada.

Cuando una vista de actividad ya no


es visible para el usuario.
Una actividad se coloca de nuevo en
primer plano, generalmente porque
el usuario ha seleccionado el botn
de retroceso.
Antes la actividad es destruida.

Inicializar los widgets para la


visualizacin.
Inicializar animaciones o videos.
Empezar a escuchar para las
actualizaciones de GPS.
Comprometer actualizaciones no
guardadas.
Pausar animaciones o videos.
Dejar de escuchar actualizaciones
de GPS.
Liberar recursos.

Asignar recursos.

Limpia los recursos que pueden


haber sido asignado en onCreate.

Algunas cosas que no son obvias para los desarrolladores nuevos en Android es la forma de
ofertas del Framework con los cambios de orientacin del dispositivo. Por defecto, cuando
la orientacin de un dispositivo es cambiada de vertical a horizontal, Android destruye y
recrea actividades existentes para ayudar a garantizar que se utiliza la disposicin ms
adecuada. A menos que se planee para este comportamiento, esto puede ser perjudicial
6
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

para el procesamiento. Si es necesario es comportamiento puede ser anulado y las


actividades pueden ser retenidas. Vamos a discutir las consideraciones especiales en tratar
con estados y otras preocupaciones relacionadas al procesamiento para este tpico en el
captulo 7, haciendo ubicacin consciente POIApp.

Servicios
Los servicios son componentes que se ejecutan en segundo plano para realizar
operaciones de ejecuciones largas sin interfaz de usuario directa. Los servicios pueden
cargar datos en memoria cache, reproducir msica, o realizar algunos otros tipos de
procesamiento, mientras un usuario interacta con otras actividades ininterrumpidamente.

Proveedores de contenido
Los proveedores de contenido gestionan acceso a un repositorio central de datos
como los contactos. Un proveedor de contenido es una parte de una aplicacin, el cual
proporciona una interfaz de usuario para gestionar esos datos. Una interfaz estndar es
tambin proporcionada, mientras permite a otras aplicaciones acceder a esos repositorios.

Receptores Broadcast
Los receptores de broadcast son componentes que realizan algn tipo de
procesamiento en respuesta al broadcast del todo el sistema. El broadcast es generalmente
iniciado por el sistema para eventos tales como batera baja, tomar una fotografa, o
encender el Bluetooth. Las aplicaciones pueden tambin elegir emitir broadcast; un
proveedor de contenido puede enviar un broadcast con datos, como un contacto que ha
sido actualizado. Mientras los broadcast no tienen una interfaz de usuario, pueden
indirectamente causar una actualizacin en un estado.

Views y ViewGroups
Todo lo que ves en una aplicacin Android es una vista; botones, etiquetas, cajas de
texto, y radio botones todos son ejemplos de vistas. Las vistas son organizadas en una
jerarqua usando varios tipos de ViewGroups. Un ViewGroup es un tipo especial de vista
que es usado para disear (layout) otras vistas en la pantalla.

Declarativa vs. Creacin vista programtica


Las Views y ViewGroups pueden ser creados utilizando dos mtodos diferentes,
programticamente o declarativamente. Cuando se usa un enfoque programtico, un
desarrollador hace llamadas a la API para crear y posicionar cada vista individual en la UI
(interfaz de usuario). Cuando se usa un enfoque declarativo, un desarrollador crea archivos
7
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

de diseo XML que especifica cmo deben disponerse las vistas. El mtodo declarativo
disfruta de varias ventajas establecidas de la siguiente manera:

Proporciona una mejor separacin del diseo visual de la aplicacin a la lgica de


procesamiento.
Permite que muchos diseos sean creados para soportar mltiples dispositivos o
configuraciones de dispositivo con un solo cdigo base.
Herramientas de desarrollo, tal como Android Studio y el complemento Android
para Eclipse, te permiten ver la interfaz de usuario tal como la construyes, sin
necesidad de compilar y ejecutar tu aplicacin despus de cada cambio.

Mientras prefiero el mtodo declarativo para la mayora de las cosas, he encontrado que,
en la prctica, a menudo se requiere de una combinacin de los mtodos programticos y
declarativos.

Widgets de interfaz de usuario


Android proporciona un comprensivo conjunto de widgets de interfaz de usuario,
que pueden ser utilizadas para construir una experiencia de usuario rica. Todas estos
widgets son subtipos de vistas y pueden ser organizados dentro de sofisticados diseos
usando varios tipos de ViewGroups. Todos los widgets de interfaz de usuario pueden ser
encontrados en el paquete android.widget dentro del Application Framework.

Diseos comunes
El Application Framework tiene un nmero de clases de ViewGroup, cada uno
proporciona una nica y til manera de organizar el contenido.

8
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

El anterior diagrama representa algunos de los diseos ms comunes, cada uno de los
cuales puede ser utilizado para necesidades especficas.
Diseo

Descripcin

Escenario

Linear Layout

Organiza a sus hijos en una Se usa cuando una posicin de


nica fila horizontal o vertical y widget tiene flujo horizontalmente
crea
una
barra
de o verticalmente.
desplazamiento cuando es
necesario.

Relative layout

Organiza
los
objetos Se utiliza cuando las posiciones del
secundarios con respecto a widget pueden describirse mejor
otro o al padre.
con relacin a otro widget (a la
izquierda de) o al rea de
cobertura de los padres (lado
derecho, centrado).

Table layout

Organiza a sus hijos dentro de Se utiliza cuando las posiciones de


renglones y columnas.
widget encajaran naturalmente
en renglones y columnas. Es mejor
cuando mltiples columnas de
entrada
y
etiquetas
son
necesarias.

Para escenarios complejos de diseo, Android permite diseos anidados. Los diseos
profundamente anidados pueden afectar el rendimiento y se deben evitar si es posible.

Diseos Adapter
Para diseos que son manejados por una fuente de datos dinmicos, el Application
Framework tiene un conjunto de clases derivadas de AdapterView.

9
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

El diagrama anterior representa dos de los ms comunes diseos Adapter.

List View: Organiza el contenido de la fuente de datos dentro de una sola lista
columna de desplazamiento.
Grid View: Organiza el contenido de la fuente de datos dentro de un grid de
columnas y renglones.

Archivos de diseo XML


Para crear una UI usando un mtodo declarativo, Android proporciona un
vocabulario XML con etiquetas que definen varios tipos de elementos que pueden
componer una vista. El concepto detrs de un archivo de diseo XML es muy similar a la
forma de etiquetas HTML que se usan para definir pginas web o etiquetas XAML de
Microsoft usadas para definir interfaces de usuario WPF (Windows Presentation
Foundation). El siguiente ejemplo muestra una simple vista usando un Linear layout y
contiene un campo de entrada de bsqueda y un botn de bsqueda.

Nombres de elementos y atributos


Se ha tomado cuidado para alinear los nombres de elementos y atributos en el
vocabulario XML con nombres de clases y mtodos del Application Framework. En el
ejemplo anterior, los nombres de los elementos LinearLayout, TextView y Button
corresponden a nombres de clases del Application Framework. Del mismo modo, el
10
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

elemento Button, el atributo android:text corresponden a el setText()setter en la clase


Button.

IDs
Cada vista puede tener un ID entero nico asociado con l y puede ser usado para
referenciar la vista dentro de un cdigo de la aplicacin. En el archivo XML, el ID es
especificado como un nombre de texto amigable. Por ejemplo, considera la siguiente lnea
de cdigo:

En este ejemplo, el operador @ indica al analizador que debe tratar al resto de la cadena
como como un recurso de identificacin ID; el smbolo + indica al analizador que se trata de
un nuevo recurso de nombre que se debe agregar al archivo de recurso R.Java. El archivo
de recurso define constantes enteras que pueden ser usadas como recursos de referencia.

Usando diseos XML de actividades


Los diseos XML pueden ser cargados fcilmente por una aplicacin en tiempo de
ejecucin. Esta tarea se realiza generalmente dentro del mtodo onCreate() de una
actividad usando el mtodo setContentView(). Por ejemplo, considera la siguiente lnea de
cdigo:

Intentos
Los intentos son mensajes que pueden ser enviados por varios tipos de
componentes en una aplicacin Android en orden como respuesta de algn tipo de accin
que es realizada. Los intentos se pueden utilizar para llevar a cabo cualquiera de las
siguientes:

Iniciar una actividad con la opcin de recibir un resultado.


Iniciar o detener un servicio.
Notificar el componente de condiciones como la batera baja o cambio de zona
horaria.
Solicitar una accin desde otra aplicacin, tal como la solicitud de la aplicacin mapa
para mostrar una ubicacin o solicitar que la aplicacin de la cmara tome una
fotografa y la guarde.
11

Desarrollo de aplicaciones mviles para Android con Xamarin


Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

Recursos
La creacin de una aplicacin Android involucra ms que simplemente escribir
cdigo. Una gran aplicacin mvil requiere cosas como imgenes, sonidos, animaciones,
mens y estilos, solo por nombrar algunas. El Framework Application proporciona APIs que
pueden ser usadas para cargar y utilizar los varios tipos de recursos en tus aplicaciones
Android.
Descargando el cdigo de ejemplo
Puedes descargar los archivos de cdigo de los ejemplos para todos los libros Packt
que has adquirido desde tu cuenta en http://packtpub.com. Si adquiriste este libro en otras
partes, puedes visitar http://packtpub.com/support y registrarte para obtener los archivos
enviados directamente a usted por correo electrnico.

El archivo R.Java
Los recursos son generalmente referenciados desde dentro de una aplicacin
usando una constante entera que es asignada automticamente cuando el recurso es
agregado al proyecto y compilado. Estas constantes se colocan en un archivo fuente de Java
llamado R.Java. El siguiente ejemplo muestra la clase R.Java de una aplicacin simple:

12
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Captulo 1. La anatoma de una aplicacin Android

Resumen
En este captulo, hemos tratado de ofrecer una concisa y adecuada demostracin de
la plataforma Android y de los bloques de construccin de la aplicacin. En el siguiente
captulo, vamos a centrar nuestra atencin en Xamarin.Android y las facilidades que ofrece
para permitir el desarrollo Android con .Net y C#.

13
Desarrollo de aplicaciones mviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodrguez

Vous aimerez peut-être aussi