web-dev-qa-db-ger.com

Warum wird nicht ausgerichtete apk benötigt?

Android Gradle produziert apk in zwei Binärdateien: unausgerichtet und ausgerichtet.

Das Dokument sagte ...

Sobald Sie das 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. Wenn Sie die Ausrichtung an 4-Byte-Grenzen sicherstellen, wird die Leistung bei der Installation auf einem Gerät optimiert. Nach dem Ausrichten kann das System Android) Dateien mit mmap () lesen, auch wenn sie Binärdaten mit Ausrichtungseinschränkungen enthalten, anstatt alle Daten aus dem Paket zu kopieren Reduzierung der Menge von RAM, die von der laufenden Anwendung verbraucht wird.

Es scheint, als würde ausgerichtet apk dringend empfohlen, um zu verbreiten. Bei mir verwende ich nur ausgerichtete apk als Ergebnisprodukt und ignoriere nicht ausgerichtete apk.

Hat unaligned apk während der entwicklung eine spezielle verwendung?

151
Youngjae

Es ist ein zweistufiger Prozess. Die unausgerichtete apk ist nur ein Zwischenprodukt.

  1. die nicht ausgerichtete apk wird generiert
  2. das unausgerichtete wird ausgerichtet und produziert das ausgerichtete apk
197
flx

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

Aus dem docs :

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

Siehe diese Antwort für mehr. Hier ist der detaillierte Erstellungsprozess: enter image description here

49
SMR