web-dev-qa-db-fra.com

Différence entre app-debug.apk et app-debug-unaligned.apk

Dans Android studio avec la variante de construction définie sur le mode "débogage", j'ai trouvé deux sorties d'apk.

  • app-debug.apk
  • app-debug-unaligned.apk

Quelle est la différence entre ces fichiers?

112
Khaled Saif

L'apk non aligné est juste un apk intermédiaire. Tout d'abord, l'apk non aligné est généré. Ensuite, l'apk non aligné s'aligne et produit l'apk aligné qui est l'app-debug.apk. Vous pouvez en lire plus à ce sujet sur ici .

113
Bidhan A

Réponse courte:

app-debug-unaligned.apk = Unaligned Signed APK
app-debug.apk = APK signé aligné (RAM optimisée à l'aide de zipalign)


Longue réponse

Pour comprendre la différence, nous devons connaître les points suivants:

Processus de signature de l'application

  • générer une clé privée (keytool)
  • compiler pour obtenir l'APN non signé -> unaligned unsigned APK
  • Signer l'application en mode débogage/libération à l'aide d'une clé privée (jarsigner) -> unaligned signé APK
  • aligner l'APK (zipalign) -> aligné signé APK

Tout le processus de signature est expliqué ici .

Pourquoi avons-nous besoin du app-debug-unaligned.apk intermédiaire?

selon le docs :

Attention: zipalign ne doit être exécuté qu'après le fichier .apk a été signé avec votre clé privée. Si vous exécutez zipalign avant de signer, la procédure de signature annulera l'alignement.

Quel est l'avantage? zipalign?

L'avantage est que les fichiers APK alignés sont optimisés pour l'utilisation de RAM, de sorte qu'ils consomment moins de RAM sur les appareils. De la docs :

zipalign est un outil d'alignement d'archive qui fournit une optimisation importante aux fichiers Android de l'application (.apk). .... L'avantage est une réduction de la quantité de RAM consommée lors de l'exécution de l'application.

75
SMR