Unterschied zwischen app-debug.apk und app-debug-unaligned.apk

113

In Android Studio mit Build-Variante im "Debug" -Modus habe ich zwei Ausgänge von apk gefunden

  • app-debug.apk
  • app-debug-unaligned.apk

Was sind die Unterschiede zwischen diesen Dateien?

Khaled Saif
quelle

Antworten:

113

Die nicht ausgerichtete apk ist nur eine Zwischen-apk. Zunächst wird die nicht ausgerichtete apk generiert. Dann wird das nicht ausgerichtete apk ausgerichtet und erzeugt das ausgerichtete apk, das die app-debug.apk ist. Sie können weitere Informationen über lesen hier .

Bidhan
quelle
75

Kurze Antwort:

app-debug-unaligned.apk= Unaligned Signed APK
app-debug.apk= Aligned Signed APK (RAM optimiert mit zipalign)


Lange Antwort

Um den Unterschied zu verstehen, müssen wir die folgenden Punkte kennen:

App-Signaturprozess

  • einen privaten Schlüssel generieren (keytool)
  • kompilieren, um die nicht signierte APK zu erhalten -> nicht ausgerichtete nicht signierte APK
  • Signieren Sie die App im Debug- / Release-Modus mit dem privaten Schlüssel (Jarsigner) -> nicht ausgerichtete signierte APK
  • APK ausrichten (zipalign) -> signierte signierte APK

Der gesamte Signaturprozess wird hier erklärt .

Warum brauchen wir überhaupt das Intermediate app-debug-unaligned.apk?

gemäß 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.

Was ist der Vorteil? zipalign?

Der Vorteil ist, dass ausgerichtete APKs für die RAM-Nutzung optimiert sind, sodass sie weniger RAM in den Geräten verbrauchen. Aus den Dokumenten :

zipalign ist ein Archivausrichtungstool, das wichtige Optimierungen für Android-Anwendungsdateien (.apk) bietet. .... Der Vorteil ist eine Reduzierung des RAM-Ausstoßes beim Ausführen der Anwendung.

SMR
quelle