Android futásidejű (ART) egy alkalmazás futásidejű környezet által használt Android operációs rendszer. A Dalvik, az Android által eredetileg használt virtuális gép cseréje, az ART elvégzi az alkalmazás bájtkódjának natív utasításokká történő fordítását, amelyeket később az eszköz futásidejű környezete hajt végre.
android.googlesource.com / platform / art/
C, C++
Android (operációs rendszer)
source.android.com/devices/tech/dalvik/art.html
Android 2.2 a” Froyo ” trace-alapú just-in-time (JIT) fordítást hozott a Dalvik-ba, optimalizálva az alkalmazások végrehajtását azáltal, hogy folyamatosan profilozza az alkalmazásokat minden egyes futtatáskor, és dinamikusan lefordítja a bájtkódjuk gyakran végrehajtott rövid szegmenseit natív gépi kódba. Míg a Dalvik értelmezi az alkalmazás többi bájtkódját, a rövid bájtkód szegmensek natív végrehajtása, az úgynevezett “nyomok”, jelentős teljesítményjavulást biztosít.
a Dalviktól eltérően az ART bevezeti az idő előtti (AOT) összeállítás használatát azáltal, hogy telepítéskor teljes alkalmazásokat fordít natív gépi kódba. A Dalvik interpretációs és nyomkövetési JIT-összeállításának kiküszöbölésével az ART javítja az általános végrehajtási hatékonyságot és csökkenti az energiafogyasztást, ami jobb akkumulátor-autonómiát eredményez a mobil eszközökön. Ugyanakkor az ART az alkalmazások gyorsabb végrehajtását, a jobb memóriaelosztási és szemétgyűjtési (GC) mechanizmusokat, az új alkalmazások hibakeresési funkcióit és az alkalmazások pontosabb magas szintű profilozását eredményezi.
a visszamenőleges kompatibilitás fenntartása érdekében az ART ugyanazt a bemeneti bájtkódot használja, mint a Dalvik, amelyet a szabványon keresztül szállítanak .Dex fájlok az APK fájlok részeként, míg a .odex fájlok helyébe futtatható és Linkable Format (ELF) futtatható. Miután egy alkalmazás segítségével összeállított ART on-device dex2oat segédprogram, akkor fut kizárólag a lefordított Elf futtatható; ennek eredményeként az ART kiküszöböli a Dalvik értelmezésével és nyomkövetési alapú JIT-összeállításával kapcsolatos különféle alkalmazás-végrehajtási általános költségeket. Hátránya, hogy az ART további időt igényel a fordításhoz, amikor egy alkalmazás telepítve van, és az alkalmazások valamivel nagyobb mennyiségű másodlagos tárhelyet (ami általában flash memória) foglalnak el a lefordított kód tárolásához.
az Android 4.4 “KitKat” a művészet technológiai előnézetét hozta, beleértve az alternatív futásidejű környezetet, és a Dalvikot alapértelmezett virtuális gépként tartotta. A következő nagy Android kiadásban, Android 5.0 “nyalóka”, Dalvikot teljesen felváltotta a művészet.
az Android 7.0 “Nougat” a Java futásidejű környezetét OpenJDK-ra váltotta, bemutatva egy JIT fordítót kódprofilozással az ART-hoz, amely lehetővé teszi, hogy folyamatosan javítsa az Android-alkalmazások teljesítményét futás közben. A JIT compiler kiegészíti az ART jelenlegi idő előtti fordítóját, és segít a futásidejű teljesítmény javításában, valamint a tárhely megtakarításában azáltal, hogy csak az alkalmazások egyes részeit fordítja le.