Hamarosan utódot kap az Android virtuális gépe
Az Android következő kiadásában várhatóan mindenki részesül majd a következő generációs futtatókörnyezet áldásaiból. Az ART a Dalvik Java-motort váltja majd, a JIT fordítás helyett telepítéskor fordul le a mobilos alkalmazás.
Az Android 4.4-gyel együtt a Google kiadta a következő generációs androidos futtatókörnyezetet, az ART-ot is. Az Android.com-on elrejtett igen tömör leírás szerint az ART egy új, kísérleti runtime, amely a KitKatban mutatkozik be, és a fejlesztői üzemmódra váltva aktiválható, tesztelhető. Az új szoftverhez a Google egyelőre fejlesztőktől és gyártópartnerektől vár visszajelzést, az Android következő verziójáig a felhasználóknak várniuk kell.
Mikor jön?
"Nem akarok ígéreteket tenni, de úgy képzelem, hogy a kövezkező [Android] kiadásra készen lehet. Átváltunk, ahogy készen lesz. [Az ART] egészen gyors már most is, és tovább optimalizáljuk, feltéve, hogy ezzel jól haladunk, a következő adandó alkalommal váltani tudunk" - mondta Dave Burke vezető fejlesztő a ReadWriteWeb kérdésére. "Aktívan dolgozunk rajta és ha minden tekintetben jobb már a Dalviknál, akkor cserélni fogunk" - tette hozzá.
A Dalvik futtatókörnyezet egyidős az Androiddal, egyetlen jelentős frissítést kapott története során, a 2.2-es kiadásban új JIT fordítót kapott, amely jelentős teljesítménynövekedést hozott. A Dalvikon nem végzett aktív fejlesztést a Google - vallja be Burke, elsősorban finomhangolást és portolást végeztek a környezeten, ez utóbbi az újabb processzorok és utasításkészletek (például x86) támogatását hozta el.
Felmerült mára a kérdés, hogy mi lesz a következő lépés a Dalvik számára, a válasz pedig az alapoktól történő újraírás volt. Ennek eredménye az Android Runtime, rövidítve ART, amely tulajdonképp Dalvik 2.0-ként is felfogható. Az új futtatómotor visszafelé kompatibilis a Dalvikra írt kóddal, az Android 4.4 (KitKat) kiadásnak már része, Nexus 5-ön már a fejlesztők ki is próbálhatják, a tapasztalatok szerint némi gyorsulást hoz, egyébként fennakadást, fagyást vagy egyéb rendellenes viselkedést nem okoz. A Google mindenesetre figyelmeztet, hogy mindennapi használatban hagyjuk a Dalvikot alapértelmezett környezetnek, mert az ART még számos kompatibilitási problémával rendelkezhet, az egyelőre minimális tesztelésnek betudhatóan.
És mit hoz?
A Dalvik JIT hagyományos Java-alapokon működik. A fejlesztő által előállított köztes bájtkódot futtatás közben (just-in-time) fordítja gépi kódra, a hardveres alapok ismeretében, amely változatos ARM-processzorokon illetve x86-on is eltérő lehet. A folyamat nem túl hatékony, az alkalmazás minden indulásánál újra és újra erőforrást (energiát és processzorteljesítményt) használ a gépi kód generálásához, ez megnyújtja az indulás idejét is. A fordítás az alkalmazás futása közben is zajlik, ahogy új könyvtárakat vagy függvényeket aktivál az app, ami szakadozást, az ideális alatt maradó felhasználói élményt hoz.
Machine recruiting: nem biztos, hogy szeretni fogod Az AI visszafordíthatatlanul beépült a toborzás folyamatába.
A JIT mellett szóló fontos érv a hordozhatóság, az alkalmazás minden olyan hardverplatformon futni fog, amely az adott futtatókörnyezetet támogatja, legyen az egy ARM-implementáció vagy épp egy Intel x86. Az Android Police szerint az ART egyik újdonsága az lesz, hogy egy eszközön ezt a folyamatot a jövőben csak egyszer, az alkalmazás telepítésénél lesz szükséges elvégezni. Szaknyelven, a just-in-time (JIT) fordítás helyére ahead-of-time (AOT) fordítás lép, ezt azonban nem a fejlesztőnek kell elvégeznie és támogatnia.
Az Android Police tapasztalatai szerint az ART aktiválását követően a rendszer az összes már telepített alkalmazást újrafordítja, ami roppant időigényes folyamat. Ezt követően azonban az indulási idő látványosan lerövidül, az appok válaszideje alacsonyabb, az animációk pedig folytonosabbakká válnak. Hátrány ugyanakkor, hogy az appok kódja némileg nagyobb lesz, mivel azonban maga a kód csupán töredéke a teljes alkalmazásnak, az elfogyasztott tárhely 10-20 százaélkos növekedése a teljes app szintjén szinte elhanyagolható.