zipalign
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
zipalign
est un outil d'alignement d'archive ZIP. Il permet de s'assurer que tous les fichiers non compressés contenus dans les archives sont alignés par rapport au début du fichier. Vous pouvez ainsi accéder directement à ces fichiers via mmap(2)
, ce qui vous évite de devoir copier ces données en mémoire RAM et réduit l'utilisation de la mémoire de votre application.
Utilisez zipalign
pour optimiser votre fichier APK avant de le distribuer aux utilisateurs finaux. Si vous utilisez Android Studio, qui repose sur le plug-in Android Gradle, cette opération est automatique. Dans ce cas, vous devez tout de même utiliser zipalign
pour vérifier que l'APK est aligné, mais vous n'avez pas besoin de l'aligner. Cette documentation est principalement destinée aux responsables de systèmes de compilation personnalisés.
Attention : Vous devez utiliser zipalign
à un stade spécifique du processus de compilation. Ce stade dépend de l'outil de signature d'application que vous utilisez :
-
Avec
apksigner
, zipalign
doit être utilisé avant la signature du fichier APK. Si vous signez votre fichier APK à l'aide d'apksigner
puis le modifiez, sa signature n'est plus valide.
-
Avec
jarsigner
(non recommandé), zipalign
doit être utilisé après la signature du fichier APK.
Pour assurer l'alignement, zipalign
modifie la taille du champ "extra"
dans les sections d'en-tête du fichier local. Ce processus peut également modifier les données existantes dans les champs "extra"
.
Utilisation
Si votre APK contient des bibliothèques partagées (fichiers .so
), utilisez -P 16
pour s'assurer qu'elles sont alignées avec une limite de page de 16 Kio adaptée à mmap(2)
sur des appareils de 16 Kio ou 4 Kio. Pour les autres fichiers, dont l'alignement est déterminé par le
l'argument d'alignement obligatoire sur zipalign
, doit être aligné sur 4 octets
sur les systèmes 32 bits et 64 bits.
Pour aligner infile.apk
et l'enregistrer sous outfile.apk
:
zipalign -P 16 -f -v 4 infile.apk outfile.apk
Pour confirmer l'alignement d'existing.apk
, utilisez la commande suivante.
zipalign -c -P 16 -v 4 existing.apk
Options
Le tableau suivant indique les options zipalign
disponibles :
Option |
Description |
-c |
Vérifie uniquement l'alignement (sans modification du fichier). |
-f |
Écrase le fichier de sortie existant. |
-h |
Affiche l'aide de l'outil. |
-P <taille_page_kb> |
aligne les fichiers .so non compressés sur la taille de page spécifiée en Kio. Options valides
pour <pagesize_kb> sont 4, 16 et 64. |
-p |
4 Kio aligne les fichiers .so non compressés. Nous vous recommandons d'utiliser
-P 16 à la place, car -p est obsolète. |
-v |
Sortie détaillée. |
-z |
Effectue une nouvelle compression à l'aide de Zopfli. |
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# zipalign\n\n`zipalign` is a zip archive alignment tool that helps ensure that all uncompressed files\nin the archive\nare aligned relative to the start of the file. This lets the files be accessed directly via\n[mmap(2)](https://man7.org/linux/man-pages/man2/mmap.2.html)`\n`, removing the need to copy this data in RAM and reducing your app's memory usage.\n\nUse `zipalign` to optimize your APK file before distributing it to\nend users. If you build using Android Studio, which uses the Android Gradle plugin (AGP), this is\ndone automatically. In this case, you should still use `zipalign` to verify that the APK\nis aligned, but you don't need to align it. This documentation is mainly for maintainers of\ncustom build systems. \n\n**Caution:** You must use `zipalign` at a specific point in\nthe build process. That point depends on which app-signing tool you use:\n\n- If you use [apksigner](/studio/command-line/apksigner), `zipalign` must be used **before** the APK file has been signed. If you sign your APK using `apksigner` and make further changes to the APK, its signature is invalidated.\n- If you use [jarsigner](//docs.oracle.com/javase/tutorial/deployment/jar/signing.html) (not recommended), `zipalign` must be used **after** the APK file has been signed.\n\nTo achieve alignment, `zipalign` alters the size of the `\"extra\"` field in the zip **Local File Header**\nsections. This process can also alter existing data in the `\"extra\"` fields.\n\nUsage\n-----\n\nIf your APK contains shared libraries (`.so` files), use `-P 16`\nto ensure that they're aligned to a 16KiB page boundary suitable for `mmap(2)`\nin both 16KiB and 4KiB devices. For other files, whose alignment is determined by the\nmandatory alignment argument to `zipalign`, should be aligned to 4 bytes\non both 32-bit and 64-bit systems.\n\nTo align `infile.apk` and save it as `outfile.apk`: \n\n```\nzipalign -P 16 -f -v 4 infile.apk outfile.apk\n```\n\nTo confirm the alignment of `existing.apk`, use the following command. \n\n```\nzipalign -c -P 16 -v 4 existing.apk\n```\n\n### Options\n\nThe following table lists the available `zipalign` options:\n\n| Option | Description |\n|--------------------|-------------------------------------------------------------------------------------------------------------------------|\n| -c | Checks alignment only (does not modify file). |\n| -f | Overwrites existing output file. |\n| -h | Displays tool help. |\n| -P \\\u003cpagesize_kb\\\u003e | aligns uncompressed `.so` files to the specified page size in KiB. Valid options for `\u003cpagesize_kb\u003e` are 4, 16, and 64. |\n| -p | 4KiB page-aligns uncompressed `.so` files. It is recommended to use `-P 16` instead, as `-p` is deprecated. |\n| -v | Verbose output. |\n| -z | Recompresses using Zopfli. |"]]