Generated by GPT-5-mini| Android Runtime (ART) | |
|---|---|
| Name | Android Runtime (ART) |
| Developer | |
| Released | 2014 |
| Programming language | C++ / Java / Kotlin |
| Operating system | Android |
| License | Apache License |
Android Runtime (ART) Android Runtime (ART) is the managed runtime used by Android to execute applications written primarily in Java and Kotlin. Introduced by Google as the successor to the Dalvik Virtual Machine, ART provides ahead-of-time and just-in-time compilation strategies, improved garbage collection, and enhanced debugging and profiling facilities. ART’s evolution has influenced device performance, battery life, and app compatibility across major smartphone and tablet manufacturers such as Samsung, Huawei, and OnePlus.
ART was announced and integrated into Android as part of ongoing platform development by Google and the Android Open Source Project. It replaced the earlier Dalvik Virtual Machine model to address limitations identified by engineers at Google and contributors from vendors like Qualcomm and MediaTek. ART executes bytecode produced by compilers for Java and Kotlin and interoperates with native code via the Java Native Interface and platform components such as Bionic and libart.
ART’s architecture comprises a compiler toolchain, runtime libraries, a garbage collector, a class linker, and an execution engine maintained within the Android Open Source Project. The compiler front-end works with bytecode formats produced by javac and the Kotlin compiler and outputs native machine code for architectures like ARM, ARM64, x86, and RISC-V. Key components include the garbage collector improvements, the base::Runtime core, the JIT compiler, and the profile-guided optimizer derived from research at Google Research and engineering teams collaborating with vendors such as Intel.
ART supports multiple compilation modes: ahead-of-time (AOT) compilation, just-in-time (JIT) compilation, and profile-guided compilation. AOT compilation occurs during application installation or system image creation, similar to techniques used in LLVM-based toolchains, producing native code cached in the device’s flash memory. JIT compilation compiles hot code paths during runtime, assisted by a profiler that records method usage patterns; the profile data is used by the profile-guided optimizer to guide later AOT compilation. These modes parallel concepts in virtual machine engineering practiced at organizations like Oracle Corporation for the HotSpot JVM and research from institutions including Massachusetts Institute of Technology.
ART introduced improvements in startup time, execution throughput, and memory utilization compared to earlier approaches. The runtime implements concurrent and generational garbage collectors influenced by designs from Microsoft and IBM research on managed runtimes. ART’s heap management includes compacting and non-compacting strategies, low-pause collectors, and improvements targeting multicore processors from Qualcomm and Samsung. Memory optimizations affect apps developed with frameworks such as Android Jetpack and services provided by companies like Netflix and Spotify on mobile devices.
Migration from Dalvik to ART required compatibility work across the Android Open Source Project and collaboration with app developers and vendors. Many compatibility challenges involved native libraries, runtime assumptions made by apps, and behavior of the Java Native Interface. Google provided tooling and documentation for developers using environments like Android Studio and continuous integration services such as Travis CI and CircleCI to test behavior under ART. Semiconductor partners including Qualcomm and MediaTek updated software stacks to support ART’s native code generation on their System on Chips.
ART participates in Android’s broader security model alongside the Linux kernel, SELinux, and application sandboxing enforced by Android’s permission framework. The runtime reduces attack surface via hardened class verification, mitigations against code-reuse attacks influenced by techniques used by Microsoft and Apple Inc., and control-flow integrity features adopted from academic work at institutions like Carnegie Mellon University. ART interfaces with secure components such as Android Keystore and benefits from platform security updates distributed by OEMs like Google and Samsung.
Tooling for ART includes compilers, profilers, debuggers, and tracing utilities integrated into Android Studio and command-line tools in the Android SDK. Developers use the Android Debug Bridge and profilers modeled after tools from JetBrains and Eclipse Foundation to analyze performance and memory use. Continuous profiling and APK inspection for ART interact with services like Firebase for crash reporting and analytics, and build systems such as Gradle orchestrate compilation targeting ART.
ART’s adoption across Android releases reshaped app optimization practices for major developers like Google, Facebook, Inc., Twitter, Inc., and gaming studios publishing on Google Play and OEM app stores. By enabling AOT and JIT strategies and improving lifecycle behavior, ART influenced battery and performance expectations in flagship devices from Pixel and manufacturers including Sony and LG. ART continues to be maintained within the Android Open Source Project with contributions from corporations, research groups, and individual contributors, affecting the evolution of the mobile application landscape and platform performance standards.