Sind ROMs mit deodexierten Programmen schneller oder langsamer als odexierte?

8

Ich bin ein bisschen verwirrt über die Wirkung von Deodexing (oder sogar durch die Terminologie).

Basierend auf Antworten auf " Was ist der Unterschied zwischen odexierten und deodexierten Roms? ":

Ein "deodexed" ROM ist eines, bei dem die .odex-Dateien mehr oder weniger wieder in die .apk-Datei eingefügt wurden

Dies scheint zu implizieren, dass das "deodexierte" ROM ein odexiertes (also vorkompiliertes / optimiertes) ROM ist, in dem das APK-Paket das .odex-Material enthält, anstatt es in einer separaten Datei zu speichern.

Dieselbe Antwort hat jedoch ein scheinbar entgegengesetztes Zitat:

ROMs werden normalerweise in deodexierter Form veröffentlicht, da sie relativ einfach thematisiert und modifiziert werden können, während das Thematisieren / Modifizieren eines odexierten ROM grundsätzlich unmöglich ist (bestenfalls würden die Dinge wie verrückt abstürzen). Einige Leute entscheiden sich auch dafür, ihre ROMs in odexierten Versionen für Leute zu veröffentlichen, die die Leistungssteigerungen bevorzugen würden.

Dieses zweite Zitat scheint zu implizieren, dass das deodexierte ROM NICHT die Leistungssteigerungen des odexierten ROM aufweist (basierend auf dem letzten Satz) - ich vermute, weil es die .odex-Informationen aus Gründen der Portabilität / des Themas vollständig entfernt; Das erste Zitat scheint zu sagen, dass deodexiertes ROM genauso optimiert ist wie odexiertes, aber anders verpackt.

Welche dieser Bedeutungen ist richtig? Was vermisse ich?

Beispiel:

  • Fission Vanilla: "ROM hat Wurzel und wurde deodexiert und Reißverschluss zugewiesen"
DVK
quelle

Antworten:

8

Bei deodexierten ROMs sind die .odex-Dateien nicht in die .apk-Dateien integriert, sondern werden entfernt. Was Eldareathis in seiner Antwort auf die andere Frage meinte, ist, dass das Vertrauen der .apk's in die .odex-Dateien aufgehoben wird; Einige Informationen werden wieder in die APK-Datei integriert, nicht jedoch die eigentliche .odex-Datei. Diese Seite enthält einige technische Details.

Deodexierte ROMs können aus diesem Grund etwas langsamer sein. Ich glaube jedoch, dass die Leistungslücke minimiert wird, da der Dalvik-Cache aus der Verwendung des ROM aufgebaut wird.

Matthew Read
quelle
Vielen Dank! Könnten Sie das Stück "Leistungslücke wird minimiert" näher erläutern? Bedeutet dies, dass die Lücke für jede APK nach der ersten Verwendung vollständig beseitigt wird (und nachgebildet gilt für "nicht jede APK hat einen Cache auf einmal erstellt"), oder bedeutet dies, dass für eine bestimmte APK-Version die Odex-Version immer noch bestehen würde schneller sein als der Deodexed, auch nachdem der Cacge gebaut wurde?
DVK
@DVK Im Allgemeinen denke ich, dass der .odex immer noch schneller wäre, aber wenn zwischengespeicherte .dex-Dateien vorhanden sind, muss bei jedem Start nicht mehr die gesamte .apk-Datei übersetzt werden. Ich denke, dass der Overhead in den meisten Fällen wahrscheinlich viel bedeutender ist als die Optimierungen.
Matthew Read
2
@DVK: Ich sehe, wie unklar das in meiner vorherigen Antwort war, also ging ich zurück und versuchte ein bisschen zu klären. Vielen Dank für den Hinweis. In Bezug auf diese Frage ist alles, was Matthew in seiner Antwort gesagt hat, absolut richtig.
Eldarerathis