For as long as Android has been around the operating system has relied on the Dalvik virtual machine as the platform apps run on. Now it looks like Google is getting to replace Dalvik with a new runtime called ART.
While Dalvik uses “just-in-time” processing to compile code on the fly, ART using an “ahead-of-time” process to compile apps before you first run them, which could lead some apps to run much more quickly.
Google included ART in Android 4.4 KitKat, but it’s disabled by default. But it looks like the next version of Android could use ART as the default runtime with Dalvik taking a backseat.
A code commit shows that Google has flipped the switch, making ART the default runtime.
It could still be a while before the change hits your phone or tablet. It’s not clear when Google will release the next version of Android… or how long it will take your device maker or wireless carrier to offer an over-the-air update.
Meanwhile folks with devices running Android 4.4 can continue to enable ART manually through the Developer Options menu. There are still some apps that aren’t optimized for the new runtime, but the list is shrinking as a growing number of developers prepare for the upcoming change.
From “just-in-time” processing to “ahead-of-time” processing? Sounds like an improvement to me!
Seriously though, is there any disadvantages?
You’ll need more storage.
finally will see more low ends smartphone with 8Gb rom.
And… App installs will take significantly longer. Though, apps will use less RAM.
Whatever makes it faster with little to no drawbacks then good.
I remember the days back in college when they were pushing Java and the benefits of JIT. Supposedly, you’ll both get the benefits of code optimization before and during run time. Too bad that often gets outweighed by the optimization process itself and never really provided much benefit (or ended up being slower) to pre-compiled binaries with the appriate compiler optimization flags. Using JIT compiling on devices where users expect fast response times was never really a good idea.
I think it’s pretty amazing that android ever worked as well as it did, considering it was using JIT for so many apps.
Seems like an odd statement, since Android JITs pretty much everything.
JIT provides improved performance over bytecode interpretation by translating short runs of bytecode to native code on the fly as needed and running them.
Microsoft’s .Net is still limited to JITting (unless one manually runs NGen to crudely compile to native code in one go). The ART AOT-compiles improve on that by doing an optimizing compile as opposed to NGen’s flat JIT-style instruction translation.
The statement doesn’t seem odd to me. I’m surprised Android was first released using only interpretation. That’s extremely slow. Then they finally added JIT which still isn’t ideal on slow (compared to desktops) embedded systems especially when the optimizations it’s allowed to do are limited compared to the JIT methods done on desktops/servers.
Yeah, once, the hot code is compiled, it runs faster but for a device like a smartphone where people expect quick response times (at least now they expect this), the time it takes to identify hot code and compile it can be noticeable (slow startup and short stutters). So, yeah, I’m surprised Android provides a okay experience.
A majority of major .NET apps NGen their code during the installation process, so that is not much of an issue with .NET apps.
I don’t think that’s a huge problem. If ART makes it faster, I don’t see anything wrong with it.
If you enable ART so you need to reinstall apps for them to run better?
No, you don’t need to reinstall anything. ART goes on a compiling binge when it’s first activated, and compiles all apps already on your phone automatically in one go, which takes a few minutes.
Can I go back to delvik if some of my apps dont run on ART?
Yes, just switch back to Dalvik. Apps will run from source again, which is still there.
its not going to take minutes if you have lots of apps. In fact, it can be long though just one off.
Nope, after a reboot, the OS will recompile all your apps.
Comments are closed.