Componentes de una aplicación Android

Como cualquier aplicación, ya sea web o de escritorio, las aplicaciones móviles y en especial, las construidas de forma nativa tienen unos componentes definidos que las caracterizan, esto con el fin de favorecer la reutilización de código y agilidad en su construcción. En esta entrada se especificarán con más detalle dichos componentes.

Activity

Se podría decir que es el componente mínimo de una aplicación que contiene una pantalla para que los usuarios pueden interactuar y así realizar una acción,

Activity android

Aplicación

Es un conjunto de Activities vinculadas de forma flexible entre si; por tanto en una aplicación puede haber varias activities que se comunican entre si.

Ciclo de vida de una Activity

A pesar de usar código java en Android, en este contexto, no existe un método main() para inicializar la aplicación. Para ello se usa un servicio llamado Activity Manager, el cual se encarga de crear, destruir y manejar todas las activities de la aplicación.

Una Activity se asemeja a una máquina de estados que está pendiente de las acciones del usuario; sin embargo éste último no tiene control de cuando se inicializará, pero si puede decidir las sentencias que se ejecutarán en cada estado.

Estados de una Activity

Los estados son definidos por métodos que se ejecutan de acuerdo a las acciones del usuario o del mismo sistema operativo, entre estos tenemos.

  • Creación: onCreate()
  • Ejecución: onStart()
  • Reanudación: onResume()
  • Pausa: onPause()
  • Detención: onStop()
  • Destrucción: onDestroy()

Creación

Cuando el usuario pulsa el ícono de la aplicación, inmediatamente se carga el layout de la Activity principal en memoria, pero aún no es visible.

Ejecución – Reanudación

Después de haber cargado la Activity, se ejecutan en secuencia los métodos onStart() onResume(), aunque el primero carga la Activity, el último transfiere el foco para que interactúe con el usuario

Pausa

Una Activity se encuentra en pausa cuando es parcialmente visible, por ejemplo cuando se despliega una modal encima, está última toma el foco y la Activity toma la transición onPause().

Detención

Una Activity se detiene cuando no es visible en la pantalla, sin embargo puede ser reanudada en cualquier momento ya que se encuentra en memoria. Cuando una actividad pasa a segundo plano, se ejecuta el método onStop(), al reanudarse se ejecuta el método onRestart().

Destrucción

La Activity ya no se encuentra  en memoria, se ejecuta el método onDestroy(), este último es usado en la mayoría de los casos en procesos que se ejecuten en segundo plano

A en el gráfico a continuación se puede obsevar de manera más detallada el flujo

Descarga codígo fuente del ciclo de vida

View

Componente básico para crear la interfaz gráfica de usuario, en esta van todos los elementos como botones, listas desplegables, controles básicos o crear nuevos controles.

Intent

Representa la voluntad de realizar alguna acción; como realizar una llamada de teléfono, visualizar una página web. Se utiliza cada vez que queramos:

  • Lanzar una actividad
  • Lanzar un servicio
  • Enviar un anuncio de tipo broadcast
  • Comunicarnos con un servicio

Service

Es un proceso que se ejecuta a bajo nivel (Background) de forma autónoma, es parecido a demonio (Daemon) en windows. En android existen dos tipos de servicios.

  • Servicios locales; que son ejectutables en el mismo proceso
  • Servicios remotos: que son ejecutados por procesos separados.

Broadcast Receiver

Componente destinado a recibir y responder a eventos globales del sistema operativo. Algunos ejemplos de eventos que se pueden capturar son:

  • AIRPLANE_MODE: Modo avión.
  • BATTERY_LOW: Batería baja.
  • BOOT_COMPLETED: Inicio del sistema operativo.
  • SCREEN_OFF: Pantalla apagada.
  • SCREEN_ON: Pantalla encendida.

Content provider

Componente especializado en compartir datos entre aplicaciones ya que cada aplicación maneja sus datos por separado.

Enlaces de referencia