Todos los formatos de archivos de Android explicados: APK, AAB, XAPK, APKS, APKM, OBB y más

A filing tray with tabs labeled APK, AAB, XAPK, APKS, APKM and OBB

El ecosistema de Android utiliza una variedad de formatos de archivo para empaquetar, distribuir y almacenar datos de aplicaciones. Si alguna vez descargó una aplicación de una fuente de terceros, probablemente haya encontrado extensiones de archivo más allá del APK familiar. Formatos como XAPK, APKS, APKM, AAB y OBB tienen cada uno un propósito específico en el ciclo de vida de la aplicación de Android.

Esta guía pretende ser una referencia completa para todos los formatos de archivos principales de Android. Los desarrolladores, los usuarios avanzados que descargan aplicaciones y los lectores curiosos que sólo quieren saber qué contienen realmente estos archivos encontrarán cada formato explicado en lenguaje sencillo a continuación.

APK: Kit de paquete de Android

El APK es el formato de archivo fundamental para las aplicaciones de Android. Ha sido el formato de instalación estándar desde los inicios de Android y sigue siendo el formato que el sistema operativo Android entiende de forma nativa para la instalación de aplicaciones.

Qué contiene

Un archivo APK es esencialmente un archivo ZIP con una estructura interna específica:

  • AndroidManifest.xml, archivo XML binario que declara el nombre del paquete, los componentes, los permisos y los requisitos de la aplicación.
  • classes.dex (y classes2.dex, etc.), código de bytes Dalvik compilado que contiene el código Java/Kotlin de la aplicación
  • resources.arsc, tabla de recursos compilada que asigna ID de recursos a sus valores
  • res/, directorio que contiene recursos como diseños, elementos de diseño y cadenas a los que se hace referencia mediante ID
  • assets/, archivos de activos sin procesar a los que accede la aplicación en tiempo de ejecución a través de AssetManager
  • lib/, bibliotecas nativas organizadas por arquitectura de CPU (por ejemplo, lib/arm64-v8a/)
  • META-INF/, Archivos de firma e información de certificado

Cuando lo encuentres

Los archivos APK son lo que descargas al descargar aplicaciones de fuentes de terceros. También son los que se instalan en su dispositivo desde Play Store, aunque las instalaciones modernas de Play Store a menudo utilizan APK divididos generados a partir de App Bundles.

Cómo manejarlo

Los archivos APK se pueden instalar directamente en Android abriéndolos con un administrador de archivos o usando adb install. También puede examinar su contenido cambiando el nombre de la extensión a .zip y extrayéndola, o utilizando nuestro Verificador de APK para inspeccionar firmas y metadatos.

AAB: paquete de aplicaciones de Android

Android App Bundle es el formato de publicación de Google para Play Store. Desde agosto de 2021, todas las aplicaciones nuevas en Play Store deben enviarse como AAB en lugar de APK.

Qué contiene

Un archivo AAB utiliza un formato basado en búfer de protocolo y contiene:

  • Código de la aplicación principal Módulo básico: y recursos necesarios en cada dispositivo
  • Divisiones de configuración: Recursos organizados por densidad de pantalla, arquitectura de CPU e idioma
  • Módulos de funciones dinámicas: Funciones opcionales que se pueden descargar bajo demanda
  • Metadatos del paquete: Instrucciones para Google Play sobre cómo generar APK específicos del dispositivo

Cuando lo encuentres

Como usuario habitual, normalmente no encontrará archivos AAB directamente. Los desarrolladores los utilizan durante el proceso de compilación y carga. Sin embargo, si obtiene un archivo AAB (quizás de los artefactos de compilación de un proyecto de código abierto), deberá convertirlo al formato APK antes de la instalación.

Cómo manejarlo

Utilice la utilidad de línea de comandos bundletool de Google o nuestro Convertidor de AAB a APK para generar un APK instalable a partir de un archivo AAB. El proceso de conversión crea un APK universal (más grande, funciona en todas partes) o APK específicos del dispositivo (más pequeños, orientados al dispositivo).

