A diferencia de las aplicaciones monolíticas tradicionales (donde un solo método main() controla el flujo), una aplicación Android es un ecosistema dinámico gestionado por el sistema operativo.
Los Componentes Fundamentales son los bloques esenciales de una aplicación. El sistema Android los gestiona, los inicia y les asigna su propio ciclo de vida y contexto de ejecución. Entender estos componentes es entender la arquitectura de acoplamiento flexible (o débil) de Android.
1. ¿Qué es una “app Android”?
Una app para Android es un paquete que combina código (usualmente escrito en Kotlin o Java) con recursos (imágenes, cadenas de texto, estilos) y un manifiesto que declara los elementos de la aplicación. Android Developers
Existen dos formatos comunes de empaquetado:
- El
.apk(Android Package) contiene todo lo necesario para instalar la app en un dispositivo. Android Developers - El
.aab(Android App Bundle) es el formato de publicación: no se instala directamente, sino que Play Store genera APKs optimizados para cada dispositivo. Android Developers
Además, Android asigna a cada app un ID de usuario de Linux único para aislamiento de procesos y seguridad. Android Developers
2. Componentes de una aplicación Android
Los componentes son los “puntos de entrada” mediante los cuales el sistema o el usuario pueden trabajar con tu aplicación. Los cuatro principales tipos son:
- Actividades (Activity): representan pantallas con interfaz de usuario; por ejemplo, una pantalla de lista de correos, una pantalla de redacción, etc. Android Developers+1
- Servicios (Service): ejecutan tareas en segundo plano sin interfaz de usuario; por ejemplo, reproducir música, sincronizar datos, etc. Android Developers
- Receptores de emisión (BroadcastReceiver): escuchan eventos del sistema (como batería baja, recepción de SMS, etc.) o de otras apps, incluso si tu app no está activa. Android Developers
- Proveedores de contenido (ContentProvider): permiten compartir y almacenar datos entre aplicaciones, mediante un URI público, base de datos SQLite, archivos, etc. Android Developers
Nota: Cada componente posee un ciclo de vida distinto, que debes comprender para diseñar una app robusta.
3. Intents: la forma de activar componentes
Para que los componentes interactúen entre sí o con el sistema, Android usa objetos llamados intents (intenciones). Android Developers
- Un Intent explícito especifica la clase de componente que se va a iniciar.
- Un Intent implícito especifica una acción general (como “ver”, “enviar”), y el sistema busca qué componente puede responderla.
Por ejemplo: - startActivity(intent) para iniciar una actividad.
- startService(intent) o bindService(intent) para servicios.
- sendBroadcast(intent) para transmisiones.
Este mecanismo permite que las apps se integren entre sí y con el sistema de forma fluida.
4. El archivo de manifiesto (AndroidManifest.xml)
Este archivo es el registro central de tu aplicación: el sistema lo lee para saber qué componentes existen, qué permisos se requieren, qué características de hardware se usan, etc. Android Developers
Entre sus funciones principales:
- Declarar cada
Activity,Service,Receiver,Provider. Si no lo declaras, el sistema no sabrá de su existencia. Android Developers - Declarar permisos del usuario (ej. acceso a Internet, contacto, cámara). Android Developers
- Declarar el nivel mínimo de API (
minSdkVersion) o funciones de hardware/software requeridas (ej. cámara, Bluetooth). Android Developers - Declarar filtros de
intentsi deseas que tu componente responda a intenciones de otras apps. Android Developers
5. Recursos de la aplicación
Más allá del código, una app Android contiene recursos que permiten adaptación a diferentes dispositivos (idiomas, tamaño de pantalla, orientación, etc.). Android Developers
Ejemplos de recursos:
- Imágenes (
drawable/), estilos, colores. - Archivos de diseño de interfaz de usuario (
layout/). - Cadenas de texto (
strings.xml) por localización.
Los recursos permiten que tu app sea más flexible, fácil de mantener y adaptada a múltiples entornos.
