Z Wikipedii, wolnej encyklopedii
Android Runtime
(
ART
) ?
?rodowisko uruchomieniowe
systemu
Android
. Zaprezentowany (jako podgl?d deweloperski) wraz z premier? wersji
4.4 KitKat
, domy?lne ?rodowisko od wersji
5.0 Lollipop
.
Schemat działania architektury ART w porownaniu do Dalvika
Wi?kszo?? aplikacji systemu Android została napisana w
Javie
. Programy napisane w tym j?zyku
kompilowane
s? do
kodu bajtowego
(po?redniego). Na tym etapie nie ma jeszcze mo?liwo?ci wykonania owego kodu bezpo?rednio przez
procesor
, jako ?e kod po?redni musi zosta? skompilowany do
kodu maszynowego
. W momencie instalacji pakietu (
APK
), zawarty w nim plik z kodem bajtowym (classes.dex) jest kompilowany przez program dex2oat do wykonywalnego kodu maszynowego (
ELF
), odpowiedniego dla danej
architektury procesora
(np.
ARMv7-A
czy te?
x86
). Tak skompilowany kod umieszczany jest zazwyczaj w folderze /data/dalvik-cache/ (nazw? nawi?zuj?c? do poprzedniego ?rodowiska zachowano dla kompatybilno?ci).
Usprawnienia w porownaniu z poprzednim ?rodowiskiem (Dalvik)
[
edytuj
|
edytuj kod
]
W przeciwie?stwie do
Dalvika
, ktory korzysta z kompilacji
just-in-time
(tzn. kod bajtowy kompilowany jest przy ka?dym uruchomieniu aplikacji)
[1]
[2]
, ART u?ywa metody ahead-of-time (kod po?redni kompilowany jest raz, mianowicie przy instalacji aplikacji). Pozwoliło to na nieznaczne zmniejszenie czasu uruchamiania aplikacji (i całego systemu) oraz redukcj? poboru energii
[2]
[3]
. Usprawniono rownie?
od?miecanie
(garbage collection), co przyczyniło si? do wzrostu wydajno?ci
[2]
[4]
. Dodatkowo, dodano nowe opcje deweloperskie umo?liwiaj?ce tworcom aplikacji łatwiejsze
debugowanie
[4]
.
Wady w porownaniu z Dalvikiem
[
edytuj
|
edytuj kod
]
Bior?c pod uwag? fakt, ?e kompilacja (ahead-of-time) kodu bajtowego ma miejsce podczas instalacji aplikacji, aplikacje s? instalowane dłu?ej
[1]
[3]
. Kod maszynowy zajmuje wi?cej miejsca ni? kod bajtowy, co przekłada si? na mniejsz? przestrze? magazynow? dost?pn? dla u?ytkownika
[1]
[3]
.