keskiviikkona 23. syyskuuta
MAAILMA

Android Runtime – tätä et tiennyt

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

Android Runtime. Kuva: Wikimedia Commons.
Android Runtime arkkitehtuuri.

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ä (engl. ahead-of-time, AOT) ajonaikaisen kääntämisen (engl. just-in-time, 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 (lyhenne sanoista Dalvik Executable). 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:n 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.

Artikkeli perustuu Wikipedian sivuun Android Runtime (CC BY-SA 4.0). Otsikko on Ilta-Wikin muotoilema.

Lue myös