Componentes de una Aplicación Android

Después de configurar todo el entorno como se vio en la entrada anterior, estamos aquí de nuevo para comenzar con el desarrollo de nuestra primera aplicación, pero antes de empezar con ello debemos conocer los conceptos iniciales, básicos, del desarrollo en Android.

Por ello, en esta entrada veremos los componentes que podemos utilizar en cualquier aplicación, centrándonos concretamente en las Activities; además veremos un fichero muy importante en cualquier aplicación: el fichero “AndroidManifest.xml”.

Componentes de la aplicación

Cualquier aplicación dispone de los siguientes componentes para su construcción (los cuales veremos más profundamente cuando los necesitemos en próximas entradas):

  • Activities

Éste componente representa una única pantalla de la aplicación ligada con su propia interfaz con la cual el usuario podrá interactuar. Una de las diversas actividades que pueden componer una aplicación se marcará como “Main” o principal; esta será la actividad que se lanzará cuando la aplicación se inicie. Una actividad a su vez podrá lanzar otras actividades con el fin de componer la aplicación de diversas interfaces para poder mostrar u obtener datos al o del usuario.

  • Services

Una servicio es una tarea que se ejecuta en background y además no posee interfaz de usuario. Esta componente realiza operaciones de larga duración o alguna tarea que haga uso de un proceso remoto. Algunos ejemplos de servicio pueden ser el reproductor de música o tareas costosas, como escrituras de grandes cantidades de datos en la memoria. Otro componente, como puede ser una actividad, puede iniciar el servicio y dejarlo en segundo plano con el fin de interactuar con él.

  • Broadcast Receivers

Éstos componentes reciben y reaccionan ante eventos de tipo broadcast que pueda producir una aplicación o el propio sistema, como por ejemplo eventos de batería baja, SMS recibido , etc.

  • Intents (Intención en Español)

Los tres componentes mencionados anteriormente son activados a través de mensajes asíncronos llamados Intents. A través de estos, podremos enviar mensajes a todo el sistema, a una Actividad o a un Servicio específicos indicando la acción que se quiera realizar. El propio sistema determinará quién realizará la acción que se demanda.

  • Content Providers

Un proveedor de contenidos nos servirá para acceder a los datos que queremos manejar en nuestra aplicación. Puede almacenar los datos en el sistema de archivos (en el propio proyecto), en una base de datos SQLite, en una web, o cualquier otro lugar de almacenamiento al que la aplicación pueda acceder. A través del proveedor de contenidos, las aplicaciones pueden consultar e incluso modificar los datos (si el proveedor de contenido lo permite).

Componente Activity

Como hemos visto existen varios componentes con los que construir nuestra aplicación. A continuación veremos el componente Activity más profundamente debido a que lo necesitaremos en nuestra primera aplicación y prácticamente en cualquiera que desarrollemos.

Ciclo de vida de una Actividad

Toda actividad podrá pasar por diversos estados, los cuales se pueden ver,  junto con los métodos que se ejecutarán entre cada cambio de estado, en la siguiente imagen (obtenida de la propia documentación de Android):

Los métodos más importantes de la clase Activity son los siguientes:

  1. onCreate(): Es llamado cuando se crea la actividad. En este método generalmente se inicializan las variables de la clase, enlazando los componentes de la interfaz.
  2. onStart(): Es llamado cuando la actividad pasa a ser visible para el usuario.
  3. onResume(): Se llama cuando la actividad empieza a interactuar con el usuario. En este punto la actividad se encuentra en la pila de actividades del sistema.
  4. onPause(): Este método se llama cuando el sistema está a punto de iniciar una actividad anterior. En este método se suele guardar datos importantes para la aplicación y parar tareas que consuman CPU. Éste método debe ser sencillo puesto que la siguiente aplicación no comenzará hasta que este no acabe.
  5. onStop(): Es llamado cuando la actividad ya no es visible para el usuario, ya que otra actividad se ha reanudado. Esto puede ocurrir ya sea porque una nueva actividad se está iniciando o ésta está siendo destruida.
  6. onRestart(): Es llamado cuando la actividad, que se ha parado anteriormente, puede iniciar su ejecución de nuevo.
  7. onDestroy(): Este método se llama para destruir la actividad. Esto puede ser debido a que se ha llamado al método finish() en algún lugar del código o porque el sistema necesita recursos y necesita matar el proceso.

Archivo Android Manifest

Este es uno de los ficheros más importantes de una aplicación Android, el cual se aloja en la raiz del proyecto como veremos en la próxima entrada. Se trata de un fichero XML en el cual describiremos los componentes que deseamos usar en la aplicación. Si no hacemos esto, cuando queramos lanzar uno de estos componentes, la aplicación nos dará error y terminará.

Este archivo además de declarar estos componentes tiene otras tareas como:

  • Identificar los permisos de usuario que la aplicación requerirá como por ejemplo, acceso a Internet, lectura de la memoria, acceso a la localización del GPS, etc.
  • Declarar el nivel mínimo API que requiere la aplicación.
  • Características de hardware y software utilizados o requerido por la aplicación, tales como la utilización de la cámara, los servicios de bluetooth, pantalla multitouch, etc.
  • Bibliotecas API utilizadas (que no sean las propias de Android), como por ejemplo la biblioteca de Google Maps.

El siguiente código(aunque he omitido ciertas partes que ahora no nos interesan) corresponde a un fichero AndroidManifest.xml generado por defecto:

<?xml version="1.0" encoding="utf-8"?>
<manifest ...">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".main" android:label="@string/app_name">
            <intent-filter>
                   <...>
            </intent-filter>
        </activity>
    </application>
</manifest>

En el código anterior podemos ver la etiqueta application con algunos de sus posibles atributos, como por ejemplo icon y label que identifican el icono y el nombre de la aplicación respectivamente. Como ya he dicho, para utilizar un componente debemos incluirlo en el archivo de manifiesto por lo que dentro de la etiqueta application encontramos la etiqueta activity con su atributo name que identifica el nombre de la clase que implementa dicha actividad.

A pesar de que la mayoría del código de este fichero es generado automáticamente no debemos dejar de prestarle atención puesto que en ocasiones tendremos que modificarlo. Y aunque en Eclipse, mediante el plugin de Android, se nos ofrece una forma "visual" y "más cómoda" de modificarlo, en mi opinión me parece más sencillo hacerlo a mano directamente sobre el código XML.

About these ads

1 comment so far

  1. Johnny on

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: