- - Was ist Zipalign in Android und wie macht man Apps Zipaligned [Complete Guide]

Was ist Zipalign in Android und wie macht man Apps Zipaligned [Complete Guide]

Wenn Sie ein eingefleischter Android-Fan sind, stehen die Chancen gutSie sollten unbedingt neue Designs, benutzerdefinierte ROMs und alle diese Mods für Ihr Gerät ausprobieren. Eine der Hauptverwirrungen ist die mit diesen Mods verbundene Terminologie - etwas, das den Entwicklern recht vertraut ist, dem unerfahrenen Benutzer jedoch nicht zu viel. Zwei der am häufigsten vorkommenden Wörter in benutzerdefinierten ROMs und Themen sind "desodexiert" und "zipalign". Vor ein paar Tagen haben wir uns ausführlich mit „desodexiert“ befasst. In diesem Artikel werden wir untersuchen was Zipalign bedeutet und wie APKs zipaligniert werden können.

WAS IST ZIPALIGN?

zipalign ist ein eingeführtes Werkzeug zur ArchivausrichtungZum ersten Mal mit 1.6 Android SDK (Software Development Kit). Es optimiert die Art und Weise, wie ein Android-Anwendungspaket (APK) gepackt wird. Auf diese Weise kann das Android-Betriebssystem effizienter mit der Anwendung interagieren und somit die Anwendung und das gesamte System erheblich beschleunigen. Die Ausführungszeit für zipalignierte Anwendungen wird minimiert, was zu einem geringeren RAM-Verbrauch beim Ausführen des APK führt.

SO WIE FUNKTIONIERT ES GENAU?

In einer Android-Betriebsumgebung DatendateienAuf die in den einzelnen Anwendungspaketen gespeicherten Daten kann von mehreren Prozessen zugegriffen werden. Beispielsweise liest das Installationsprogramm das Datenmanifest, um die zugehörigen Berechtigungen zu ermitteln. Der System-Server kann diese Ressourcen aus mehreren Gründen lesen, z. B. um Benachrichtigungen anzuzeigen. Die Home-Anwendung liest beispielsweise Ressourcen, um den Namen und das Symbol der Anwendung abzurufen. Da Android auf einer echten Multi-Tasking-Infrastruktur basiert, wird auf diese Dateien ständig und wiederholt zugegriffen. Zu guter Letzt liest die Anwendung selbst die Manifestdaten.

Da Android Linux-basiert ist, spielt Memory-Mapping eine RolleSchlüsselrolle bei der effizienten Abwicklung von Prozessen. Im Wesentlichen beträgt die optimale Ausrichtung für den Ressourcen-Handling-Code des Android-Betriebssystems 4-Byte-Grenzen. Dies bedeutet, dass das Betriebssystem nicht das gesamte Anwendungspaket „durchlesen“ muss, um zum gewünschten Datenmanifest zu gelangen, wenn APKs auf 4-Byte-Grenzen speicherabgebildet und entsprechend ausgerichtet sind. Jeder Systemprozess weiß im Voraus, wo er nach den gewünschten Ressourcen suchen muss, und wird daher viel reibungsloser und schneller ausgeführt.

Zusammenfassend ergibt das Zipalignieren einer APK allesNicht komprimierte Daten innerhalb des Pakets müssen an 4-Byte-Grenzen ausgerichtet werden, damit auf alle Teile direkt mit der Speicherzuordnung zugegriffen werden kann. Der RAM-Verbrauch wird während der Ausführung gesenkt, da der Abfragecode nicht das gesamte Anwendungspaket lesen muss.

NACHTEILE VON NICHT AUSGERICHTETEN APKs

Verständlicherweise wäre die Situation zurückhaltendfür nicht ausgerichtete Anwendungspakete. Das Lesen von Ressourcen wäre langsam und die Speichernutzung würde am oberen Ende des Spektrums liegen. Es würde auch davon abhängen, wie viele nicht ausgerichtete Anwendungen vorhanden sind. Wenn beispielsweise die Anzahl der Anwendungen mit einer nicht ausgerichteten Basisanwendung geringer ist, werden langsamere Anwendungsstartzeiten angezeigt. Dies ist das beste Szenario. Im schlimmsten Fall führt eine Reihe nicht ausgerichteter Anwendungen dazu, dass das System wiederholt Prozesse startet und beendet und mit Verzögerungen und einem enormen Batterieverbrauch kämpft.

WIE MACHST DU ES DANN?

Wie bereits erwähnt, wurde das Zipalign-Tool ab 1.6 Teil des Android SDK. Es befindet sich im Ordner "tools" des SDK. Führen Sie dazu einfach den folgenden Befehl aus:

zipalign [-f] [-v] <alignment> infile.apk outfile.apk

wo infile.apk ist die Quelldatei und outfile.apk ist die Ausgabedatei.

Darüber hinaus können Sie die Ausrichtung einer APK-Datei mit dem folgenden Befehl überprüfen:

zipalign -c -v <alignment> existing.apk

wo existing.apk kann ein beliebiges Anwendungspaket sein, das überprüft werden muss. Auch der <Ausrichtung> Tag in beiden Befehlen muss ein Integral seinvalue (sonst gibt der Befehl ungültig zurück). Obwohl dieser Wert eine beliebige Ganzzahl sein kann, MUSS er immer 4 sein, was eine 32-Bit-Ausrichtung zur Folge hätte. Jeder andere Wert und es wird effektiv nichts tun.

Schließlich für die in diesen Befehlen verwendeten Flags,

  • -f : überschreibt die vorhandene Datei outfile.zip
  • -v : gibt eine ausführliche Ausgabe aus
  • -c : Bestätigt die Ausrichtung einer bestimmten Datei

VORSICHT: Eine Zipalign-Operation darf nur durchgeführt werden nach Sie haben die APK-Datei mit Ihrem privaten unterschriebenSchlüssel. Wenn vor dem Signieren eine Ziallinie erstellt wird, stört der Signiervorgang die Ausrichtung. Gleiches gilt für alle anderen Änderungen, Ergänzungen oder Löschungen der APK-Datei. Jede Änderung nach dem Ausführen von zipalign macht die Ausrichtung rückgängig.

Haftungsausschluss: Dieser Leitfaden ist nur für Bildungszwecke gedacht. Dies ist in keiner Weise ein Ersatz für das Android Developer Toolkit und auch nicht für Entwicklungszwecke gedacht. AddictiveTips bietet keine Unterstützung in Bezug auf das hier vorgestellte Material.

Bemerkungen