- Dalvik virtual machine
The Dalvik virtual machine is a register-based
virtual machine , designed and written byDan Bornstein with contributions from otherGoogle engineers as part of the Android mobile phone platform. [citeweb|title=What is Android?|url= http://code.google.com/android/what-is-android.html|publisher=code.google.com|accessdate=2008-02-05]It is optimized for low memory requirements, and is designed to allow multiple VM instances to run at once, relying on the underlying operating system for process isolation, memory management and threading support.
The Dalvik virtual machine was named by Bornstein after the fishing village of
Dalvík inEyjafjörður ,Iceland , where some of his ancestors lived. [ [http://uke.livejournal.com/25660.html Journal entry] ] citeweb|title=Google Calling: Inside Android, the gPhone SDK|url=http://www.onlamp.com/pub/a/onlamp/2007/11/12/google-calling-inside-the-gphone-sdk.html|publisher=onlamp.com|accessdate=2008-02-05]Architecture
Being optimized for low memory requirements, Dalvik has some specific characteristics that differentiate it from other standard VMs [cite web
url=http://blogs.sun.com/jrose/entry/with_android_and_dalvik_at
title=with Android and Dalvik at Google I/O
last=Rose|first=John
date=2008-05-31
accessdate=2008-06-08] :
* The VM was slimmed down to use less space. The underlyingC standard library was rewritten, and theC++ implementation has no support forException handling ,
* Dalvik has no Just-in-time compiler
* The constant pool has been modified to use only32-bit indexes to simplify the interpreter.Dalvik uses
Apache Harmony (which is under theApache License ) instead ofOpenJDK (which is under the GPL + linking exception) to allow cell phone makers to modify the core VM without having to distribute their code.Relationship to Java
Dalvik is often referred to as a
Java Virtual Machine , but this is not strictly accurate, as thebytecode on which it operates is notJava bytecode . Instead, a tool named "dx", included in the Android SDK, transforms the Java Class files of Java classes compiled by a regularJava compiler into another class file format (the ".dex" format). [cite web
url=http://code.google.com/android/what-is-android.html#runtime
title=What is Android?: Android Runtime
publisher=Google
date=2007-11-12
quote="The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool."
accessdate=2007-11-13]References
External links
* [http://www.betaversion.org/~stefano/linotype/news/110/ Dalvik: how Google routed around Sun's IP-based licensing restrictions on Java ME]
* [http://wireless.itworld.com/4269/071116googlesun/page_1.html Google and Sun may butt heads over Android]
* [http://www.retrodev.com/android/dexformat.html Dex File Format]
* [http://www.kaktus.is/svanfridur/?f=1&o=533 The town of Dalvik celebrates its namesake]
Wikimedia Foundation. 2010.