AAB — qué es, diferencia con APK y principio de funcionamiento

Autor: IT Sectr Publicado: 2026-04-15 Tiempo de lectura: 8 min

AAB (Android App Bundle) es un formato de publicación para aplicaciones Android que reemplazó a APK en Google Play desde 2021. A diferencia de APK, AAB no es un archivo de instalación, sino un contenedor a partir del cual Google Play genera dinámicamente APK optimizados para cada dispositivo. Según Android Developers, 2026, el formato reduce el tamaño de la aplicación descargada en un promedio del 15% al eliminar recursos no utilizados.

Puntos clave

  • AAB es un formato de publicación para aplicaciones Android a partir del cual Google Play genera APK para cada dispositivo.
  • Dynamic Delivery es un mecanismo que entrega solo los módulos y recursos que necesita un dispositivo específico.
  • Obligatorio — desde agosto de 2021 Google Play exige AAB para todas las aplicaciones nuevas.
  • Ahorro — el tamaño de descarga se reduce entre un 15 y un 30 % al eliminar recursos innecesarios.
  • Activos — AAB admite hasta 2 GB sin archivos OBB mediante los módulos Play Asset Delivery.

Qué es AAB

AAB (Android App Bundle) es un formato de publicación desarrollado por Google como reemplazo de APK para su distribución a través de Google Play. Internamente, AAB es un archivo ZIP con extensión .aab que contiene código compilado, recursos y metadatos. La diferencia clave: AAB no se instala directamente en un dispositivo.

Cómo funciona

El desarrollador sube AAB a Google Play Console. Cuando un usuario intenta instalar la aplicación, Google Play analiza la configuración del dispositivo: densidad de pantalla (DPI), arquitectura de CPU, idioma y versión de Android. Basándose en este análisis, se genera un APK mínimo que contiene solo los componentes necesarios.

Historial de adopción

Google presentó AAB en 2018 en la conferencia I/O. Desde agosto de 2021, el formato se ha vuelto obligatorio para todas las aplicaciones nuevas en Google Play. Las aplicaciones existentes pueden seguir usando APK, pero las nuevas deben publicarse solo en AAB.

En qué se diferencia AAB de APK

La diferencia entre AAB y APK es fundamental: APK es un archivo de instalación completo listo para instalar. AAB es un contenedor con componentes fuente que requiere procesamiento.

ParámetroAPKAAB
TipoArchivo de instalaciónContenedor de publicación
InstalaciónDirectamente en el dispositivoA través de Google Play
TamañoArchivo completoComponentes fuente
MódulosTodo en un archivoMódulos separados
FirmaDesarrolladorGoogle Play
DistribuciónCualquier canalGoogle Play

APK es adecuado para su distribución fuera de Google Play, a través de sitios web, correo electrónico o sistemas MDM corporativos. AAB está vinculado a la infraestructura de Google Play y no se puede instalar directamente. Para probar AAB se utiliza la herramienta bundletool, que emula la generación de APK en una máquina local.

Estructura del archivo AAB

La estructura interna de AAB es similar a APK pero contiene directorios y archivos adicionales para describir los módulos y sus dependencias.

Archivo/directorioPropósito
base/Módulo base: código, recursos, manifiesto
BundleConfig.pbConfiguración del bundle en formato protobuf
Bundle-metadata/Metadatos sobre versiones de módulos
feature/Módulos dinámicos (on-demand)
assets/Activos de la aplicación
manifest/Manifiestos de cada módulo

Módulo base (base)

El módulo base es un componente obligatorio de AAB. Contiene el código principal, los recursos y el manifiesto de la aplicación. Sin el módulo base, la aplicación no se puede compilar. Todos los demás módulos son opcionales y se conectan a través de Dynamic Delivery.

Formato Protobuf

La configuración de AAB utiliza Protocol Buffers (protobuf) en lugar de XML. Los archivos .pb son más compactos y se analizan más rápido en la infraestructura del servidor de Google. La herramienta bundletool convierte protobuf a un formato legible para la depuración.

Dynamic Delivery y módulos de la aplicación

