Comprensión de la arquitectura de CPU de Android (ABI): por qué son importantes arm64-v8a, armeabi-v7a y x86

Diagram showing one app bundle splitting into arm64-v8a, armeabi-v7a, and x86 architecture-specific APKs

Si alguna vez fusionó un conjunto de archivos APK divididos y vio cómo su teléfono arrojaba "Aplicación no instalada" o, peor aún, vio cómo se instalaba bien solo para fallar en el instante en que tocaba el ícono, existe una buena posibilidad de que el problema real no tuviera nada que ver con una descarga corrupta. Es casi seguro que se trataba de arquitectura: una falta de coincidencia entre la CPU en la que se ejecuta su teléfono y la CPU para la que se compiló el código nativo de la aplicación. La mayoría de los usuarios de Android nunca tienen que pensar en esto, hasta el momento en que algo se rompe silenciosamente y luego se vuelve relevante rápidamente. Esto es lo que significa la arquitectura de CPU para un APK, por qué una sola aplicación en Play Store se envía en secreto como varias versiones diferentes de sí misma y cómo verificar la compatibilidad antes de instalar algo.

¿Qué es una ABI?

ABI significa Interfaz binaria de aplicaciones. En términos prácticos, es el conjunto de instrucciones que comprende un chip: el formato de código de máquina sin procesar que un procesador puede ejecutar directamente. La mayor parte de una aplicación de Android, las partes escritas en Java o Kotlin, se compilan en un código de bytes que se ejecuta dentro de Android Runtime (ART), y a ART no le importa particularmente en qué chip se encuentra. Esa capa es independiente de la arquitectura por diseño, lo cual es una gran parte de por qué las aplicaciones de Android generalmente "simplemente funcionan" en una gama tan amplia de hardware.

El código nativo es una historia diferente. Muchas aplicaciones, especialmente juegos, aplicaciones de cámara, herramientas de aprendizaje automático y cualquier cosa que realice un procesamiento pesado de audio o video, incluyen bibliotecas nativas escritas en C o C++ a través del NDK de Android. Esas bibliotecas se compilan con anticipación en código de máquina para un conjunto de instrucciones específico, y un chip construido para un conjunto de instrucciones generalmente no puede ejecutar código de máquina escrito para otro diferente. Esa es la razón por la que las ABI existen como algo que vale la pena entender: en el momento en que una aplicación incluye incluso una biblioteca .so nativa, su compatibilidad queda ligada a las arquitecturas para las que se creó esa biblioteca.

Las arquitecturas con las que te encontrarás

Solía ​​haber más variedad en este espacio (¿recuerdas armeabi o MIPS?), pero para 2026 el campo se ha reducido a cuatro ABI que vale la pena conocer:

ABIAncho de brocaDispositivos típicosNotas
arm64-v8aBRAZO de 64 bitsPrácticamente todos los teléfonos vendidos desde aproximadamente 2019El objetivo predeterminado para nuevas aplicaciones; Google ha requerido soporte de 64 bits para los nuevos envíos de Play Store desde hace varios años.
armeabi-v7aBRAZO de 32 bitsDispositivos más antiguos o económicos y algunos teléfonos de bajo costo aún se venden en los mercados emergentesTodavía lo incluyen muchas aplicaciones para compatibilidad con versiones anteriores, aunque la mayoría de los dispositivos activos ya no lo necesitan.
x86Intel de 32 bitsViejas tabletas basadas en Intel, emuladores heredadosMayormente obsoleto; Hoy en día, rara vez encontrará un teléfono x86 de 32 bits real.
x86_64Intel de 64 bitsAlgunas Chromebooks, emuladores de Android de escritorio, algunas tabletas x86Importante si prueba aplicaciones en un emulador como un Android Studio AVD basado en x86 o ciertas compilaciones de BlueStacks.

Si tiene un teléfono comprado en los últimos cinco o seis años, es casi seguro que sea arm64-v8a. Las excepciones que vale la pena recordar son los emuladores y Chromebooks, que con frecuencia se ejecutan en x86_64, ya que coincide con la CPU subyacente de la computadora portátil o de escritorio.

Por qué las aplicaciones se molestan en enviar varias compilaciones

