Una forma (bastante cruda) de ver para qué arquitectura están construidas las bibliotecas nativas de APK es descomprimirlo (es solo un archivo zip) y echar un vistazo a la carpeta libs; si la aplicación contiene bibliotecas nativas, se dividirán en las siguientes subcarpetas dentro (con las bibliotecas compiladas dentro de estas):
Consulte el Paquete de aplicaciones de Android para obtener más información sobre la estructura de un APK y la fuente de la lista anterior. Se puede encontrar una lista más completa (incluida MIPS64), junto con información sobre cosas específicas de la arquitectura, en una versión archivada de la página de Administración de ABI para Desarrolladores de Android , capturada el 18 de abril de 2016.
Curiosamente, apuntar a un solo ABI (donde una aplicación incluye bibliotecas nativas diseñadas para una arquitectura) no necesariamente significa que la aplicación no se ejecutará en dispositivos que usan otras arquitecturas. ARMv8-a, por ejemplo, es retrocompatible con ARM y ARMv7-a, y los dispositivos Android x86 de Intel contienen una capa de traducción patentada que permite que el código ARM se ejecute en dispositivos x86 (permitiendo que las aplicaciones ARM solo se ejecuten en plataformas x86). Una lista de los ABIs que un dispositivo Android puede ejecutar se puede encontrar en la ro.product.cpu.abilist
propiedad, que puede alcanzarse en una cáscara (por ejemplo a través de una aplicación de terminal en el dispositivo, o sobre adb usando adb shell
) utilizando el getprop
comando: getprop ro.product.cpu.abilist
.