Warum sollte ich jemals nicht ausgerichtete apks verwenden?

8

Wenn ich die grelle Aufgabe "assembleDebug" starte, um nur eine Debug-Version zu bekommen, die ich auf mein Telefon lege, erzeugt es auch eine andere apk: MyApp-debug-unaligned.apk.

Ich glaube ich verstehe was "Ausrichtung" eines Zip bedeutet. Es hat die Platzierung von Dateigrenzen für das einfache Entpacken optimiert (korrigiere mich, wenn ich falsch liege). Es ist nur eine Optimierung und hat wirklich nicht viel mit Android zu tun.

Da Android alle Apps als "apks" speichert und sie nur zur Laufzeit zu entzippen scheint, wäre es vorteilhaft, nur die ausgerichteten, optimierten APKs zu installieren. Es braucht auch eine scheinbar triviale Menge an Zeit, um das Paket zip-auszurichten, aber vielleicht liegt das nur an der Größe meiner Apps.

Wann wäre eine nicht ausgerichtete zip-Datei vorteilhaft gegenüber ihrer ausgerichteten Alternative? Oder ist es nur, weil Sie eine nicht ausgerichtete Version zum Ausrichten haben müssen und der Prozess die nicht ausgerichtete Datei nicht bereinigt, nachdem sie fertig ist?

    
Corey Ogburn 04.11.2015, 19:51
quelle

1 Antwort

3

Sie würden Nie ein nicht ausgerichtetes APK verwenden.

Es ist ein Zwischenprodukt, das nicht aufgeräumt wird. Meiner Meinung nach sollte es sein.

Wie es funktioniert:

Bei der Ausrichtung werden Bilder und andere große Bits unkomprimierter Daten auf eine 4-Byte-Grenze gesetzt. Dies erhöht die Dateigröße, aber sie gehören zu einer bestimmten Seite. Es vermeidet, mehrere Seiten aus dem APK für ein einzelnes Bild aufzunehmen (das minimiert die Anzahl der aufgenommenen Seiten). Da das Bild an einer 4-Byte-Grenze beginnt, besteht eine höhere Wahrscheinlichkeit, dass wir keine Junk-Daten aufnehmen, die mit anderen Prozessen zusammenhängen.

Dadurch kann ich am Ende weniger RAM verschwenden und schneller laufen, indem ich weniger Seiten aufnehme. Eine triviale aber gute Optimierung

Über die Zeit ist es relativ trivial, also ist es das wert. Je mehr unkomprimierte Daten Sie haben, desto mehr Zeit ist es natürlich, aber es ist nie sehr wichtig. IMHO sollte der Compiler die nicht ausgerichtete Datei wegwerfen, aber ich denke, jemand wollte es behalten.

Ressourcen:

Ankündigung von ZipAlign

Ссылка

Aktuelle ZipAlign-Dokumente

Ссылка

Über Datenstrukturausrichtung (lesen Sie über Padding)

Ссылка

    
cjds 04.11.2015 21:11
quelle

Tags und Links