Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is difference between DVM and ART ? Why DVM has been officially replaced with ART in Lollipop?

Since Android Lollipop, Google has replaced DVM with ART because ART is faster than DVM. Is there any other reason for that?

like image 776
Amit Prajapati Avatar asked Aug 12 '15 06:08

Amit Prajapati


People also ask

What is the difference between DVM and ART?

Difference Between DVM and ARTDVM converts bytecode every time you launch a specific app. ART converts it just once at the time of app installation. That makes CPU execution easier.

What are the differences between JVM and DVM?

JVM will work based on byte code and the DVM will work based on optimized bytecode, it is optimised for mobile platforms because mobile devices have less memory, low process and low power that's why it is using the linux kernal.

What is a DVM Dalvik virtual machine )? Write an alternative for DVM and compare it with DVM?

The DVM is a virtual machine to run Android applications. The DVM executes Dalvik bytecode, which is compiled from programs written in the Java language. Note that the DVM is not a JVM. One of the key design principles of the DVM is that it should run on low memory mobile devices and loads quicker compared to any JVM.

What replaced Dalvik virtual machine?

ART vs DVM in Android DVM was explicitly designed for mobile devices and was used as a virtual machine to run android apps up until Android 4.4 Kitkat. Starting from this version, ART was introduced as a runtime environment, and in Android 5.0 (Lollipop), ART completely replaced Dalvik.


2 Answers

There are some major performance improvements that ART brings which were lacking in Dalvik. But every pros have some cons too. I will try to discuss both the advantages and disadvantages here.


1) Compilation Approach

This is by far the biggest advantage of ART over Dalvik. The old guy Dalvik used Just-In-Time (JIT) approach in which the compilation was done on demand. All the dex files were converted into their respective native representations only when it was needed.

But ART uses the Ahead-Of-Time (AOT) approach, in which the dex files were compiled before they were demanded. This itself massively improves the performance and battery life of any Android device.

For example

In case of Dalvik, whenever you touch an app icon to open it, the necessary dex files gets converted into their equivalent native codes. The app will only start working when this compilation is done. So, the app is unresponsive until this finishes.

Moreover, this process is repeated every single time you open an app wasting CPU cycles and valuable battery juice.

But in case of ART, whenever you install an app, all the dex files gets converted once and for all. So the installation takes some time and the app takes more space than in Dalvik, but the performance is massively improved and battery life is smartly conserved.


2) Boot Time

In case of Dalvik, the cache is built with time the device runs and apps are used as is indicated by the JIT approach. So the boot time is very fast.

But in case of ART, the cache is built during the first boot, so the boot time is considerably more in case of ART. You might see an "Optimizing apps" dialog box sometimes you boot.


3) Space Usage

The space used by apps being run on ART is much more than that of Dalvik. Like a 20 MB app on Dalvik, takes more than 35 MB on ART.

So if you are on a low storage device, then this can be a huge disadvantage for you.


4) ART is Damn Fast

As discussed above, ART is extremely fast and smooth. Apps are very snappy and responsive. Any comparison between Dalvik and ART, will surely make the ART device win by a significant margin.

ART is the answer to all those who argued that iOS is faster and smoother than Android and is also more battery efficient.

like image 62
Aritra Roy Avatar answered Nov 13 '22 02:11

Aritra Roy


In Android Lolipop, DVM has been replaced by ART. Because DVM converts bytecode everytime you launch a specific app. But ART converts it just once at the time of app installation. That makes CPU execution easier. ARM is a architecture. Like MIPS, x86 etc. DVM/ART runs on top of ARM. Both of them can not replace each other. I hope this clears your confusion.

like image 7
kazisami Avatar answered Nov 13 '22 01:11

kazisami