Reduzindo o tamanho do apk que possui arquivos .so
-
21-12-2019 - |
Pergunta
Em nosso aplicativo Android, temos dois arquivos .so:um para x86 e outro para ARM.Eles são bem grandes e estão aumentando o tamanho do .apk de 7 MB para 11 MB.
Como os arquivos .so são entidades de tempo de execução, eles precisam estar dentro dos arquivos .apk.
Existe alguma maneira de reduzir o tamanho dos arquivos .so ou usá-los/construí-los em meu .apk de uma maneira melhor?
Eu consegui um ponto daqui http://developer.sonymobile.com/2012/01/31/tips-for-reduce-apk-file-size/ ou sejapara remover os símbolos de depuração do código nativo.
Solução
A Play Store permite que você fazer upload de APKs separados por arquitetura de CPU.Portanto, você teria um APK ARM e um APK x86, em vez de um APK com ambos.
Configurar esses APKs é relativamente simples com o Gradle para Android – use um arquivo separado sabor do produto para cada arquitetura.Presumo que existam receitas para fazer isso fora do Gradle para Android, embora eu suspeite que seja mais complicado.
Outra abordagem é simplesmente não distribuir o x86 .so
.Dispositivos Android modernos com tecnologia x86 tendem a ter libhoudini
, o que lhes permite usar ARM .so
Bibliotecas NDK.No entanto, como acontece com o emulador Android, emular ARM em x86 é lento, então você precisa testar e ver se seu aplicativo tem um desempenho aceitável em x86.
E, como o Sr.Stratton sugere, especialmente se as bibliotecas forem suas, veja se você pode reduzir o tamanho da própria biblioteca.O ProGuard não elimina o código nativo da mesma forma que remove o código Java.