Android: Was bedeuten “Odex” und “Deodex”?

von

Wer etwas an seinem Android-System ändern möchte, der kommt früher oder später nicht um die einschlägigen Foren wie XDA und Android-Hilfe herum. Nicht nur finden sich dort ROMs und Mods für viele Geräte, sondern auch gute Erklärungen zu häufig auftretenden Fragen.

Android: Was bedeuten “Odex” und “Deodex”?

Im deutschsprachigen Android-Hilfe-Forum hat sich der User 4ndr0 hingesetzt und die Erklärung darüber, was “Odex” und “Deodex” bedeuten, sehr gut und verständlich auf Deutsch übersetzt. Diese hat uns so gut gefallen, dass wir Euch diese nicht vorenthalten möchten. Wenn Ihr in den einschlägigen Foren interessante Anleitungen und Erklärungen findet oder sogar selbst verfasst und sie gerne mit vielen Nutzern teilen möchtet, kann sie uns einfach an redaktion@giga.de schreiben.

Was bedeutet “Odex” und “Deodex”? Die komplette Erklärung

Ganz ehrlich, wie viele von Euch, die das lesen, haben sich die ROM-Foren angeschaut, nur um immer wieder über diesen komplett fremdartigen Begriff zu stolpern. Hey, ist ok, ging mir genauso. Genau genommen bringen die Begriffe Odex und Deodex die Augen von Moddern zum Glänzen. Also, worüber reden die eigentlich?

Um deodex zu verstehen, sollten wir uns erstmal mit Odex befassen.

odex = Optimized Dalvik Executable

Wie ihr sicher wisst, sind Android Apps auf eurem Gerät als .apk Dateien (eigentlich ZIP-Archive) gepackt. Stock Android ROMs verwenden eine Odex-Dateistruktur, wobei odex für eine “optimierte” ausführbare Dalvik-Datei steht. Das bedeutet, dass für jede APK eine dazugehörige Odex Datei existiert. Das gilt genauso für die Framework-Dateien im .jar (Java Archive) Format.

Beispiel: Auf diesem nicht gerooteten Galaxy Nexus seht ihr zum Einen folgende Datei

system/app/Phone.apk

sowie auch

system/app/Phone.odex

Doch was genau sind diese Odex-Dateien?

Wenn Android Eure Apps ausführt oder Framework-Bestandteile verwendet, muss es die in den .apk und/oder .jar Dateien enthaltenen komprimierten Daten lesen und interpretieren. Eine Odex-Dateistruktur beschleunigt diesen Prozess durch eine .odex Datei, welche die wichtigsten Daten unkomprimiert speichert, damit Android diese Daten schnell verarbeiten kann, bevor der restliche, unkomprimierte Teil der Daten verarbeitet wird. Der Sinn ist, die Bootzeiten zu verkürzen und Apps generell schneller laden zu lassen.

Also was ist deodex?

Die Odex-Dateistruktur funktioniert wunderbar als Werkzeug zur Optimierung, ausgenommen man möchte modden/themen. Odexte Apps und Frameworks indizieren ein besonderes Problem für jeden, der modden/themen möchte aufgrund der Tatsache, dass die zu verändernden Ressourcen in 2 Dateien aufgesplittet sind. Theming (das Modifizieren von Symbolen/Lockscreen/Statusbar etc.) z.B. verlangt normalerweise, dass System-Bitmaps durch eigene ausgetauscht werden und das ist fast unmöglich bzw. extrem aufwendig in “odexten” Umgebungen. Die Lösung lautet, das Dateisystem zu deodexen, d.h die ausgelagerten unkomprimierten Daten in den .odex Dateien wieder in ihre .apk oder .jar Dateien zu integrieren.

Auf diesem Galaxy Nexus, auf dem ein Custom ROM läuft, sehen wir wieder die

system/app/Phone.apk

doch nicht mehr die dazugehörige .odex Datei.

Die neu zusammengesetzten Daten landen in der classes.dex innerhalb der .apk Datei.

Also was sollte man verwenden?

Der einzige Grund, sein ROM zu deodexen, ist das Theming/Modding. Es wird Euer Gerät nicht schneller machen. Technisch gesehen sollte es das Gerät sogar verlangsamen, doch in der Praxis ist dieser Unterschied nicht wahrnehmbar. Nach meiner Erfahrung kommt jedes Custom ROM pre-DeOdexed daher und zipaligned eure Apps bei jedem Boot.

Zipaliging ist das Reorganisieren und Optimieren eurer APKs, damit Android sie schneller verarbeiten kann. Es ist vergleichbar, wenn nicht sogar besser als die Odex-Dateistruktur, so bekommt ihr das Beste aus beiden Welten; Ein modifizierbares ROM mit der Geschwindigkeit einer optimierten Dateistruktur. So liegt der einzige Unterschied in der Modifizierbarkeit. Es liegt an euch, zu entscheiden, was ihr benötigt.

Quelle: Android-Hilfe

Nichts mehr verpassen? Dann folge GIGA Android bei Facebook, Google+ oder Twitter!


Kommentare zu diesem Artikel

Neue Artikel von GIGA ANDROID

Anzeige
GIGA Marktplatz