Dynamic Delivery es la tecnología clave sobre la que se basa AAB. Permite entregar al usuario solo aquellas partes de la aplicación que corresponden a su dispositivo e idioma, así como cargar módulos adicionales bajo demanda.

Tipos de módulos

Los módulos Install-time se cargan junto con el APK base durante la instalación. Los módulos Conditional se entregan solo cuando se cumplen ciertas condiciones — por ejemplo, un módulo con materiales para pantallas 4K. Los módulos On-demand se cargan a solicitud del usuario dentro de la aplicación.

Play Asset Delivery (PAD)

Para recursos grandes (hasta 2 GB), se utiliza Play Asset Delivery en lugar de archivos OBB. PAD admite los mismos tres modos de entrega: install-time, fast-follow (inmediatamente después de la instalación) y on-demand.

kotlin
// Carga de módulo on-demand mediante SplitInstallManager
val manager = SplitInstallManagerFactory
    .create(context)

val request = SplitInstallRequest
    .newBuilder()
    .addModule("level_pack_3")
    .build()

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Module installed")
    }

Configuración del módulo en Gradle

Cada módulo dinámico se describe en un archivo build.gradle independiente con el tipo de entrega especificado. Un módulo puede contener sus propios recursos, código y manifiesto, independientes de la aplicación base.

Compilación de AAB mediante Gradle

La compilación de AAB se realiza a través de Android Gradle Plugin con la tarea bundleRelease (o bundleDebug). El resultado es un archivo .aab en el directorio build/outputs/bundle/.

Configuración de compilación

No se requiere ninguna configuración especial para compilar AAB: Android Gradle Plugin admite bundles de forma predeterminada. Simplemente especifique la tarea bundle en lugar de assemble.

kotlin
// build.gradle.kts — compilación de AAB con firma
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Tarea: ./gradlew bundleRelease

Pruebas locales mediante bundletool

Google proporciona la herramienta bundletool para generar APK a partir de AAB en una máquina local. El comando `bundletool build-apks --bundle=app.aab --output=app.apks` crea un conjunto de APK para pruebas en diferentes configuraciones de dispositivos.

bundletool también puede desempaquetar AAB, mostrar su configuración y verificar la integridad de la firma antes de subirlo a Google Play Console. Para la depuración, se utiliza el comando `bundletool dump manifest --bundle=app.aab` que muestra el manifiesto del módulo base.

Configuración de splits en AAB

De forma predeterminada, AAB divide los recursos en tres dimensiones: idioma, densidad de pantalla (density) y arquitectura de CPU (abi). El desarrollador puede deshabilitar cualquier división en build.gradle — por ejemplo, si la aplicación solo admite inglés. Deshabilitar una división significa que los recursos para todas las variantes se incluirán en el APK base.

Optimización de recursos — AAB convierte automáticamente PNG a WebP sin pérdida de calidad, comprime recursos no utilizados y elimina cadenas duplicadas. Estas optimizaciones se aplican en el lado de Google Play al generar el APK final. Como resultado, el usuario recibe un APK entre un 15 y un 25 % más pequeño que el archivo completo.

Publicación de AAB en Google Play

El proceso de publicación de AAB en Google Play Console difiere del APK solo en el formato del archivo subido. La consola acepta .aab, verifica su estructura, firma y configuración de módulos, y luego genera APK para cada tipo de dispositivo.

App Signing by Google Play

Al subir AAB, Google Play asume la gestión de las claves de firma. El desarrollador sube un paquete firmado con una clave upload y Google vuelve a firmar los APK generados con su propia clave. Esto simplifica la rotación de claves y la recuperación del acceso en caso de pérdida del keystore.

Pruebas previas al lanzamiento

Google Play Console proporciona una prueba de AAB integrada: puede descargar el APK generado para un dispositivo específico o ejecutar pruebas internas a través de los tracks Internal Testing, Closed Alpha y Open Beta.

Problemas comunes con AAB y sus soluciones

La migración a AAB puede causar problemas, especialmente en proyectos con muchos módulos dinámicos o configuración compleja de recursos.

