Generated by GPT-5-mini| Dalvik virtual machine | |
|---|---|
| Name | Dalvik virtual machine |
| Developer | |
| Written in | C, C++ |
| Operating system | Android |
| License | Apache License 2.0 |
| Introduced | 2007 |
| Replaced by | Android Runtime (ART) |
Dalvik virtual machine The Dalvik virtual machine appeared as a purpose-built runtime for the Android platform, designed to execute applications compiled for the Java ecosystem while addressing constraints of mobile phone hardware and embedded devices from vendors such as HTC Corporation, Samsung Electronics, and Motorola. It formed part of the software stack alongside components including the Linux kernel, Android SDK, and services from providers like Google Play and Open Handset Alliance. Dalvik influenced discussions at venues such as Google I/O and intersected with projects like Apache Harmony, OpenJDK, and tools from companies like Oracle Corporation.
Dalvik was created within the engineering groups at Google and was discussed in conferences alongside initiatives by organizations like the Open Handset Alliance and hardware partners including Qualcomm, Texas Instruments, and NVIDIA Corporation. Its introduction altered relationships among projects such as Apache Software Foundation efforts, Eclipse-based toolchains, and vendor-specific toolkits from Sony Mobile and LG Electronics. The runtime was distributed under the Apache License and influenced legal and technical interactions involving Oracle Corporation and stakeholders in the software industry. Dalvik was positioned against alternatives including runtimes from IBM and research prototypes from universities like University of California, Berkeley and Massachusetts Institute of Technology.
Dalvik employed a register-based execution model distinct from the stack-based model of the Java Virtual Machine used by projects like OpenJDK and implementations by IBM and Oracle. The format for executable code was the Dalvik Executable (.dex), produced by toolchains such as the Android SDK's dx tool and later by converters developed by groups including Xamarin and Intel engineers. Dalvik interacted with native libraries implemented using the Native Development Kit (NDK) and used low-level interfaces present in the Linux kernel and drivers from vendors like Broadcom and Marvell Technology Group. Memory management relied on garbage collectors with design input from researchers at institutions like Carnegie Mellon University and companies like Red Hat and Intel Corporation.
Applications compiled to Java bytecode were transformed into a format suitable for Dalvik by toolchains derived from the Android SDK and compilers influenced by projects at Sun Microsystems and later Oracle Corporation. The runtime provided features such as just-in-time (JIT) compilation in later versions, class loading models comparable to those studied at Stanford University and Princeton University, and debugging support interoperable with environments like Android Studio, Eclipse, and third-party debuggers from companies like JetBrains. Dalvik's threading model integrated with libc implementations and synchronization primitives derived from standards implemented by organizations such as The Open Group and influenced by academic work from Massachusetts Institute of Technology and University of Cambridge.
Optimization strategies for Dalvik were explored by engineers at Google and partners such as ARM Holdings, Qualcomm, and Broadcom Corporation. Work on register allocation, instruction scheduling, and code density drew on compiler research from Stanford University, University of Illinois Urbana-Champaign, and companies like Intel and NVIDIA. Benchmarks and performance comparisons were performed with tools from SPEC and research groups at University of California, Berkeley and Carnegie Mellon University, and influenced energy-efficiency studies involving organizations such as Energy Research Centre of the Netherlands and device manufacturers including Samsung Electronics.
Dalvik operated within Android's application sandboxing model established by Google and enforced by the Linux kernel's process model and capabilities from projects like SELinux and initiatives by NSA-backed research into mandatory access controls. Permission systems and package management integrated with services from the Android Market ecosystem and security advisories from vendors such as Samsung and HTC. Vulnerability research and mitigations involved groups at Kaspersky Lab, Symantec, and academic teams from University of California, Santa Barbara and University of Cambridge, with incident responses coordinated among platform maintainers and entities like CERT and regional regulators.
Tooling for Dalvik-centric development included the Android SDK, build systems influenced by Apache Ant and later Gradle, IDEs such as Eclipse with ADT, and later Android Studio developed by Google and JetBrains. Profiling and tracing tools were developed by teams at Google and third parties such as Perforce Software and Visual Studio integrations by Microsoft Corporation for cross-platform development. Continuous integration and testing workflows leveraged services from Travis CI, Jenkins and corporate CI systems used by vendors like Sony Mobile and Motorola Solutions.
Dalvik's design and operational lessons fed into the development of the Android Runtime (ART), announced by Google and implemented across Android releases managed by the Android Open Source Project and contributors from companies including Samsung Electronics, HTC Corporation, Sony Mobile Communications, and Qualcomm. The transition influenced litigation and ecosystem debates involving Oracle Corporation and affected adoption choices by device makers such as LG Electronics and Xiaomi. Research continuing in university labs at Massachusetts Institute of Technology, Stanford University, and industrial research groups at Google Research and IBM Research kept evolving runtime strategies for mobile platforms and embedded systems.