Przejdź do zawartości

Android Runtime

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez ZsuiwaL (dyskusja | edycje) o 23:30, 5 mar 2015. Może się ona znacząco różnić od aktualnej wersji.
Schemat działania architektury ART w porównaniu do Dalvika

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.

Mechanizm działania

Wszystkie aplikacje sytemu Android napisane są 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 porównaniu z poprzednim środowiskiem (Dalvik)

W przeciwieństwie do Dalvika, który korzysta z kompilacji just-in-time (tzn. kod bajtowy kompilowany jest przy każdym uruchomieniu aplikacji), 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. Usprawniono również odśmiecanie (garbage collection), co przyczyniło się do wzrostu wydajności. Dodatkowo, dodano nowe opcje deweloperskie umożliwiające twórcom aplikacji łatwiejsze debugowanie.

Wady w porównaniu z Dalvikiem

Biorąc pod uwagę fakt, że kompilacja (ahead-of-time) kodu bajtowego ma miejsce podczas instalacji aplikacji, aplikacje są instalowane dłużej. Kod maszynowy zajmuje więcej miejsca niż kod bajtowy, co przekłada się na mniejszą przestrzeń magazynową dostępną dla użytkownika.

Linki zewnętrzne