Un APK Android contient généralement ces éléments.
assets/
lib/
META-INF/
res/
AndroidManifest.xml
classes.dex
Lors de l'installation, le fichier APK est copié vers /data/app
y classes.dex
est extraite et "optimisée" en exécutant dex2oat
sur elle (sur Android 5+ lib/
est également extraite). Le résultat de l'optimisation est stocké dans /data/dalvik-cache/
Une application doit donc être optimisée uniquement une fois par installation ou mise à jour . Tout le reste est conservé dans l'APK. La première réponse est donc très claire : les choses comme assets
y res
qui sont nécessaires à l'application doivent être fournis, et ils se trouvent dans l'APK. Le fichier APK est conservé à des fins de support. Si vous supprimez un APK, l'application définitivement ne démarre pas du tout. (App : Où sont mes avoirs ?)
Deuxièmement, Google Play ajout de la prise en charge de la "mise à jour Delta". très il y a longtemps . Dans la procédure de mise à jour delta, la différence entre l'ancien paquet et le nouveau paquet est calculée. Ensuite, GP télécharge le "Delta" et applique les modifications à l'APK original pour obtenir l'APK mis à jour, réduisant ainsi la taille du téléchargement.
Un APK est toujours signé. Cela peut empêcher toute modification malveillante du paquet. Vous ne voulez certainement pas installer une application modifiée sans savoir ce qui a été changé, ou si un virus a été injecté. Le site META-INF/
à l'intérieur de l'APK fonctionne à cet effet. Les modifications non officielles se traduiront par une signature non conforme, et le système Android refusera d'installer l'application moddée.
De plus, lorsque vous mettez à jour votre système d'exploitation Android, tous les fichiers dex sont à nouveau "optimisés" afin que vous n'ayez pas besoin de les réinstaller un par un. Comme il est dit ci-dessus, l'optimisation nécessite classes.dex
de l'emballage d'origine.