Unterschied zwischen dexopt und dex2oat?

Google bewegt sich von Dalvik nach ART (Android Runtime).

Ich habe versucht zu verstehen, wie es geht, die Leistung zu verbessern.

  • Emulatoren oder Genymotion unterstützen ART, die dalvik Ersatz?
  • Art: Verifizierung von X nahm Y ms
  • Laden Sie die DEX-Datei dynamisch auf Android 5.0
  • Android Garbage Collector Freed Memory
  • Android native crash initiiert von /system/framework/arm/boot.oat
  • Wie genau unterscheidet sich JVM von Dalvik und / oder ART?
  • Die beste Erklärung, die ich gefunden habe, ist das folgende Bild:

    Dalvik und ART

    Eine der Hauptkomponenten, die sich geändert hat, ist dexopt to dex2oat .

    Da habe ich nicht viel über diese, kann jemand den Unterschied erklären und wie dies wird die Leistung zu verbessern?

  • Throws-Klausel in Exception Handling
  • Das Projekt kann eine Version von Gradle verwenden, die nicht die Methode 'compileSdkVersion ()' enthält,
  • Speichern Sie die Orientierung auf ein Array - und vergleichen Sie es
  • Drei Fragen über viele Berechnungen
  • Android: Richten Sie ein Element unten und mitten in einem anderen aus
  • Android: screenOrientation = "sensorPortrait" nicht gültig?
  • One Solution collect form web for “Unterschied zwischen dexopt und dex2oat?”

    Dexopt macht einige Optimierungen auf der dex-Datei. Es macht Dinge wie das Ersetzen einer virtuellen Aufruf-Anweisung mit einer optimierten Version, die den vtable-Index der aufgerufenen Methode enthält, so dass es keine Methodensuche während der Ausführung durchführen muss.

    Das Ergebnis von dexopt ist eine odex (optimierte dex) Datei. Dies ist der Original-Dex-Datei sehr ähnlich, außer dass es einige optimierte Opcodes verwendet, wie die optimierte virtuelle Instruktion.

    Dex2oat nimmt eine dex-Datei und kompiliert sie. Das Ergebnis ist im Wesentlichen eine Elf-Datei, die dann nativ ausgeführt wird. Also statt Bytecode, der von einer virtuellen Maschine interpretiert wird, hat es jetzt nativen Code, der nativ vom Prozessor ausgeführt werden kann. Dies heißt AOT (vor der Zeit) Zusammenstellung.

    Ein weiterer Faktor zu berücksichtigen ist, dass dalvik einen JIT (just-in-time) Compiler verwendet – was bedeutet, dass es auch in der Lage war, Bytecode zu nativen Code zu kompilieren. Der Hauptunterschied ist jedoch, dass ART alles vor der Zeit kompiliert, während dalvik nur eine Teilmenge des Bytecodes mit Heuristiken kompiliert hat, um den Code zu erkennen, der am häufigsten ausgeführt wurde und der während der Ausführung kompiliert wurde.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.