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:

  1. Kod aplikacji jest kompilowany do plików .dex.
  2. Podczas instalacji ART kompiluje kod do postaci natywnej (AOT).
  3. W trakcie działania system może dodatkowo optymalizować kod przy użyciu kompilacji JIT.
  4. 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.

Kategorie:

mgr Bartłomiej_Speth

Absolwent wydziału Fizyki Uniwersytetu im. Adama Mickiewicza w Poznaniu na kierunku Fizyka z informatyką. Miłośnik komputerów, sprzętu komputerowego oraz otwartego oprogramowania. Specjalizuje się w budowie, naprawach, modyfikacjach laptopów jak i jednostek stacjonarnych. Zapalony PC'towiec od momentu, w którym otrzymał swój pierwszy komputer z procesorem 80286.