XAPK: APK extendido

XAPK es un formato contenedor popularizado por APKPure que agrupa un APK junto con sus archivos de datos OBB asociados o divide las configuraciones de APK en un único paquete descargable.

Qué contiene

Un archivo XAPK es un archivo ZIP que contiene:

  • Un archivo APK base (la aplicación principal)
  • Archivos OBB (datos de expansión para juegos y aplicaciones grandes)
  • Opcionalmente, divida archivos APK para diferentes configuraciones de dispositivos
  • Un archivo manifest.json que describe el contenido del paquete y las instrucciones de instalación.
  • Un archivo de icono para fines de visualización.

Cuando lo encuentres

Te encuentras con archivos XAPK al descargar aplicaciones o juegos grandes desde repositorios de aplicaciones de terceros. Los juegos que requieren archivos de datos adicionales (anteriormente distribuidos como archivos OBB) comúnmente se empaquetan como XAPK para simplificar el proceso de descarga en un solo archivo.

Cómo manejarlo

Los archivos XAPK no pueden instalarse directamente mediante el instalador de paquetes predeterminado de Android. Necesita una aplicación de instalación XAPK dedicada o puede usar nuestro Convertidor de XAPK a APK para extraer el APK base. Para juegos que requieren datos OBB, también necesitarás extraer y colocar los archivos OBB en el directorio correcto usando nuestro Extractor OBB.

APKS: conjunto de APK

El formato APKS es el resultado de la herramienta de paquete de Google al generar APK específicos del dispositivo a partir de un archivo AAB. También lo utilizan algunas herramientas de copia de seguridad de aplicaciones para almacenar instalaciones de APK divididas.

Qué contiene

Un archivo APKS es un archivo ZIP que contiene:

  • toc.pb, una tabla de contenido del búfer de protocolo que describe la estructura dividida
  • splits/, directorio que contiene el APK base y todos los APK divididos de configuración
  • Opcionalmente, APK independientes para dispositivos que no admiten instalaciones divididas

Cuando lo encuentres

Encontrará archivos APKS cuando utilice Bundletool localmente, cuando realice copias de seguridad de aplicaciones instaladas desde Play Store o cuando las descargue desde ciertos repositorios de terceros que conservan la estructura de APK dividida.

Cómo manejarlo

Puede instalar archivos APKS usando el comando install-apks de Bundletool o convertirlos a un solo APK usando nuestro Fusión de APKS a APK. Tenga en cuenta que fusionar APK divididos en un APK universal puede aumentar el tamaño del archivo, ya que se combinan todos los recursos de configuración.

APKM: Paquete APKMirror

APKM es un formato contenedor propietario creado por APKMirror para distribuir aplicaciones que constan de varios APK divididos. Tiene un propósito similar al de XAPK y APKS, pero utiliza la propia estructura de APKMirror.

Qué contiene

Un archivo APKM es un archivo ZIP que contiene:

  • Un archivo APK base
  • Dividir archivos APK para varias configuraciones (densidad, ABI, idioma)
  • Un archivo de metadatos que describe la estructura del paquete.

Cuando lo encuentres

Encontrará archivos APKM exclusivamente cuando los descargue desde APKMirror. El sitio utiliza este formato para aplicaciones que se distribuyen como paquetes de aplicaciones en Play Store y, por lo tanto, constan de varios APK divididos.

Cómo manejarlo

Los archivos APKM requieren la aplicación APKMirror Installer para la instalación directa, o puede extraer el contenido (ya que es un archivo ZIP) e instalar los APK divididos manualmente usando el comando install-multiple de ADB. El APK base también se puede extraer e instalar de forma independiente, aunque algunas funciones pueden estar limitadas sin las divisiones de configuración.

OBB: Blob binario opaco

Los archivos OBB son archivos de expansión utilizados por las aplicaciones de Android (principalmente juegos) para almacenar grandes cantidades de datos que exceden el límite de tamaño de APK de Play Store. Aunque Google ha reemplazado en gran medida este sistema con Play Asset Delivery, muchas aplicaciones existentes todavía usan archivos OBB.

