Just a few weeks ago, Google purchased the French company Flexycore, which was promoting a technology for Android that would make Android apps a lot closer to “native” than they are right now, when compiled for the Dalvik virtual machine. Apparently, you can now find an extra option in Android’s Developer Options menu (in Kit Kat) , which allows you to choose between Dalvik and something called ART. This chooses how you want your app to be compiled at runtime – into a Dalvik app, or an ART one.
So what’s the difference between Dalvik and ART? ART is the technology developed by Flexycore and it’s supposed to make Android apps perform a lot faster, more like native apps, rather than like apps that work in a virtual machine, the way Dalvik apps work. Right now, this is a hidden option, and it can’t be used in the emulator, because it breaks it, but it’s clear Google is paving the road for much higher performance Android apps in the future.
I’ve been wondering if Google will do something about the performance of Dalvik apps eventually, and if they will decide to support the Go language in Android, once it gets a little more mature. That would solve 2 things: the performance of Android apps, but also using a much nicer and easier to learn language for developers. As a bonus, it might even save them from further lawsuits from Oracle.
ART seems to solve at least the first part – making faster apps. But from what I gather right now, it seems developers are still stuck with writing their apps with the Java language, and then those apps could get converted at runtime in ART instead of Dalvik, in the future.
However, this doesn’t solve the problem of having a much easier language to learn and use, and Go would be a rather perfect candidate for that, as it’s been praised by many developers for its clean design. Perhaps Google needs a couple more years to work on supporting Go in Android, too. In the mean time, we will get the more user-centric benefit – the performance of native-like ART apps.