Android Runtime (ART) is an application runtime environment used by
the Android operating system. Replacing Dalvik, the process virtual
machine originally used by Android, ART performs the translation of
the application's bytecode into native instructions that are later
executed by the device's runtime environment.
Android 2.2 "Froyo" brought trace-based just-in-time (JIT) compilation
into Dalvik, optimizing the execution of applications by continually
profiling applications each time they run and dynamically compiling
frequently executed short segments of their bytecode into native
machine code. While Dalvik interprets the rest of application's
bytecode, native execution of those short bytecode segments, called
"traces", provides significant performance improvements.
Unlike Dalvik, ART introduces the use of ahead-of-time (AOT)
compilation by compiling entire applications into native machine code
upon their installation. By eliminating Dalvik's interpretation and
trace-based JIT compilation, ART improves the overall execution
efficiency and reduces power consumption, which results in improved
battery autonomy on mobile devices. At the same time, ART brings
faster execution of applications, improved memory allocation and
garbage collection (GC) mechanisms, new applications debugging
features, and more accurate high-level profiling of
To maintain backward compatibility, ART uses the same input bytecode
as Dalvik, supplied through standard
.dex files as part of APK files,
.odex files are replaced with Executable and Linkable Format
(ELF) executables. Once an application is compiled by using ART's
on-device dex2oat utility, it is run solely from the compiled ELF
executable; as a result, ART eliminates various application execution
overheads associated with Dalvik's interpretation and trace-based JIT
compilation. As a downside, ART requires additional time for the
compilation when an application is installed, and applications take up
slightly larger amounts of secondary storage (which is usually flash
memory) to store the compiled code.
Android 4.4 KitKat brought a technology preview of ART, including it
as an alternative runtime environment and keeping Dalvik as the
default virtual machine. In the subsequent major Android
release, Android 5.0 Lollipop, Dalvik was entirely replaced by ART.
Android 7.0 Nougat introduced JIT compiler with code profiling to ART,
which lets it constantly improve the performance of Android apps as
they run. The JIT compiler complements ART's current Ahead of Time
compiler and helps improve runtime performance.
Computer programming portal
Android software development – various concepts and software
development utilities used for the creation of Android applications
Android version history – a history and descriptions of
Android releases, listed primarily by their official API levels
Comparison of application virtualization software – various
portable and scripting language virtual machines
Virtual machine – an emulation of a particular computer
system, with different degrees of implemented functionality
^ a b c Andrei Frumusanu (July 1, 2014). "A Closer Look at Android
RunTime (ART) in Android L". AnandTech. Retrieved July 5, 2014.
^ Ben Cheng; Bill Buzbee (May 2010). "A JIT Compiler for Android's
Dalvik VM" (PDF). android-app-developer.co.uk. Google.
pp. 5–14. Retrieved March 18, 2015.
^ Phil Nickinson (May 26, 2010). "
Google Android developer explains
more about Dalvik and the JIT in Froyo". androidcentral.com. Retrieved
July 8, 2014.
^ a b "Android Developers: ART and Dalvik". source.android.com. March
9, 2015. Retrieved March 18, 2015.
^ a b "Android Developers: Configuring ART – How ART works".
source.android.com. March 9, 2015. Retrieved March 18, 2015.
^ Sean Buckley (November 6, 2013). "'ART' experiment in Android KitKat
improves battery life and speeds up apps". Engadget. Retrieved July 5,
^ Daniel P. (November 7, 2013). "Experimental
Google ART runtime in
Android KitKat can bring twice faster app executions". phonearena.com.
Retrieved July 5, 2014.
^ Brad Linder (October 15, 2014). "What's new in Android 5.0
Lollipop?". liliputing.com. Retrieved October 15, 2014.
^ "Implementing ART Just-In-Time (JIT) Compiler". source.android.com.
January 22, 2017. Retrieved January 22, 2017.
Wikimedia Commons has media related to Android Runtime.
Android Basics 101: Understanding ART, the
Android Runtime on YouTube,
XDA Developers, February 12, 2014
ART: Android's Runtime Evolved on YouTube,
Google I/O 2014, by Anwar
Ghuloum, Brian Carlstrom and Ian Rogers
A JIT Compiler for Android's Dalvik VM on YouTube,
Google I/O 2010, by
Ben Cheng and Bill Buzbee
Delivering Highly Optimized
Android Runtime (ART) and Web Runtime on
Intel Architecture, Intel, August 4, 2015, by Haitao Feng and Jonathan
Android 7.1 for Developers: Profile-guided JIT/AOT compilation,
Android Developers, describes ART changes in Android 7
Software Development Kit (SDK)
Android Debug Bridge
Android Debug Bridge (ADB)
Android application package
Android application package (APK)
Native Development Kit (NDK)
Android Open Accessory Development Kit
Android Runtime (ART)
Google Cloud Messaging (GCM)
Firebase Cloud Messaging (FCM)
Android Development Tools (ADT)
Languages & Databases
Events & Communities
Android Open Source Project
Android Open Source Project (AOSP)
Ice Cream Sandwich (4.0)
Jelly Bean (4.1–4.3)
Pixel & Pixel XL
Pixel 2 &
Pixel 2 XL
HTC One (M7)
HTC One (M8)
LG G Pad 8.3
Samsung Galaxy S4
Sony Xperia Z Ultra
Barnes & Noble Nook
Nokia X software platform
Ubuntu for Android
Google Chrome for Android
Movies & TV
Google Play Services
Asus Zen UI
Google Pixel UI
LG UX (Optimus UI)
Samsung Experience (Samsung TouchWiz)
Free and open-source applications
Index of articles
Java vs. Android API
Oracle America, Inc. v. Google, Inc.
Smartphone patent wars