Errores de configuración de módulos

Si un módulo dinámico hace referencia a recursos del módulo base con un nombre incorrecto, Google Play rechaza el AAB durante la verificación. Solución: use la comprobación lint antes de compilar y pruebe todos los módulos mediante bundletool localmente.

Divisiones por idioma y rendimiento

La división por idiomas puede ralentizar el inicio de la aplicación si los recursos para la configuración regional actual se cargan dinámicamente. La recomendación de Google es no dividir los idiomas si hay menos de 10, o usar install-time para los más populares.

Compatibilidad con SDK de terceros

Algunos SDK (análisis, publicidad, mapas) requieren acceso al manifiesto y los recursos completos. La verificación de compatibilidad con AAB es un paso obligatorio antes de la migración. La mayoría de los SDK importantes (Firebase, Google Ads, Crashlytics) son totalmente compatibles con AAB desde 2022. Para verificar la compatibilidad, se utiliza bundletool con el indicador --validate, que emula la generación de APK del lado del servidor.

Versionado de AAB

AAB utiliza el versionCode del manifiesto del módulo base. A diferencia de APK, AAB también admite versionCode para cada módulo por separado — esto permite actualizar partes individuales de la aplicación sin una reinstalación completa. Dynamic Delivery realiza un seguimiento de los módulos instalados y entrega solo los componentes modificados durante las actualizaciones a través de Google Play.

Monitoreo y análisis de AAB

Google Play Console proporciona análisis detallados para cada AAB: cuántos APK se generaron, qué splits tuvieron demanda, cuál es el tamaño promedio de descarga por dispositivo. Android Vitals muestra métricas de rendimiento de los APK generados. Estos datos ayudan a optimizar la configuración de splits y reducir el tamaño de descarga para diferentes categorías de dispositivos.

Preguntas frecuentes

¿Se puede instalar AAB directamente en un teléfono?

No, AAB no está diseñado para instalación directa. Google Play lo convierte en un APK para un dispositivo específico. Para pruebas en un teléfono se utiliza bundletool, que genera APK a partir de AAB localmente.

¿Cómo reduce AAB el tamaño de la aplicación?

Google Play genera APK solo con los recursos que coinciden con el dispositivo del usuario: una densidad de pantalla, una arquitectura de CPU, un idioma. Los recursos para otras configuraciones no se incluyen, lo que ahorra entre un 15 y un 30 % del tráfico de descarga.

¿Es obligatorio AAB para aplicaciones existentes?

No, las aplicaciones existentes pueden seguir publicando APK. El requisito de AAB aplica solo para aplicaciones nuevas. Google recomienda, pero no exige, actualizar los proyectos existentes a AAB.

¿Cómo migrar de APK a AAB?

Cambie la tarea de compilación de assembleRelease a bundleRelease, verifique la compatibilidad de todos los SDK, configure App Signing en Google Play Console y cargue el primer AAB a través de un track existente.

¿AAB admite bibliotecas nativas?

, AAB incluye bibliotecas nativas en los módulos. Google Play entrega solo los archivos .so para la arquitectura de CPU del dispositivo. Esto es especialmente importante para juegos en Unity y Unreal Engine con grandes compilaciones nativas.

Resumen

  • AAB es un contenedor para publicar aplicaciones Android, a partir del cual Google Play genera APK específicos.
  • Dynamic Delivery entrega solo los recursos que coinciden con el dispositivo del usuario — ahorro de tráfico del 15–30%.
  • Modularidad — la aplicación se divide en módulos base, condicionales y on-demand con diferentes estrategias de carga.
  • Obligatorio — desde 2021 todas las aplicaciones nuevas en Google Play se publican en formato AAB.
  • App Signing — Google Play gestiona las claves de firma, simplificando la rotación y recuperación.
  • Pruebas se realizan mediante bundletool, que emula la generación de APK del lado del servidor localmente.
  • Play Asset Delivery reemplaza los archivos OBB, admitiendo hasta 2 GB de activos con modos de carga flexibles.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también