zipalign
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
zipalign
ist ein Tool zum Ausrichten des ZIP-Archivs, das dafür sorgt, dass alle unkomprimierten Dateien
im Archiv
relativ zum Anfang der Datei ausgerichtet sind. So kann direkt über
mmap(2)
. Du musst diese Daten nicht mehr in den RAM kopieren, um die Arbeitsspeichernutzung deiner App zu reduzieren.
Optimieren Sie Ihre APK-Datei mithilfe von zipalign
, bevor Sie sie an weitergeben.
Endanwendenden. Wenn Sie zum Erstellen Android Studio mit dem Android-Gradle-Plug-in (AGP) verwenden, ist dies
automatisch erledigt wird. In diesem Fall sollten Sie dennoch mit zipalign
überprüfen, ob das APK
ausgerichtet, aber Sie müssen es nicht ausrichten. Diese Dokumentation richtet sich hauptsächlich an
benutzerdefinierte Build-Systeme erstellen.
Achtung: Sie müssen zipalign
an einer bestimmten Stelle in
während des Build-Prozesses. Das hängt davon ab, welches App-Signaturtool Sie verwenden:
-
Wenn Sie
apksigner
verwenden, zipalign
muss verwendet werden, bevor die APK-Datei signiert wurde. Wenn Sie Ihr
Wenn Sie ein APK mit apksigner
verwenden und weitere Änderungen am APK vornehmen, wird die Signatur ungültig.
-
Wenn Sie
jarsigner
verwenden
(nicht empfohlen). zipalign
muss verwendet werden, nachdem die APK-Datei
unterzeichnet wurde.
Für eine Ausrichtung ändert zipalign
die Größe des Felds "extra"
im Header der lokalen Datei der ZIP-Datei.
. Dieser Vorgang kann auch vorhandene Daten in den "extra"
-Feldern ändern.
Nutzung
Wenn dein APK geteilte Bibliotheken (.so
Dateien) enthält, verwende -P 16
um sicherzustellen, dass sie an einer Seitengrenze von 16 KiB ausgerichtet sind, die für mmap(2)
geeignet ist
sowohl auf Geräten mit 16 KiB als auch auf 4 KiB-Geräten. Bei anderen Dateien, deren Ausrichtung durch den
Erforderliches Ausrichtungsargument für zipalign
, sollte auf 4 Byte ausgerichtet sein
sowohl auf 32-Bit- als auch auf 64-Bit-Systemen.
So richten Sie infile.apk
aus und speichern es als outfile.apk
:
zipalign -P 16 -f -v 4 infile.apk outfile.apk
Bestätigen Sie die Ausrichtung von existing.apk
mit dem folgenden Befehl.
zipalign -c -P 16 -v 4 existing.apk
Optionen
In der folgenden Tabelle sind die verfügbaren zipalign
-Optionen aufgeführt:
Option |
Beschreibung |
-C |
Prüft nur die Ausrichtung (die Datei wird nicht geändert). |
-f |
Überschreibt die vorhandene Ausgabedatei. |
- Std. |
Zeigt die Tool-Hilfe an. |
-P <pagesize_kb>
|
unkomprimierte .so -Dateien werden an die angegebene Seitengröße in KiB ausgerichtet. Gültige Optionen
für <pagesize_kb> sind 4, 16 und 64. |
-p |
Mit 4 KiB werden unkomprimierte .so -Dateien auf Seiten ausgerichtet. Es wird empfohlen,
-P 16 , da -p eingestellt wurde. |
-V |
Ausführliche Ausgabe. |
-z |
Es wird mit Zopfli komprimiert. |
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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. |"]]