Was ist Zipalign in Android und wie macht man Apps Zipaligned?

click fraud protection

Wenn Sie ein Hardcore-Android-Fan sind, stehen die Chancen gut, dass Sie eifrig neue Themen, benutzerdefinierte ROMs und alle derartigen Mods für Ihr Gerät ausprobieren. Einer der Hauptverwirrungspunkte ist die Terminologie, die mit diesen Mods verbunden ist - etwas, das den Entwicklern recht vertraut ist, dem Anfänger jedoch nicht zu viel. Zwei der am häufigsten vorkommenden Wörter in benutzerdefinierten ROMs und Themen sind "deodexed" und "zipalign". Vor ein paar Tagen haben wir bedeckt Im Detail „deodexiert“. In diesem Artikel werden wir untersuchen was zipalign bedeutet und wie APKs zipaligniert werden können.

WAS IST ZIPALIGN?

zipalign ist ein Archivausrichtungstool, das erstmals mit 1.6 Android SDK (Software Development Kit) eingeführt wurde. 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.

instagram viewer

WIE FUNKTIONIERT ES GENAU?

In einer Android-Betriebsumgebung wird von auf die in jedem Anwendungspaket gespeicherten Datendateien zugegriffen Bei mehreren Prozessen liest das Installationsprogramm beispielsweise das Datenmanifest, um das zugehörige zu ermitteln Berechtigungen; Der Systemserver kann diese Ressourcen aus mehreren Gründen lesen, z. B. zum Anzeigen von Benachrichtigungen. Die Home-Anwendung liest beispielsweise Ressourcen, um den Namen und das Symbol der Anwendung abzurufen. Da Android auf einer echten Multitasking-Betriebsinfrastruktur basiert, wird kontinuierlich und wiederholt auf diese Dateien zugegriffen. Schließlich liest die Anwendung selbst die Manifestdaten.

Da Android auf Linux basiert, spielt die Speicherzuordnung eine Schlüsselrolle bei der effizienten Abwicklung von Prozessen. Im Wesentlichen beträgt die optimale Ausrichtung für den Ressourcenverarbeitungscode des Android-Betriebssystems 4-Byte-Grenzen. Dies bedeutet, dass, wenn APKs Speicher auf 4-Byte-Grenzen abgebildet und entsprechend ausgerichtet werden, Das Betriebssystem muss nicht das gesamte Anwendungspaket „durchlesen“, um zu den gewünschten Daten zu gelangen Manifest. Jeder Systemprozess weiß im Voraus, wo er nach den gewünschten Ressourcen suchen muss, und wird daher viel reibungsloser und schneller ausgeführt.

Zusammenfassend führt das Zipalignieren einer APK dazu, dass alle nicht komprimierten Daten innerhalb des Pakets an 4-Byte-Grenzen ausgerichtet werden, sodass 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 UNALIGNED APKs

Verständlicherweise wäre die Situation nicht ausgerichteten Anwendungspaketen vorbehalten. Das Lesen von Ressourcen wäre langsam und die Speichernutzung würde am oberen Ende des Spektrums liegen. Dies hängt auch davon ab, wie viele nicht ausgerichtete Anwendungen vorhanden sind. Wenn beispielsweise weniger Anwendungen mit einer nicht ausgerichteten Heimanwendung vorhanden sind, werden langsamere Startzeiten für Anwendungen 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, mit Verzögerungen und einem enormen Batterieverbrauch zu kämpfen hat.

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. Um es zu verwenden, führen Sie einfach den folgenden Befehl aus:

zipalign [-f] [-v]  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  existent.apk

wo existent.apk kann jedes Anwendungspaket sein, das Sie überprüfen müssen. Auch die Das Tag in beiden Befehlen muss ein ganzzahliger Wert sein (andernfalls wird der Befehl ungültig zurückgegeben). Obwohl dieser Wert eine beliebige Ganzzahl sein kann, MUSS er immer 4 sein, was eine 32-Bit-Ausrichtung ermöglichen würde. Jeder andere Wert und es wird effektiv nichts tun.

Für die in diesen Befehlen verwendeten Flags gilt Folgendes:

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

VORSICHT: Eine zipaligne Operation darf nur durchgeführt werden nach Sie haben die APK-Datei mit Ihrem privaten Schlüssel signiert. Wenn vor dem Signieren eine Zipalignierung durchgeführt wird, stört der Signaturvorgang die Ausrichtung. Gleiches gilt für jede andere Änderung, Hinzufügung oder Entfernung 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-Entwickler-Toolkit und auch nicht für Entwicklungszwecke vorgesehen. AddictiveTips bietet keine Unterstützung in Bezug auf das hier präsentierte Material.

watch instagram story