Qué contiene

Los archivos OBB pueden contener cualquier tipo de datos que la aplicación necesite:

  • Texturas de juegos y modelos 3D.
  • Archivos de audio y bandas sonoras.
  • Contenido de vídeo
  • Datos de nivel y mapas.
  • Cualquier dato binario grande que el desarrollador decida almacenar externamente

El formato de los datos dentro de un archivo OBB depende totalmente del desarrollador. Algunos usan compresión ZIP, otros usan formatos binarios personalizados. El "Opaco" en el nombre refleja que Android trata el archivo como un cuadro negro.

Cuando lo encuentres

Los archivos OBB se encuentran al descargar juegos grandes o cuando se incluyen en paquetes XAPK. Se almacenan en /Android/obb/[package.name]/ en el almacenamiento compartido del dispositivo.

Cómo manejarlo

Los archivos OBB deben colocarse en el directorio correcto para que la aplicación los encuentre. El nombre del archivo suele seguir el patrón main.[version].[package.name].obb o patch.[version].[package.name].obb. Utilice nuestro Extractor OBB para extraer archivos OBB de paquetes XAPK.

DEX: ejecutable Dalvik

Los archivos DEX contienen el código de bytes compilado que se ejecuta en el entorno de ejecución de Android. Se encuentran dentro de archivos APK, pero también pueden existir de forma independiente durante el desarrollo y la depuración.

Qué contiene

Un archivo DEX contiene:

  • Código de bytes Java/Kotlin compilado en formato de instrucción Dalvik
  • Constantes de cadena y definiciones de tipos
  • Referencias de métodos y campos.
  • Definiciones de clases y sus jerarquías.

Detalles técnicos

Un único archivo DEX tiene un límite de referencia de método de 65.536 (el "límite de 64K"). Las aplicaciones que superan este límite utilizan varios archivos DEX (classes.dex, classes2.dex, etc.), una técnica llamada multidex. Las herramientas de construcción modernas manejan esto automáticamente.

Archivos ODEX, VDEX y ART

Estas son versiones optimizadas de archivos DEX creados por Android Runtime durante o después de la instalación:

  • ODEX (DEX optimizado): Contiene código de máquina nativo compilado con anticipación para métodos utilizados con frecuencia. Generado durante el mantenimiento inactivo según los perfiles de uso.
  • VDEX (DEX verificado): Contiene el código de bytes DEX verificado con resultados de verificación previamente calculados. Esto acelera los arranques y lanzamientos de aplicaciones posteriores al omitir la nueva verificación.
  • ART (imagen de tiempo de ejecución de Android): Contiene objetos de clase preinicializados y datos de montón. Esto permite que el tiempo de ejecución omita la carga y la inicialización de clases para clases de marco comunes durante el inicio.

Estos archivos son generados por el sistema y no son algo con lo que los usuarios normalmente interactúen directamente. Se almacenan en /data/dalvik-cache/ o junto con el APK en /data/app/.

SO: Objeto compartido (bibliotecas nativas)

Los archivos con la extensión .so son bibliotecas nativas compartidas compiladas para arquitecturas de CPU específicas. Contienen código de máquina escrito en C, C++ o Rust que se ejecuta directamente en el procesador sin la sobrecarga del tiempo de ejecución de Dalvik/ART.

Variantes de arquitectura

  • armeabi-v7a, ARM de 32 bits (la mayoría de los dispositivos más antiguos)
  • arm64-v8a, ARM de 64 bits (la mayoría de los teléfonos modernos)
  • x86, Intel/AMD de 32 bits (algunas tabletas y emuladores)
  • x86_64, Intel/AMD de 64 bits (Chromebooks y emuladores)

Cuando un APK contiene bibliotecas nativas, debe incluir la arquitectura correcta para el dispositivo de destino. Si se incluye la arquitectura incorrecta, la aplicación fallará con un UnsatisfiedLinkError.

Archivos XML en Android

Android utiliza XML ampliamente, pero en dos formas diferentes:

