Como descobrir a versão do Android e a arquitetura da CPU (arm64-v8a, armeabi-v7a, x86_64)
Como ver a versão do Android e as ABIs aceitas (arm64-v8a, armeabi-v7a, x86_64), fugir das armadilhas de 32 e 64 bits e escolher o APK certo.
As páginas de download costumam oferecer o mesmo app em várias versões: uma para arm64-v8a, outra para armeabi-v7a, um arquivo "universal" e, às vezes, builds para densidades de tela ou versões mínimas do Android diferentes. Escolher a errada termina em "App não instalado" ou num app que instala mas não abre. Duas informações do seu celular resolvem a escolha: a versão do Android que ele roda e as arquiteturas de CPU (ABIs) que o sistema aceita. Veja como descobrir as duas e como comparar com um arquivo.
Descubra a versão do Android
O número da versão fica nas Configurações, mas o caminho muda conforme o fabricante:
- Pixel e a maioria dos aparelhos com Android quase puro: Configurações > Sobre o telefone > Versão do Android.
- Samsung: Configurações > Sobre o telefone > Informações do software > Versão do Android.
- Outras marcas: normalmente Configurações > Sobre o telefone ou Configurações > Meu dispositivo. Se não achar, digite "versão do Android" na busca no topo das Configurações.
Não confunda a versão do Android com a versão da interface do fabricante (One UI, HyperOS, ColorOS etc.) nem com a data do patch de segurança que aparece na mesma tela. As páginas de download e os requisitos dos apps falam da versão do Android, às vezes como nível de API:
| Versão do Android | Nível de API |
|---|---|
| 8.0 / 8.1 | 26 / 27 |
| 9 | 28 |
| 10 | 29 |
| 11 | 30 |
| 12 / 12L | 31 / 32 |
| 13 | 33 |
| 14 | 34 |
| 15 | 35 |
| 16 | 36 |
Se um arquivo diz "Android 9+" ou "minSdk 28", seu celular precisa ter Android 9 ou posterior.
Descubra a arquitetura da CPU
Essa é mais difícil, porque as Configurações quase nunca mostram. O nome comercial do processador também não responde: o que importa é quais ABIs o sistema instalado aceita, e isso nem sempre é igual ao que o chip conseguiria rodar.
Opção 1: um app de informações do aparelho
Apps de informações do sistema mostram as ABIs aceitas, geralmente numa aba "Sistema", "CPU" ou "Dispositivo", com um rótulo como ABIs suportadas, Conjuntos de instruções ou ABI. No catálogo do TechBigs, o DevCheck Device & System Info e o G-CPU são ferramentas de informações de hardware e sistema desse tipo. Os nomes dos rótulos mudam de um app para outro, então procure uma lista com valores como arm64-v8a.
Opção 2: adb pelo computador
Se você já configurou a depuração USB, estes comandos leem os valores direto do sistema:
adb shell getprop ro.product.cpu.abilist
adb shell getprop ro.product.cpu.abi
adb shell getprop ro.build.version.release
adb shell getprop ro.build.version.sdk
O abilist devolve todas as ABIs que o sistema aceita, em ordem de preferência, por exemplo arm64-v8a,armeabi-v7a,armeabi. O abi devolve a principal. Os dois últimos mostram a versão do Android e o nível de API.
O que significa cada nome de ABI
- arm64-v8a: ARM de 64 bits. É a ABI principal na grande maioria dos celulares Android em uso hoje.
- armeabi-v7a: ARM de 32 bits. Aparece em celulares antigos e de entrada, e muitos aparelhos de 64 bits aceitam essa ABI junto com a arm64-v8a.
- x86_64 e x86: processadores Intel e AMD. Você vai ver essas ABIs principalmente em emuladores e alguns Chromebooks, além de poucos tablets antigos.
- armeabi: uma ABI ARM de 32 bits obsoleta. Apps atuais não trazem mais.
Três casos que costumam confundir
Chip de 64 bits com sistema de 32 bits. Alguns celulares baratos, principalmente as edições leves Android Go, rodam um sistema de 32 bits num processador de 64 bits para economizar memória. O abilist deles mostra só armeabi-v7a (e talvez armeabi). Uma build só para arm64 não vai instalar, não importa o que diga a ficha técnica do chip. Escolha armeabi-v7a.
Celular só de 64 bits. Alguns celulares recentes abandonaram de vez o suporte a 32 bits, e o abilist deles mostra só arm64-v8a. Um app feito só para armeabi-v7a não instala nem roda neles. Procure uma build arm64-v8a ou universal.
Aparelhos x86 com apps ARM. Emuladores e Chromebooks com Intel ou AMD muitas vezes conseguem rodar apps só ARM por meio de uma camada de compatibilidade que converte o código ARM, mas nem sempre, e o desempenho e a compatibilidade variam. Se houver uma build x86_64, prefira essa.
Como escolher a build certa
Siga esta ordem:
- Primeiro a versão do Android. Se a versão mínima pedida pelo arquivo for maior que a sua, nenhuma outra escolha vai ajudar. Procure uma versão mais antiga do app que aceite a sua.
- A universal é o padrão seguro. Um APK universal traz bibliotecas nativas para várias ABIs. É maior, mas instala em qualquer arquitetura suportada.
- Se não houver, use a primeira da sua lista de ABIs. Na maioria dos celulares é a arm64-v8a. Se a sua lista começa com armeabi-v7a, use essa.
- Variantes por densidade de tela. Arquivos marcados como
nodpiservem para qualquer tela. Se aparecerem builds por densidade,adb shell wm densitymostra a do seu celular; o Android usa faixas como 320 para xhdpi, 480 para xxhdpi e 640 para xxxhdpi. Na dúvida, fique com nodpi. - Bundles resolvem isso sozinhos. Num conjunto dividido, o código da CPU fica num arquivo com nome como
split_config.arm64_v8a.apk, e o instalador de bundles escolhe a divisão certa. Em APK, XAPK, APKS e APKM está explicado como funcionam os conjuntos divididos.
Veja quais arquiteturas um APK inclui
Um APK é um arquivo ZIP, e o código nativo fica em pastas lib/<abi>/. No computador:
- macOS ou Linux:
unzip -l app.apk | grep lib/ - Windows 10 ou posterior, no Prompt de Comando:
tar -tf app.apk | findstr lib/
Se aparecerem lib/arm64-v8a/ e lib/armeabi-v7a/, o APK aceita as duas. Se não houver nenhuma pasta lib/, o app não tem código nativo e roda em qualquer arquitetura. Uma incompatibilidade aparece na instalação como INSTALL_FAILED_NO_MATCHING_ABIS; o guia para resolver "App não instalado" trata desse código e dos outros erros comuns. Já que o arquivo está aberto no computador, aproveite para verificar o checksum SHA-256 com o que aparece na página de download.
Perguntas frequentes
A arm64-v8a é mais rápida que a armeabi-v7a no mesmo celular? Normalmente é a melhor escolha: builds de 64 bits podem usar mais registradores e instruções mais modernas, e alguns celulares nem rodam mais código de 32 bits. Se o seu aceita as duas, fique com a arm64-v8a.
A quantidade de RAM define qual build eu preciso? Não diretamente. A RAM influencia a fluidez do app, não a ABI que ele exige. A única relação é indireta: alguns celulares com pouca RAM vêm com sistema de 32 bits, e isso aparece na lista de ABIs.
Escolhi a arquitetura certa e mesmo assim não instala. Por quê? A ABI é só uma das verificações. Conflito de assinatura, downgrade, download incompleto e falta de espaço geram o mesmo erro genérico. Procure uma cópia nova em apps ou jogos e siga o guia de erros de instalação passo a passo.