Android Runtime

Android Runtime (ART) on Android-alustalla käytettävä ajoympäristö. Ympäristö kääntää ohjelmat natiiville konekielelle.

Android Runtime on korvannut aiemmin käytetyn Dalvik-virtuaalikoneen Androidin versiossa 5.0, mutta se tukee edelleen Dalvikin DEX-tavukoodimuotoa. ART käyttää ennen ajoa tehtävää kääntämistä (, AOT)  ajonaikaisen kääntämisen (, JIT) sijaan, joka nopeuttaa ohjelmien käynnistymistä.
ART parantaa automaattisen roskienkeruun aiheuttamaa hidastumista ja sisältää tiukemman asennuksen aikaisen verifioinnin kuin Dalvik.

Android-alustalle tehdyt työkalut (Jack) kääntävät Java-ohjelmat DEX-tavukoodiksi (). ART käyttää Dalvikin tavukoodimäärittelyä. ART-ympäristössä hyvin toimivat ohjelmat pitäisi toimia hyvin myös Dalvik-ympäristössä, mutta vastakkainen ei välttämättä pidä paikkaansa. Dalvik-virtuaalikoneelle tehdyt sovellukset voivat vielä käyttää ajonaikaista kääntämistä.

Android 7 (N, Nougat) -versiosta lähtien Java-kirjastot ovat käyttäneet OpenJDK:ta aiemman Apache Harmonyn sijaan. Samassa yhteydessä AOT/JIT-käännös on saanut tuen profilointiin perustuvalle optimoinnille.

Android 13:sta myötä ART käyttää Linux-ytimen userfaultfd-ominaisuutta (sivutuksen käsittely käyttäjäavaruudessa): uusi roskienkeruu poistaa ylimääräistä kuormaa, pienentää muistinkäyttöä ja pienentää käännetyn koodin kokoa. Android 13:ssa on uusi julkinen API Reference.refersTo(), JNI-kutsut ovat nopeampia ja ART suorittaa enemmän tavukoodin validoinnista sovelluksen asennuksen aikana jolloin lataaminen nopeutuu.

Lähteet 

Android