Generated by DeepSeek V3.2| Dalvik (software) | |
|---|---|
| Name | Dalvik |
| Developer | Dan Bornstein, Google |
| Released | 23 September 2008 |
| Programming language | C, Java |
| Operating system | Linux |
| Platform | ARM, x86, MIPS |
| Genre | Virtual machine, Runtime system |
| License | Apache License 2.0 |
Dalvik (software). Dalvik was a virtual machine (VM) and core component of the Android mobile platform, designed to execute applications written in the Java language. It was created by Dan Bornstein and his team at Google to run on resource-constrained devices, employing a unique register-based architecture instead of the more common stack-based design. The technology was central to the Android app ecosystem until it was superseded by the Android Runtime (ART).
Dalvik served as the process virtual machine within the Android operating system, responsible for running .dex (Dalvik Executable) files compiled from Java bytecode. Unlike the Java virtual machine (JVM) from Oracle Corporation, Dalvik was optimized for low-memory environments and slower CPUs typical of early mobile devices. It enabled the execution of applications developed using the Android SDK and tools like the Eclipse IDE. The Apache Harmony project provided many of the core class libraries used alongside the VM.
The architecture of Dalvik was fundamentally register-based, contrasting with the stack-based approach of standard Java virtual machine implementations like those from Sun Microsystems. This design choice was intended to reduce instruction count and improve performance on devices with limited hardware capabilities. Dalvik executed a proprietary bytecode format called .dex, which was created by transforming standard Java class files using tools like the dx utility. The VM supported features such as just-in-time compilation (JIT) and tight integration with the underlying Linux kernel for process isolation and memory management.
Performance optimizations in Dalvik focused on efficient CPU and battery life utilization, critical for smartphones and tablet computers. Its register-based architecture typically required fewer instructions per operation compared to stack-based VMs, which could lead to faster execution. The introduction of a JIT compiler in Android 2.2 (Froyo) significantly improved runtime performance by translating bytecode to native code at application launch. However, Dalvik's performance was often compared unfavorably to iOS's Objective-C runtime and later Android Native Development Kit (NDK) applications.
Dalvik was developed primarily by Dan Bornstein at Google, with its name inspired by the fishing village of Dalvík in Iceland. It was unveiled alongside the first Android device, the HTC Dream (G1), in 2008. The VM's design drew from prior research into register-based virtual machines and was built to avoid licensing issues with Oracle Corporation regarding the Java platform. Key milestones included its integration into the Android Open Source Project (AOSP) and the addition of the JIT compiler developed by the Google team working on the Android platform.
Dalvik was the default runtime for all Android devices from version 1.0 through Android 4.4 (KitKat). Every Android application ran in its own Linux process with a dedicated instance of the Dalvik VM, providing security and stability through process isolation. Developers used the Android SDK and Java to create APK files containing .dex code. Major OEMs like Samsung, HTC, and Motorola relied on this architecture for their devices, which powered ecosystems like the Google Play Store.
Dalvik was officially replaced as the default runtime by the Android Runtime (ART) starting with Android 5.0 (Lollipop), released in 2014. ART introduced ahead-of-time compilation (AOT), which compiles applications to native code upon installation, improving performance and reducing battery consumption. The transition was managed by Google within the Android Open Source Project, ensuring backward compatibility with existing .dex files. This change was part of a broader effort to enhance the performance of the Android platform against competitors like Apple's iOS and to support more advanced features in future versions of the Android operating system. Category:Android (operating system) software Category:Virtual machines Category:Software using the Apache license