151 votes

pourquoi un apk non aligné est nécessaire ?

Android gradle produit apk en deux binaires : unaligned et aligned.

El document a 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 avec un alignement d'octets particulier, par rapport au début du fichier. Garantir l'alignement aux limites de 4 octets permet d'optimiser les performances lorsqu'il est installé sur un appareil. Lorsqu'il est aligné, le système Android est capable de lire les fichiers avec mmap(), même s'ils contiennent des données binaires avec des restrictions d'alignement, plutôt que de copier toutes les données du paquet. L'avantage est une réduction de la quantité de RAM consommée par l'application en cours d'exécution.

Il semble que l'apk aligné soit fortement recommandé à la distribution. Pour ma part, j'utilise uniquement aligné apk comme produit de résultat et ignorer non aligné apk.

L'apk non aligné a-t-il un usage particulier pendant le développement ?

197voto

flx Points 6617

Il s'agit d'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é est aligné et produit l'apk aligné

3 votes

Merci pour cette réponse rapide. Donc, nous pouvons dire que l'apk non aligné est juste une chose provisoire ?

1 votes

Bien. Certains IDEs le produisent comme produit final pour la construction de débogage afin d'accélérer le processus de construction.

2 votes

Est-ce que le fait de désaligner le fichier apk aide à déboguer l'application ? Merci :)

49voto

SMR Points 1816

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 effectué que après le fichier .apk a été signé avec votre clé privée. Si vous effectuez un alignement zip avant de signer, la procédure de signature annulera l'alignement.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X