The Info List - Android Runtime

--- Advertisement ---

Android Runtime
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.[1] 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.[2][3] 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 applications.[1][4][5] To maintain backward compatibility, ART uses the same input bytecode as Dalvik, supplied through standard .dex
files as part of APK files, while the .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.[1][4][5] 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.[6][7] In the subsequent major Android release, Android 5.0 Lollipop, Dalvik was entirely replaced by ART.[8] 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.[9] See also[edit]

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, 2014.  ^ Daniel P. (November 7, 2013). "Experimental Google
ART runtime in Android KitKat
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. 

External links[edit]

Wikimedia Commons has media related to Android Runtime.

Official website Android Basics 101: Understanding ART, the Android Runtime
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
Android Runtime
(ART) and Web Runtime on Intel
Architecture, Intel, August 4, 2015, by Haitao Feng and Jonathan Ding Android 7.1 for Developers: Profile-guided JIT/AOT compilation, Android Developers, describes ART changes in Android 7

v t e


Software development Category

Official development tools

Software Development Kit (SDK)

Android Debug Bridge
Android Debug Bridge
(ADB) Fastboot Android application package
Android application package

Native Development Kit (NDK) Android Open Accessory Development Kit Bionic RenderScript Skia Dalvik Android Runtime
Android Runtime
(ART) Firebase

Cloud Messaging (GCM) Firebase Cloud Messaging (FCM)

AdMob Material Design Fonts

Droid Roboto Noto


Other development tools

OpenBinder Apache Harmony OpenJDK Gradle

Integrated development environments (IDE)

Android Studio

IntelliJ IDEA


Android Development Tools (ADT)

App Inventor

Languages & Databases

Java Kotlin XML C C++ SQLite

Virtual reality

Cardboard Daydream

Events & Communities

I/O Developer Challenge Developer Lab Android Open Source Project
Android Open Source Project


1.0 1.1 Cupcake (1.5) Donut (1.6) Eclair (2.0–2.1) Froyo (2.2) Gingerbread (2.3) Honeycomb (3.x) Ice Cream Sandwich (4.0) Jelly Bean (4.1–4.3) KitKat (4.4) Lollipop (5.x) Marshmallow (6.0) Nougat (7.x) Oreo (8.x) P


Android Auto Android Things Android TV Wear OS

Smartphones & Tablets


Pixel & Pixel XL Pixel 2
Pixel 2
& Pixel 2
Pixel 2
XL Pixel C

Nexus devices

Nexus One Nexus S Galaxy Nexus Nexus 4 Nexus 5 Nexus 5X Nexus 6 Nexus 6P Nexus 7

2012 version 2013 version

Nexus 10 Nexus 9 Nexus Q Nexus Player

Play edition

HTC One (M7) HTC One (M8) LG G Pad 8.3 Moto G Samsung Galaxy S4 Sony Xperia Z Ultra

Android One

Customized variants


Remix OS

AOKP Baidu Yi Barnes & Noble Nook ColorOS CopperheadOS CyanogenMod Fire OS Funtouch OS Flyme OS LeWa OS LineageOS MIUI Nokia X software platform OPhone OmniROM OxygenOS Replicant Ubuntu for Android XobotOS Yun OS




Earth Gmail Google
Chrome for Android Goggles Hangouts Maps





Books Games Movies & TV Music Newsstand

Sky Talk Voice


Maps Google
Play Services Google

Alternative user interfaces

Asus Zen UI Hive UI HTC Sense Google
Pixel UI LG UX
(Optimus UI) Samsung Experience
Samsung Experience
(Samsung TouchWiz) Huawei EMUI


Custom firmware Features Free and open-source applications Games Google
apps Launchers

Related topics

Index of articles Google Androidland Lawn statues Chromecast Java vs. Android API Legal issues

Oracle America, Inc. v. Google, Inc. Smartphone patent wars