x86_64 - ndk bundle android studio




Por que usar o código armeabi-v7a sobre o código armeabi? (2)

Em vez de ter um arquivo APK gordo, gostaria de usar apenas os arquivos armeabi e remover a pasta armeabi-v7a.

O oposto é uma estratégia muito melhor. Se você tiver o minSdkVersion para 14 e carregar o seu apk para a loja de jogos, notará que suportará o mesmo número de dispositivos, independentemente de você suportar o armeabi ou não. Portanto, não há dispositivos com Android 4 ou superior que possam se beneficiar do armeabi .

É provavelmente por isso que o Android NDK nem suporta mais armeabi conforme a revisão r17b. 1

No meu projeto atual, faço uso de vários arquivos .so. Estes estão localizados na pasta armeabi e armeabi-v7a. Infelizmente, um dos arquivos .so é um 6MB e eu preciso reduzir o tamanho do arquivo. Em vez de ter um arquivo APK gordo, gostaria de usar apenas os arquivos armeabi e remover a pasta armeabi-v7a.

De acordo com a documentação do NDK, o código armeabi-v7a é um código armeabi estendido que pode conter instruções extras da CPU. Isso tudo vai além da minha experiência, mas eu questiono por que alguém gostaria de ter os códigos armeabi-v7a e armeabi. Deve haver uma boa razão para ter os dois, certo?

Nos meus dispositivos de teste tudo parece funcionar bem. Estes têm processadores ARM v7. É seguro assumir que tudo funciona agora?


Depende do que seu código nativo faz, mas o v7a tem suporte para operações de ponto flutuante de hardware, o que faz uma enorme diferença. O armeabi funcionará bem em todos os dispositivos, mas será muito mais lento e não tirará vantagem dos recursos de CPU dos dispositivos mais recentes. Faça alguns benchmarks para sua aplicação em particular, mas remover os binários armeabi-v7a geralmente não é uma boa idéia. Se você precisa reduzir o tamanho, você pode querer ter dois instrumentos separados para dispositivos mais antigos (armeabi) e mais novos (armeabi-v7a).







armv7