11

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?
Dima Tisnek
  • 11,241
  • 4
  • 68
  • 120
Ostap Andrusiv
  • 4,827
  • 1
  • 35
  • 38
  • There's some pretty good information here: http://www.androidpolice.com/2013/11/06/meet-art-part-1-the-new-super-fast-android-runtime-google-has-been-working-on-in-secret-for-over-2-years-debuts-in-kitkat/ – Robert Harvey Nov 07 '13 at 22:21
  • It's on purpose, it's for developers to play with – Joucks Nov 07 '13 at 22:22
  • That's the link I'm referencing. But it lacks technical information. – Ostap Andrusiv Nov 07 '13 at 22:22
  • Can you be more specific about what kind of technical information you are looking for? What problem are you trying to solve? – Robert Harvey Nov 07 '13 at 22:24
  • I suggest that you take the time to read the blog post. It covers your second bullet quite nicely. With respect to garbage collection, GC is orthogonal to whether the language is AOT compiled, JIT compiled, or purely interpreted, so GC is unlikely to change with ART. – CommonsWare Nov 07 '13 at 22:29
  • @RobertHarvey there is a pretty general answer to the question, "What is the difference between the Dalvik and ART runtimes?" – dcow Nov 07 '13 at 22:30
  • @CommonsWare yes, it covered it -- removed it. – Ostap Andrusiv Nov 07 '13 at 22:50
  • 7
    I'd like to see this question answered. I'd put a bounty on this if it were reopened. – Dima Tisnek Nov 20 '13 at 10:23
  • 1) Yes. ART is AOT compiler based. 2) GC is memory manager for objects. Doesn't matter with what kind of compilation method used. 3) I think so. 4) Maybe, in development time runtime would works differently to allow in-place editing and debugging (e.g. interpretation only mode) – Wonil Apr 18 '14 at 07:51

0 Answers0