Visión general de T2
Cómo está construida una aplicación Android por dentro: los cuatro componentes que el sistema gestiona de forma independiente, el AndroidManifest que los declara, los recursos que separan contenido de lógica, el ciclo de vida de la Activity y el arranque formal del Proyecto A con Git.
El progreso se guarda en este navegador. Inicia sesión para sincronizarlo entre dispositivos.
✓Cómo usar esta guía
- Empieza por A2.1 · Análisis de una app de código abierto y avanza en orden: de leer código ajeno a modificarlo, de observar el ciclo de vida a arrancar tu propio proyecto con Git.
- Cada página de actividad es autosuficiente: teoría, pasos, comandos y criterios. No necesitas volver aquí para completarla.
- Marca las casillas conforme avanzas; el menú lateral y la barra de arriba se actualizan solos.
- Los bloques de código tienen botón Copiar.
1Los cuatro componentes y el AndroidManifest
Android estructura las apps como un conjunto de componentes independientes que el sistema invoca cuando lo necesita, no como un programa lineal con un único punto de entrada.
| Componente | Función | Características |
|---|---|---|
| Activity | Pantalla interactiva del usuario | Ciclo de vida propio; el enfoque moderno usa una sola por app |
| Service | Trabajo en segundo plano sin interfaz | Se ejecuta en el hilo principal por defecto |
| Broadcast Receiver | Reacciona a eventos del sistema | Escucha anuncios; sin interfaz propia |
| Content Provider | Acceso a datos compartidos entre apps | Menos usado; similar a una base de datos expuesta |
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<application>
<activity android:name=".MainActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
intent-filter. Por defecto, ponlo a false salvo que necesites lo contrario.2Recursos: separar contenido de lógica
Todo lo que no es código Kotlin vive en res/, organizado por tipo, y cada recurso obtiene un identificador automático en la clase R.
| Carpeta | Contiene |
|---|---|
layout/ | XML de interfaces visuales |
drawable/ | Imágenes, iconos vectoriales, formas |
mipmap/ | Iconos de la app en distintas densidades |
values/ | Strings, colores, dimensiones, estilos |
values-en/ por idioma, layout-land/ por orientación, layout-sw600dp/ por tamaño de pantalla, drawable-xxhdpi/ por densidad, values-night/ por tema. Se pueden combinar respetando el orden, por ejemplo layout-land-sw600dp/.3Ciclo de vida de la Activity
Responde a las limitaciones de memoria de un dispositivo móvil: la Activity pasa por estados que generan callbacks para que la app reaccione.
| Callback | Cuándo se dispara |
|---|---|
onCreate() | Una única vez, al crear la Activity |
onStart() | Se vuelve visible |
onResume() | Obtiene el foco; empieza la interacción real |
onPause() | Pierde el foco, puede seguir parcialmente visible |
onStop() | Ya no es visible |
onDestroy() | Se libera definitivamente |
onPause → onStop → onDestroy) y la recrea desde cero (onCreate → onStart → onResume). Las variables en memoria se pierden si no se gestionan con onSaveInstanceState.4El Proyecto A entra en Git
Desde este tema, el Proyecto A propuesto en A1.4 se desarrolla con control de versiones obligatorio.
git init
git add .
git commit -m "Esqueleto inicial del proyecto"
# Tras cada avance:
git add .
git commit -m "Descripción específica del cambio"
build/ ni los archivos de configuración del IDE. Usa un .gitignore apropiado para Android, no uno genérico.Contenido reestructurado a partir de webpmdm.netlify.app (Tema 2 — Anatomía de una aplicación Android: componentes y ciclo de vida). Fuente única de la verdad para cualquier duda de detalle.