ART (Android Runtime) to środowisko uruchomieniowe aplikacji w systemie Android, które od wersji 5.0 (Lollipop) całkowicie zastąpiło wcześniejszy mechanizm Dalvik. ART odpowiada za wykonywanie aplikacji napisanych w językach takich jak Java i Kotlin, przekształconych do formatu DEX. Jego głównym celem jest poprawa wydajności, skrócenie czasu uruchamiania aplikacji oraz lepsze zarządzanie pamięcią.
W praktyce ART to jeden z kluczowych elementów architektury Androida – bez niego aplikacje nie mogłyby być wykonywane na urządzeniu.
Dlaczego ART zastąpił Dalvika
Dalvik wykorzystywał głównie kompilację JIT (Just-In-Time), czyli tłumaczył kod do postaci natywnej w trakcie działania aplikacji. Rozwiązanie to było odpowiednie dla pierwszych generacji smartfonów, ale z czasem zaczęło ograniczać wydajność.
ART wprowadził inne podejście – kompilację AOT (Ahead-Of-Time), czyli przekształcanie kodu aplikacji do postaci natywnej już podczas instalacji. Dzięki temu:
- aplikacje uruchamiają się szybciej,
- system zużywa mniej zasobów CPU w czasie działania,
- poprawia się płynność interfejsu,
- zmniejsza się zużycie energii.
Z czasem ART zaczął łączyć różne techniki kompilacji, tworząc bardziej elastyczny model działania.
Jak działa ART
Proces uruchamiania aplikacji w Androidzie wygląda w uproszczeniu tak:
- Kod aplikacji jest kompilowany do plików .dex.
- Podczas instalacji ART kompiluje kod do postaci natywnej (AOT).
- W trakcie działania system może dodatkowo optymalizować kod przy użyciu kompilacji JIT.
- Wyniki profilowania są zapisywane, aby kolejne uruchomienia były jeszcze szybsze.
Od Androida 7.0 wprowadzono model hybrydowy – ART wykorzystuje zarówno AOT, jak i JIT z profilowaniem, co pozwala optymalizować tylko te fragmenty kodu, które są faktycznie często używane.
Główne cechy ART
ART wprowadził kilka istotnych usprawnień względem Dalvika:
- szybsze uruchamianie aplikacji,
- lepsze zarządzanie pamięcią i bardziej wydajny garbage collector,
- mniejsze opóźnienia podczas działania aplikacji,
- lepsze debugowanie i raportowanie błędów,
- poprawiona stabilność systemu.
Nowoczesne wersje ART są również modularne – od Androida 12 część środowiska runtime może być aktualizowana niezależnie od pełnej aktualizacji systemu.
ART a zarządzanie pamięcią
Jednym z kluczowych elementów ART jest garbage collector, który odpowiada za zwalnianie pamięci nieużywanej przez aplikacje. W porównaniu z Dalvikiem ART oferuje:
- krótsze przerwy podczas czyszczenia pamięci,
- mniejsze ryzyko „zacięć” interfejsu,
- bardziej przewidywalne zachowanie aplikacji,
- lepszą optymalizację pracy wielowątkowej.
To szczególnie istotne w kontekście aplikacji multimedialnych i gier.
ART a bezpieczeństwo
ART działa w połączeniu z mechanizmami bezpieczeństwa Androida, takimi jak:
- sandboxing aplikacji,
- SELinux,
- podpisywanie aplikacji certyfikatami,
- izolacja procesów.
Każda aplikacja działa w osobnym procesie z własną instancją runtime, co ogranicza możliwość ingerencji w inne aplikacje.
ART dziś
Współczesny ART jest znacznie bardziej zaawansowany niż w momencie premiery Androida 5.0. System wykorzystuje profilowanie kodu, kompilację selektywną i dynamiczną optymalizację, aby łączyć wydajność z oszczędnością zasobów.
Dzięki temu Android może działać płynnie zarówno na urządzeniach klasy premium, jak i w wariantach takich jak Android Go, przeznaczonych dla słabszego sprzętu.
ART (Android Runtime) to nowoczesne środowisko uruchomieniowe odpowiedzialne za wykonywanie aplikacji w systemie Android. Zastąpiło Dalvika, wprowadzając kompilację Ahead-Of-Time i hybrydowy model optymalizacji kodu. Dzięki temu aplikacje uruchamiają się szybciej, działają stabilniej i zużywają mniej zasobów. ART jest jednym z fundamentów współczesnego Androida i kluczowym elementem jego wydajności oraz bezpieczeństwa.