What is the difference between Dalvik VM and ART Runtime?

Ostap Andrusiv picture Ostap Andrusiv · Nov 7, 2013 · Viewed 7k times · Source

Dalvik VM has been the default VM since first Android versions.

Google released the new ART runtime in KitKat 4.4.

AndroidPolice says it would increase app performance and battery life. Unfortunately, there's almost no technical information about ART. There's just this page.

From what I understood, Dalvik VM translates dex bytecode into machine instructions in runtime. ART precompiles dex code into native instructions, so that it eliminates runtime translation step.

With respect to this:

  • Is my understanding accurate?
  • If ART compiles dex bytecode into native, what happens to Garbage Collector?
  • Is the idea behind ART somehow similar to Microsoft's NGEN?
  • How would ART impact app debugging?

Answer