Uma maneira (bastante grosseira) de ver para qual arquitetura as bibliotecas nativas de um APK são criadas é descompactá-lo (é apenas um arquivo zip) e dar uma olhada na pasta libs - se o aplicativo contiver bibliotecas nativas, elas serão divididas em as seguintes subpastas internas (com as bibliotecas compiladas dentro delas):
Consulte Pacote de aplicativos Android para obter mais informações sobre a estrutura de um APK e a fonte da lista acima. Uma lista mais completa (incluindo MIPS64), juntamente com algumas informações sobre itens específicos da arquitetura, pode ser encontrada em uma versão arquivada da página Android Developer ABI Management , capturada em 18 de abril de 2016.
Curiosamente, segmentar uma única ABI (onde um aplicativo inclui bibliotecas nativas projetadas para uma arquitetura) não significa necessariamente que o aplicativo não será executado em dispositivos que usam outras arquiteturas. O ARMv8-a, por exemplo, é compatível com o ARM e o ARMv7-a, e os dispositivos Android x86 da Intel contêm uma camada de conversão proprietária que permite que o código ARM seja executado em dispositivos x86 (permitindo que aplicativos apenas ARM sejam executados em plataformas x86). A lista dos ABIs que um dispositivo Android pode executar podem ser encontrados na ro.product.cpu.abilist
propriedade, que pode ser alcançado em um shell (por exemplo, através de um aplicativo de terminal no dispositivo, ou sobre adb usando adb shell
) usando o getprop
comando: getprop ro.product.cpu.abilist
.