Pregunta

En nuestra aplicación de Android tenemos dos archivos .so:uno para x86 y otro para ARM.Son bastante grandes y están aumentando el tamaño del .apk de 7 MB a 11 MB.

Dado que los archivos .so son entidades en tiempo de ejecución, deben estar dentro de los archivos .apk.

¿Hay alguna forma de reducir el tamaño de los archivos .so o usarlos/construirlos en mi .apk de una mejor manera?

Saqué un punto de aquí http://developer.sonymobile.com/2012/01/31/tips-for-reduction-apk-file-size/ es decir.para eliminar los símbolos de depuración del código nativo.

¿Fue útil?

Solución

La Play Store te permite cargar APK separados por arquitectura de CPU.Por lo tanto, tendría un APK ARM y un APK x86, en lugar de un APK con ambos.

Configurar dichos APK es relativamente simple con Gradle para Android: use un archivo separado sabor del producto para cada arquitectura.Supongo que hay recetas para hacer esto fuera de Gradle para Android, aunque sospecho que es más complicado.

Otro enfoque es simplemente no distribuir el x86. .so.Los dispositivos Android modernos con tecnología x86 tienden a tener libhoudini, lo que les permite usar ARM .so Bibliotecas NDK.Sin embargo, al igual que con el emulador de Android, la emulación de ARM en x86 es lenta, por lo que necesitarás probar y ver si tu aplicación funciona aceptablemente en x86.

Y, como dice el Sr.Stratton sugiere, especialmente si las bibliotecas son suyas, ver si puede recortar el tamaño de la biblioteca.ProGuard no elimina el código nativo de la misma manera que elimina el código Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top