web-dev-qa-db-fra.com

pourquoi apk unaligned est nécessaire?

Android gradle produit apk en deux fichiers binaires: non aligné et aligné.

Le document dit ...

Une fois que vous avez signé l'APK avec votre clé privée, exécutez zipalign sur le fichier. Cet outil garantit que toutes les données non compressées commencent par un alignement d'octet particulier, par rapport au début du fichier. Garantir l’alignement sur des limites de 4 octets fournit une optimisation des performances lorsqu’il est installé sur un périphérique. Une fois aligné, le système Android peut lire les fichiers avec mmap (), même s'ils contiennent des données binaires avec des restrictions d'alignement, au lieu de copier toutes les données du package. L'avantage est une réduction de la quantité de RAM consommée par l'application en cours d'exécution.

On dirait que aligner apk est fortement recommandé de distribuer. Pour moi, je n'utilise que aligné apk comme produit final et j'ignore non aligné apk.

Unaligned apk a-t-il une utilisation particulière pendant le développement?

151
Youngjae

C'est un processus en deux étapes. L'apk non aligné n'est qu'un produit intermédiaire.

  1. l'apk non aligné est généré
  2. le non aligné s'aligne et produit l'apk aligné
197
flx

L'APK non aligné (signé) est nécessaire car la signature d'un apk aligné annulera l'alignement.

De la 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.

Voir cette réponse pour plus. Ici est le processus de construction détaillé: enter image description here

49
SMR