zipalign

zipalign ist ein Tool zum Ausrichten des ZIP-Archivs, das dafür sorgt, dass alle nicht komprimierten Dateien im Archiv am Anfang der Datei ausgerichtet werden. Dadurch kann direkt über mmap(2) auf die Dateien zugegriffen werden, sodass diese Daten nicht in den RAM kopiert werden müssen und die Arbeitsspeichernutzung der App reduziert wird.

Optimieren Sie Ihre APK-Datei mit zipalign, bevor Sie sie an Endnutzer verteilen. Wenn Sie Builds mit Android Studio erstellen, das das Android Gradle-Plug-in (AGP) verwendet, erfolgt dies automatisch. In diesem Fall sollten Sie weiterhin zipalign verwenden, um zu prüfen, ob das APK ausgerichtet ist, Sie müssen es aber nicht ausrichten. Diese Dokumentation ist hauptsächlich für Administratoren benutzerdefinierter Build-Systeme gedacht.

Achtung: Sie müssen zipalign an einer bestimmten Stelle im Build-Prozess verwenden. Das hängt davon ab, welches App-Signaturtool Sie verwenden:

  • Wenn du apksigner nutzt, muss zipalign verwendet werden, bevor die APK-Datei signiert wurde. Wenn Sie Ihr APK mit apksigner signieren und weitere Änderungen am APK vornehmen, wird seine Signatur ungültig.
  • Wenn du jarsigner verwendest (nicht empfohlen), muss zipalign verwendet werden, nachdem die APK-Datei signiert wurde.

Zum Erreichen einer Ausrichtung ändert zipalign die Größe des Felds "extra" in den ZIP-Abschnitten unter Header für lokale Dateien. Durch diesen Vorgang können auch vorhandene Daten in den "extra"-Feldern geändert werden.

Nutzung

Wenn dein APK gemeinsam genutzte Bibliotheken (.so-Dateien) enthält, verwende -p, damit sie auf eine für mmap(2) geeignete 4KiB-Seitengrenze ausgerichtet sind. Bei anderen Dateien, deren Ausrichtung durch das obligatorische Ausrichtungsargument für zipalign bestimmt wird, wird Android Studio sowohl auf 32-Bit- als auch auf 64-Bit-Systemen auf 4 Byte ausgerichtet.

So richten Sie infile.apk aus und speichern es als outfile.apk:

zipalign -p -f -v 4 infile.apk outfile.apk

Verwenden Sie den folgenden Befehl, um die Ausrichtung von existing.apk zu bestätigen. Wenn du Android Studio oder AGP zum Erstellen von Builds verwendest, solltest du mit diesem Befehl überprüfen, ob dein APK richtig ausgerichtet ist.

zipalign -c -v 4 existing.apk

Optionen

In der folgenden Tabelle sind die verfügbaren zipalign-Optionen aufgeführt:

Option Beschreibung
Prüft nur die Ausrichtung (verändert die Datei nicht).
Überschreibt die vorhandene Ausgabedatei.
– Std. Zeigt die Toolhilfe an.
Nicht komprimierte .so-Dateien werden auf der Seite ausgerichtet.
– V Ausführliche Ausgabe.
– Z Wird mit Zopfli neu komprimiert.