Skip to main content

Android Dalvik Virtual Machine

Hello Everyone!


In this article we are discussing about the Dalvik Virtual Machine. It is one of the important concept in android architecture. Dalvik Virtual Machine has also been asked few times in university exams (sometimes as a separate question and sometimes along with the Android Architecture).

Dalvik Virtual Machine is one of the key elements of Android Application. The Dalvik Virtual Machine (DVM) is an android virtual machine which is optimized for mobile devices. It optimizes the virtual machine for memory, battery life and performance. Dalvik Virtual Machine is only supported by the android operating system. The overall execution is faster using Dalvik VM.

Rather than using a traditional Java Virtual Machine, Android uses its own custom VM, designed to ensure that multiple instances run efficiently on a single device. One reason for using Dalvik VM is that Java VM was not open source and hence not efficient to use on a large scale.

The Dalvik Virtual Machine uses the device’s underlying Linux kernel to handle some low-level functionality, including security, threading, process management and memory management.

Dalvik acts as a middle person between hardware and system service access. By using a VM to host application execution, developers have an abstraction layer that ensures that they never have to worry about a particular hardware implementation.

The Dalvik VM executes Dalvik executable files (DEX). The Dex files are optimized for minimal memory usage. The Dex compiler converts the ".class" files into the ".dex" files that runs on the Dalvik Virtual Machine. Multiple class files are converted into single dex file. 


Working of Dex Compiler

Basically, the Java Compiler (javac) converts the Java Source Code into Java Byte-Code. This is the ".class file". Now this ".class" file is compiled by DEX compiler to obtain a ".dex" file (Dalvik Byte Code) which is then packaged by the AAPT (Android Assets Packaging Tool) into a ".apk" file.

 


Also checkout Android Architecture and the Different Building Blocks of Android.

Comments

Popular posts from this blog

50 + Interview Questions/Experiences of TCS DCA April 2021

Hello Everyone! This post is dedicated to the Interview Questions asked in TCS DCA. DCA which is Digital Capability Assessment is usually conducted for the internal employees of TCS who are selected for the Ninja profile. If DCA is cleared successfully, then the candidates are offered Digital profile. That means the profile changes from Assistant System Engineer to System Engineer . This year i.e., in 2021, TCS conducted DCA for the candidates who have received offer letter but not joined TCS as an employee yet. The original DCA which is conducted for internal employees has a different pattern and is not discussed in this post. Rather this post is dedicated to the DCA conducted in March and April 2021 for 2021 recruits. The DCA was conducted on 19 th and 20 th March 2021. The test had two coding questions. To sucessfully clear DCA, all the test cases of both the codes must be passed. In March DCA, a lot of students faced compile...

UML - Object Diagram for Hospital Management System

Hello Everyone! Here is an example of an Object Diagram for Hospital Management System. Problem Statement - The hospital wishes to maintain a database to assist with the administration of its wards and operating theatre and to maintain information related to its patients, surgeons and nurse. Most patients are assigned to a ward on admittance and each ward may contain many patients. However, consultants (senior surgeons) in the hospital may have private patients who are assigned to private room. A nurse may or may not be assigned to a ward and she cannot be assigned to more than one ward. A ward may have many nurses assigned to it. Each ward is dedicated to a particular type of patient. A nurse may or may not be assigned to a theatre and she cannot be assigned more than one theatre. Theatre may have many nurses assigned to it. A patient may have number of operations. The information to be recorded about the operation includes the type of operation, the patients, the surgeons involv...

UML - Activity Diagram for Vending Machine

Hello Everyone! Here is an example of an Activity Diagram of a Vending Machine. Problem Statement - A vending machine accepts coins for a variety of products. The user selects the drink from products available through selection panel. If the drink is available the price of the product will be displayed. The user then deposits the coins depending on the price of the product. Coin collector collects coin after stipulated time. The controller will compare the deposited coins with the price. If amount is less than the price then an error message will be displayed and all deposited coins will be dispensed by the dispenser. Otherwise the drink will be displayed by the drink dispenser. Check out other UML (Unified Modeling Language) Diagrams - Use Case Diagram   Class Diagram   Object Diagram   Sequence Diagram Collaboration Diagram   State Diagram   Component Diagram   Deployment Diagram