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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top