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

How to Download and Install Jenkins on Windows Operating System.

Hello Everyone, This is a tutorial about how to download and install Jenkins on Windows Operating System. Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes. Jenkins is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. PREREQUISITE- Java Development Kit (JDK) and Java Runtime Environment (JRE). Currently 1.8 and 1.11 versions are supported by Jenkins. If other versions are installed, kindly reinstall 1.8 or 1.11. DOWNLOADING JENKINS- Step 1) Go to the website https://www.jenkins.io/ and click on the download option. Step 2) In the Downloading Jenkins section, select the LTS (Long Term Support) version for Windows. It is a more stable version with new updates every 2 or 3 months. Step 3) The Jenkins windows installer will be dow

IoE (Internet of Everything) Question Paper Solution (MCQs) for 2020 Mumbai University Examination Information Technology Semester 8

Hello Everyone! This article is based on the Multiple Choice Questions asked in the University Exam for the subject Internet of Everything. These MCQs were asked in the 2020 Mumbai University-BE-Information Technology-Semester 8 Exam for the subject- Internet of Everything. The question paper for each cluster is different. These MCQs were asked in the examination of one cluster. The question paper had 25 MCQs of 2 marks each. Q 1) ________ involves making smaller and smaller things with the ability to connect and interact. a. Smart Tech b. Micro Tech c. RFID Tech d. Nano Tech Solution: d) Nano Tech Q 2) RFID stands for? a. Radio frequency identification b. Random frequency identification c. Random frequen

How to add Python Plugins in Jenkins

Hello Everyone, This tutorial is based on the different plugins required to execute python programs on Jenkins. Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes. Jenkins is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. To execute any Python Code on Jenkins, there are two essential plugins which must be installed. The two plugins are - Shining Panda plugin and Python plugin. Following are the steps to install the plugins on Jenkins. (These steps are common for the installation of all the plugins). Step 1) Select Manage Jenkins option from the dashboard. Step 2) In Manage Jenkins, select Manage Plugins. Step 3) Now click on the Available tab. In the search bar, enter Python. (If the plugins are already installe