Android Runtime (ART)

The ART module aims to improve the Android experience by offering users the latest managed runtime optimizations, features, and bug fixes. Users are no longer stuck on the runtime that shipped with their device. Developers no longer wait for years for the new functionalities. Improvements to the runtime and libraries are shared across all Android partners.

The Android Runtime (ART) and managed core library (libcore) were part of the Runtime module effort in Android 10 along with the native runtime (Bionic) and ICU.

In Android 11, ART and libcore are packaged as non-updateable APEX. Bionic and ICU (code and data) remain on the platform and are separated from ART to improve updatability.

Module plans

  • In Android 12, the ART module is a signed and updatable APEX.

  • In Android 11, ART and libcore are packaged as non-updateable APEX. Bionic and ICU (code and data) remain on the platform and are separated from ART to improve updatability.

  • In Android 10, ART and the managed core library (libcore) are part of the Runtime module effort, long with the native runtime (Bionic) and ICU.

Module boundary

The following module boundaries are created for the project.

  • art
  • external/apache-xml
  • external/bouncycastle
  • external/okhttp
  • external/oj-libjdwp
  • libcore
  • libnativehelper
  • system/core/libnativebridge
  • system/core/libnativeloader

Package format

The ART module ships as an APEX since it is a critical system component. Applications and services inside APKs require the ART module to be present before they can be started.