Dalvik-virtuaalikone

Dalvik on aiemmin käytetty Android-käyttöjärjestelmän virtuaalikoneena (VM).

Dalvikin ajoympäristön on Androidissa versiosta 5.0 korvannut Android Runtime (ART), mutta se käyttää edelleen Dalvikin DEX-muotoa. ART käyttää  ajonaikaisen kääntämisen (, JIT) sijaan ennen ajoa tehtävää kääntämistä (), joka nopeuttaa ohjelmien käynnistymistä.

Android-alustalle tehdyt työkalut (Jack) kääntävät Java-ohjelmat DEX-tavukoodiksi ().

Dalvik on Apache 2.0 -lisenssillä julkaistu avoimen lähdekoodin ohjelmisto. Alun perin ohjelmiston kirjoitti Dan Bornstein, joka nimesi sen Dalvik-kalastajakylän mukaan Eyjafjörðurissa, Islannissa, jossa hänen esi-isänsä asuivat.

Arkkitehtuuri 
Javan virtuaalikone perustuu pinopohjaiseen arkkitehtuuriin, Dalvik sen sijaan perustuu rekisteripohjaiseen arkkitehtuuriin. Tämän ratkaisun suorituskyvylliset hyödyt ja haitat ovat kiistelyn kohteena. Oraclen vuonna 2010 ARM-alustalla tekemät standardit ei-graafiset suorituskykytestit Android 2.2:n ja Java SE embedded ohjelmistojen välillä osoittivat Androidin olevan 2-3 kertaa hitaampi sulautettuihin järjestelmiin tarkoitettuun Java SE versioon nähden.

Androidin versiosta 2.2 alkaen Dalvik on tukenut ajonaikaista kääntämistä (JIT).

Dalvik on suunniteltu sallimaan useiden virtuaalikoneiden samanaikaisen suorittamisen tehokkaasti.

Dalvik Androidin ulkopuolella 
Vuonna 2011 ohjelmistotalo Myriad Group tiedotti Alien Dalvik -projektista, ohjelmistokäännöksestä muille käyttöjärjestelmille. Myriadin mukaan valtaosa Dalvik-virtuaalikoneelle tehdyistä Android-sovelluksista toimisi ilman muutoksia Alien Dalvikilla.

Lähteet

Aiheesta muualla 
 Dalvikin projektisivu Google Codessa 

Virtuaalikoneet