XML binario

Dentro de los archivos APK, los recursos XML (diseños, manifiestos, archivos de cadenas) se almacenan en un formato binario compilado llamado AXML. Este formato es más compacto y más rápido de analizar que el texto XML. Herramientas como aapt2 o apktool pueden descompilar XML binario en texto legible.

XML de texto

Durante el desarrollo, los archivos XML están en formato de texto estándar. El proceso de compilación los compila en XML binario para incluirlos en el APK. Los archivos de configuración como network_security_config.xml y los archivos de recursos en el directorio res/ comienzan como texto XML.

Archivos de mapeo ProGuard/R8

Si bien no es un formato específico de Android, los archivos de mapeo (mapping.txt son importantes para comprender las aplicaciones ofuscadas). Cuando los desarrolladores utilizan herramientas de reducción de código como R8, los nombres de clases y métodos se reemplazan por identificadores cortos y sin sentido. El archivo de mapeo registra las traducciones de nombres originales a ofuscados, lo que es esencial para leer informes de fallas.

Formato de copia de seguridad de Android (AB)

Los archivos con la extensión .ab son archivos de copia de seguridad de Android creados por adb backup. Contienen un archivo tar (opcionalmente comprimido y cifrado) del directorio de datos de una aplicación. Este formato está quedando obsoleto en favor de las soluciones de copia de seguridad basadas en la nube, pero algunas herramientas de copia de seguridad todavía lo utilizan.

IMG e imágenes de partición

Si bien no están relacionadas con aplicaciones, las imágenes del sistema Android utilizan varios formatos que vale la pena mencionar:

  • sistema.img: La partición del sistema de solo lectura que contiene el marco de Android y las aplicaciones preinstaladas.
  • arranque.img: Contiene el kernel de Linux y el disco RAM inicial.
  • proveedor.img: Controladores y firmware específicos del hardware
  • super.img: Contenedor de partición dinámica utilizado en dispositivos modernos (Android 10+)

Tabla de comparación de formatos

Aquí hay una referencia rápida que compara los principales formatos de distribución de aplicaciones:

  • APK: Archivo único, instalable directamente, universal (todas las configuraciones incluidas), tamaño más grande
  • AAB: Formato de publicación, no instalable directamente, requiere procesamiento por parte de Play Store
  • Contenedor XAPK: (APK + OBB/splits), requiere instalador o extracción, utilizado por APKPure
  • Contenedor APK: (APK divididos), formato de herramienta de paquete, requiere instalador o fusión
  • Contenedor APKM: (APK divididos), formato APKMirror, requiere su instalador

Elegir la herramienta adecuada

Dependiendo del formato con el que esté trabajando, serán apropiadas diferentes herramientas:

¿Qué formato de paquete de Android debería utilizar?

La variedad de formatos de archivos del ecosistema Android refleja la evolución de la plataforma desde simples APK de un solo archivo hasta sofisticados sistemas de entrega modulares. Cada formato existe para resolver un problema específico: los AAB reducen el tamaño de las descargas, los XAPK simplifican la distribución de aplicaciones de múltiples archivos, los OBB manejan grandes datos de juegos y los APK divididos permiten la optimización específica del dispositivo.

Una vez que comprenda estos formatos, podrá manejar cualquier paquete de Android que encuentre, ya sea que esté descargando aplicaciones, haciendo una copia de seguridad de su dispositivo o desarrollando sus propias aplicaciones. La conclusión clave es que la mayoría de estos formatos son, en última instancia, contenedores que contienen archivos APK en varias configuraciones y, con las herramientas adecuadas, siempre puedes extraer lo que necesitas.

Diseñado y documentado por Mst Shaefale Desarrollador líder y arquitecto de paquetes de Android • Verificado en Android 12–15

Mst Shaefale mantiene la fusión XAPK/APKS del lado del cliente, el analizador de manifiesto binario y las herramientas de firma APK v1+v2 en xapktoapk.com. ¿Detecta un comando obsoleto o un cambio en el sistema operativo? Envíe una nota editorial.