Una pregunta obvia es por qué los desarrolladores no simplemente agrupan las bibliotecas nativas de cada arquitectura en un solo APK y terminan con eso. Algunas aplicaciones hacen exactamente eso y se llama APK universal o "gordo". La desventaja es el tamaño. Un juego con bibliotecas nativas para arm64-v8a, armeabi-v7a, x86 y x86_64, todas juntas, puede fácilmente duplicar o triplicar su tamaño en comparación con una compilación que contenga solo la arquitectura que su dispositivo necesita. Multiplique eso por millones de instalaciones y verá una cantidad realmente significativa de ancho de banda y almacenamiento desperdiciados, para código que nunca se ejecutará en ese dispositivo.

Para evitar ese desperdicio, Google Play y el formato Android App Bundle dividen una aplicación en un pequeño APK base más una serie de APK de configuración, uno de los cuales está dedicado a la arquitectura. Cuando su teléfono solicita la aplicación, Play Store entrega el APK base junto con solo la división de arquitectura que coincide con su chip, junto con las divisiones de idioma y densidad de pantalla coincidentes. Termina con una instalación que se comporta como una sola aplicación pero que se ensambla a partir de varias piezas diseñadas específicamente detrás de escena.

Cómo utilizan esto los APK divididos y los paquetes de aplicaciones

Si alguna vez abrió un paquete .apks o .xapk y notó nombres de archivos como split_config.arm64_v8a.apk, split_config.armeabi_v7a.apk, split_config.xxhdpi.apk y split_config.en.apk junto a un base.apk, ese es exactamente este sistema en acción, simplemente exportado como un conjunto de archivos en lugar de ser entregado silenciosamente por Play Store. Por lo general, es seguro instalar divisiones de densidad e idioma de forma indiscriminada, ya que un teléfono simplemente ignorará los recursos que no necesita. La división de la arquitectura es diferente: instale la incorrecta o no instale la correspondiente y se encontrará con verdaderos problemas.

Cuando usa un convertidor para fusionar un paquete dividido nuevamente en un único APK instalable, el proceso de fusión tiene que elegir qué arquitectura se divide para plegar. Un buen convertidor mantiene cada división de arquitectura que sea realmente útil, o le permite elegir, en lugar de guardar silenciosamente solo una y esperar que coincida con su dispositivo.

¿Qué sucede cuando la arquitectura no coincide?

Hay dos modos de falla distintos que vale la pena conocer, porque se ven y se sienten diferentes para un usuario normal.

El primero es un fracaso total de la instalación. Si una aplicación se construye casi en su totalidad alrededor de código nativo sin ningún respaldo significativo, el administrador de paquetes de Android se negará a instalarla, generalmente generando un error como INSTALL_FAILED_NO_MATCHING_ABIS. Ni siquiera podrás abrir la aplicación; El instalador te detiene en la puerta.

El segundo resultado, más frustrante, es un éxito parcial silencioso. Si una aplicación tiene un punto de entrada Java o Kotlin que se carga bien por sí solo, pero luego intenta llamar a una biblioteca nativa que simplemente no está presente para su arquitectura, la instalación se completa normalmente. Todo se ve bien hasta que tocas el ícono, momento en el cual la aplicación falla casi de inmediato, a menudo con un UnsatisfiedLinkError enterrado en los registros. Esta es la clásica historia de "lo convertí, lo instalé y luego se cierra instantáneamente", y casi siempre es un problema de arquitectura en lugar de un archivo corrupto.

Diagram comparing a matching arm64 APK that installs and runs successfully against an x86-only APK that fails to install on an arm64 phone with error INSTALL_FAILED_NO_MATCHING_ABIS

Cómo comprobar la arquitectura de su propio teléfono

Para la gran mayoría de personas esto es simple: si tu teléfono es de 2019 o posterior, asume arm64-v8a y continúa. Si quieres estar seguro, o se trata de un dispositivo antiguo o inusual, existen algunas opciones prácticas:

Cómo comprobar qué arquitecturas admite un APK

Antes de instalar un archivo desde fuera de Play Store, vale la pena confirmar qué contiene en lugar de adivinar. Las bibliotecas nativas de un APK se encuentran en carpetas con nombres según su arquitectura dentro del directorio lib/, como lib/arm64-v8a/ o lib/armeabi-v7a/. Cualquier herramienta que pueda inspeccionar la estructura interna de un APK puede decirle exactamente cuáles de estas carpetas están presentes, lo que le indica exactamente en qué dispositivos se ejecutará el archivo.

