Question

Dans notre application Android, nous avons deux fichiers .so :un pour x86 et un autre pour ARM.Ils sont assez gros et augmentent la taille du .apk de 7 Mo à 11 Mo.

Étant donné que les fichiers .so sont des entités d'exécution, ils doivent se trouver dans les fichiers .apk.

Existe-t-il un moyen de réduire la taille des fichiers .so ou de mieux les utiliser/construire dans mon .apk ?

J'ai un point à partir d'ici http://developer.sonymobile.com/2012/01/31/tips-for-reducing-apk-file-size/ c'est à dire.pour supprimer les symboles de débogage du code natif.

Était-ce utile?

La solution

Le Play Store vous permet de télécharger des APK distincts par architecture de processeur.Vous auriez donc un APK ARM et un APK x86, plutôt qu’un seul APK avec les deux.

La configuration de tels APK est relativement simple avec Gradle pour Android : utilisez un fichier APK séparé. saveur du produit pour chaque architecture.Je suppose qu'il existe des recettes pour faire cela en dehors de Gradle pour Android, même si je soupçonne que c'est plus complexe.

Une autre approche consiste simplement à ne pas distribuer le x86 .so.Les appareils Android modernes alimentés par x86 ont tendance à avoir libhoudini, ce qui leur permet d'utiliser ARM .so Bibliothèques NDK.Cependant, comme avec l'émulateur Android, l'émulation d'ARM sur x86 est lente, vous devrez donc tester et voir si votre application fonctionne de manière acceptable sur x86.

Et, comme M.Stratton suggère, en particulier si les bibliothèques vous appartiennent, de voir si vous pouvez réduire la taille de la bibliothèque elle-même.ProGuard ne supprime pas le code natif de la même manière qu'il supprime le code Java.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top