warum wird eine nicht ausgerichtete apk benötigt?

151

Android Gradle erzeugt apk in zwei Binärdateien: nicht ausgerichtet und ausgerichtet.

Das Dokument sagte ...

Nachdem Sie die APK mit Ihrem privaten Schlüssel signiert haben, führen Sie zipalign für die Datei aus. Dieses Tool stellt sicher, dass alle nicht komprimierten Daten mit einer bestimmten Byte-Ausrichtung relativ zum Dateianfang beginnen. Das Sicherstellen der Ausrichtung an 4-Byte-Grenzen bietet eine Leistungsoptimierung bei der Installation auf einem Gerät. Bei der Ausrichtung kann das Android-System Dateien mit mmap () lesen, auch wenn sie Binärdaten mit Ausrichtungsbeschränkungen enthalten, anstatt alle Daten aus dem Paket zu kopieren. Der Vorteil ist eine Reduzierung des von der laufenden Anwendung verbrauchten Arbeitsspeichers.

Es scheint, als würde die Verteilung von apk dringend empfohlen. Für mich verwende ich nur ausgerichtete apk als Ergebnisprodukt und ignoriere nicht ausgerichtete apk.

Hat unaligned apk während der Entwicklung eine besondere Verwendung?

Youngjae
quelle

Antworten:

197

Es ist ein zweistufiger Prozess. Die nicht ausgerichtete apk ist nur ein Zwischenprodukt.

  1. die nicht ausgerichtete apk wird generiert
  2. das nicht ausgerichtete wird ausgerichtet und erzeugt das ausgerichtete apk
flx
quelle
3
Danke für die schnelle Antwort. Wir können also sagen, dass unausgerichtete apk nur eine Zwischensache ist?
Youngjae
1
Richtig. Einige IDEs erstellen es als Endprodukt für den Debug-Build, um den Build-Prozess zu beschleunigen.
Flx
2
hilft unalign apk file beim Debuggen von Anwendungen? Danke :)
hqt
11
nein, tut es nicht. Es ist im Grunde der gleiche Inhalt wie die ausgerichtete Zip-Datei, nur dass die Dateigrenzen nicht an 4b-Blöcken ausgerichtet sind.
Flx
49

Die nicht ausgerichtete (signierte) APK wird benötigt, da durch das Signieren einer ausgerichteten APK die Ausrichtung rückgängig gemacht wird.

Aus den Dokumenten :

Achtung: zipalign darf erst ausgeführt werden, nachdem die APK-Datei mit Ihrem privaten Schlüssel signiert wurde. Wenn Sie vor dem Signieren Zipalign ausführen, wird die Ausrichtung durch das Signieren rückgängig gemacht.

Weitere Informationen finden Sie in dieser Antwort . Hier ist der detaillierte Erstellungsprozess: Geben Sie hier die Bildbeschreibung ein

SMR
quelle