Verifique antes de instalar

Nuestro Herramienta de información de APK lee la carpeta interna lib/ de un APK y enumera cada arquitectura para la que fue creado, para que pueda confirmar la compatibilidad antes de descargar cualquier cosa. Cuando convierte un paquete dividido con nuestro Convertidor de XAPK a APK, también lo mostramos automáticamente después de cada conversión, enumerando las arquitecturas encontradas en el archivo combinado y marcándolo cuando a una compilación parece que le falta un segmento que los dispositivos comunes necesitarían.

APK universal frente a APK ABI única: ¿cuál debería utilizar?

MétricaAPK universal / gordoAPK de ABI única
Tamaño del archivoMás grande, a veces 2-4xPequeño, contiene sólo lo que tu dispositivo necesita
CompatibilidadFunciona en casi cualquier dispositivoSólo funciona en una arquitectura coincidente
Lo mejor paraCompartir un archivo que debería funcionar en todas partes, destinatarios insegurosTu propio dispositivo, cuando ya conoces su arquitectura
RiesgoRiesgo muy bajo de desajuste del ABIFallará o se bloqueará si elige el incorrecto

Errores comunes que la gente comete con paquetes divididos

Conclusiones clave

  • Un ABI es el conjunto de instrucciones que comprende un chip; solo importa para aplicaciones que incluyen código nativo (C/C++).
  • arm64-v8a cubre casi todos los teléfonos modernos; armeabi-v7a es para dispositivos más antiguos; x86/x86_64 aparece principalmente en emuladores y Chromebooks.
  • Las aplicaciones suelen dividirse por arquitectura para evitar enviar código nativo innecesario a cada dispositivo.
  • Una arquitectura que no coincide bloquea la instalación por completo o provoca un bloqueo inmediato después de una instalación aparentemente exitosa.
  • Puede verificar tanto la arquitectura de su dispositivo como las arquitecturas compatibles con un APK antes de instalar cualquier cosa, evitando así las conjeturas por completo.

Preguntas Frecuentes (FAQ)

¿Necesito conocer la arquitectura de mi teléfono para instalar una aplicación normal de Play Store?

No. Play Store detecta automáticamente su dispositivo y ofrece solo la arquitectura dividida correspondiente, por lo que esto solo se vuelve relevante cuando descarga APK desde fuera de Play Store.

¿Puede un APK admitir varias arquitecturas a la vez?

Sí. Un APK universal o grueso agrupa bibliotecas nativas para cada arquitectura compatible en un solo archivo. Es más grande pero se instalará en cualquier dispositivo compatible independientemente del chip.

¿Por qué mi APK convertido se instaló pero luego falló inmediatamente?

Esto suele suceder cuando la aplicación tiene una pequeña cantidad de código Java que se instala bien, pero luego intenta cargar una biblioteca nativa que no estaba incluida para la arquitectura de su dispositivo, lo que genera un UnsatisfiedLinkError en tiempo de ejecución.

¿Es arm64-v8a compatible con versiones anteriores de las aplicaciones armeabi-v7a?

Generalmente sí. La mayoría de los chips arm64-v8a también pueden ejecutar instrucciones ARM de 32 bits, por lo que un APK solo armeabi-v7a normalmente seguirá ejecutándose en un teléfono arm64 moderno, pero no al revés.

¿Seguirán existiendo dispositivos Android x86 en 2026?

Son raros en los teléfonos actuales, pero aún encontrarás x86 o x86_64 en algunas tabletas antiguas basadas en Intel, en un puñado de Chromebooks que ejecutan aplicaciones de Android y en la mayoría de los emuladores de Android de escritorio.

No es necesario que memorices nada de esto. La versión corta: los teléfonos modernos casi siempre son arm64-v8a, las aplicaciones se dividen por arquitectura para ahorrar espacio y si algo se niega a instalarse o falla inmediatamente después de abrirse, la falta de coincidencia de la arquitectura es una de las primeras cosas que vale la pena descartar antes de asumir que el archivo en sí está roto.

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.