Un moyen (plutôt rudimentaire) de voir pour quelle architecture les bibliothèques natives d'un APK sont construites est de le dézipper (ce n'est qu'un fichier zip) et de jeter un œil au dossier libs - si l'application contient des bibliothèques natives, elles seront réparties dans les sous-dossiers suivants (avec les bibliothèques compilées à l'intérieur) :
Voir Paquet d'applications Android pour plus d'informations sur la structure d'un APK, et la source de la liste ci-dessus. Une liste plus complète (incluant MIPS64), ainsi que des informations sur des choses spécifiques à l'architecture, peut être trouvée sur une version archivée du site web de l Développeur Android Gestion ABI page, capturée le 18 avril 2016.
Il est intéressant de noter que le fait de cibler une seule ABI (où une application comprend des bibliothèques natives conçues pour une architecture) ne signifie pas nécessairement que l'application ne fonctionnera pas sur des appareils utilisant d'autres architectures. L'architecture ARMv8-a, par exemple, est rétrocompatible avec ARM et ARMv7-a, et les appareils Android x86 d'Intel contiennent une couche de traduction propriétaire qui permet au code ARM de s'exécuter sur des appareils x86 (ce qui permet aux applications exclusivement ARM de fonctionner sur des plates-formes x86). Une liste des ABI qu'un appareil Android peut exécuter se trouve dans la page d'accueil du site Web d'Android. ro.product.cpu.abilist
qui peut être obtenue dans un shell (par exemple, via une application de terminal sur l'appareil, ou par l'intermédiaire de adb en utilisant adb shell
) en utilisant le getprop
commandement : getprop ro.product.cpu.abilist
.