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

113

Dans le studio Android 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

Quelles sont les différences entre ces fichiers?

Khaled Saif
la source

Réponses:

113

L'apk non aligné n'est qu'un apk intermédiaire. Tout d'abord, l'apk non aligné est généré. Ensuite, l'apk non aligné est aligné et produit l'apk aligné qui est le app-debug.apk. Vous pouvez en savoir plus ici .

Bidhan
la source
75

Réponse courte:

app-debug-unaligned.apk= APK signé
app-debug.apknon aligné = 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 d'application

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

L'ensemble du processus de signature est expliqué ici .

Pourquoi avons-nous besoin de l'intermédiaire app-debug-unaligned.apk?

selon les docs :

Attention: zipalign ne doit être effectué qu'après signature du fichier .apk avec votre clé privée. Si vous effectuez zipalign avant de signer, la procédure de signature annulera l'alignement.

Quel est l'avantage? zipalign?

L'avantage est que les APK alignés sont optimisés pour l'utilisation de la RAM, de sorte qu'ils consommeront moins de RAM dans les appareils. À partir de la documentation :

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

SMR
la source