2 votes

Pourquoi Android extrait-il les bibliothèques natives à deux endroits ?

J'ai récemment remarqué qu'Android extrait les bibliothèques natives dans le répertoire 'lib' de l'APK à deux endroits différents. Elles se trouvent dans le dossier de l'application ( /data/app/package/lib/ ) et le dossier de données de l'application ( /data/data/package/lib ). Sans compter qu'ils sont déjà contenus dans l'APK. Pour des jeux où ces bibliothèques totalisent jusqu'à 50MB chacune, cela a gaspillé 100MB de mon espace de stockage sur ma carte SD.

Pourquoi cela se produit-il ? Est-ce normal ? Existe-t-il un moyen d'empêcher ce phénomène de se produire ?

Je suis sur un Android Lollipop (5.1.1) avec une ROM Resurrection Remix pour Samsung Galaxy S3 Neo+.

4voto

Grimoire Points 2908

En réalité, le lib que vous trouverez sous /data/data/com.package/ est appelé lien symbolique . La position réelle des bibliothèques d'une application est située à /data/app/com.package/lib La raison pour laquelle les bibliothèques existent en dehors de l'APK, c'est pour des raisons de performance : puisque les APK sont des fichiers compressés, ce serait une perte de temps (et un impact négatif considérable sur la convivialité) de demander au système d'exploitation de les extraire à chaque fois que vous lancez une application, vous ne pensez pas ?

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X