Dalvik to historyczne środowisko uruchomieniowe aplikacji w systemie Android, odpowiedzialne za wykonywanie kodu napisanego w języku Java. Było to rozwiązanie stosowane w Androidzie od pierwszych wersji systemu aż do Androida 4.4, zanim zostało zastąpione przez ART (Android Runtime).

Dalvik został zaprojektowany specjalnie z myślą o urządzeniach mobilnych, które w pierwszych latach rozwoju Androida miały bardzo ograniczoną ilość pamięci RAM, słabe procesory i niewielką moc obliczeniową. Jego głównym celem była efektywność i oszczędność zasobów.

Dlaczego powstał Dalvik

Standardowa maszyna wirtualna Java (JVM) nie była zoptymalizowana pod kątem urządzeń mobilnych. Wymagała stosunkowo dużej ilości pamięci i była projektowana z myślą o komputerach desktopowych oraz serwerach.

Zespół Androida stworzył więc Dalvika jako alternatywną maszynę wirtualną, która:

  • działała na zmodyfikowanym modelu wykonywania kodu,
  • była zoptymalizowana pod kątem niskiego zużycia pamięci,
  • umożliwiała uruchamianie wielu aplikacji jednocześnie w izolowanych instancjach,
  • była lepiej przystosowana do architektury ARM.

Każda aplikacja w Androidzie działała w osobnym procesie z własną instancją Dalvika, co zwiększało stabilność i bezpieczeństwo systemu.

Jak działał Dalvik

Aplikacje Android były pisane w Javie (a później również w Kotlinie), a następnie kompilowane do plików .class.

W kolejnym kroku pliki te były przekształcane do formatu .dex (Dalvik Executable), który był zoptymalizowany pod kątem:

  • mniejszego rozmiaru,
  • efektywnego zarządzania pamięcią,
  • współdzielenia klas między aplikacjami.

Dalvik korzystał z mechanizmu JIT (Just-In-Time compilation), który kompilował kod do postaci natywnej w trakcie wykonywania programu. Oznaczało to, że aplikacja przy pierwszym uruchomieniu była interpretowana, a często wykonywane fragmenty kodu były dynamicznie kompilowane w celu zwiększenia wydajności.

Zalety Dalvika

  • niskie zużycie pamięci w porównaniu do klasycznej JVM,
  • izolacja aplikacji w osobnych procesach,
  • dostosowanie do architektury mobilnej,
  • dobra skalowalność w pierwszych generacjach smartfonów,
  • otwarta architektura wspierająca rozwój Androida.

Dzięki Dalvikowi Android mógł działać na szerokiej gamie urządzeń – od tanich smartfonów po bardziej zaawansowane modele.

Ograniczenia Dalvika

Mimo swoich zalet Dalvik miał też istotne wady:

  • wolniejsze uruchamianie aplikacji,
  • wyższe zużycie CPU przy interpretacji kodu,
  • ograniczenia wydajności przy bardziej złożonych aplikacjach,
  • zależność od kompilacji JIT w czasie rzeczywistym,
  • większe obciążenie baterii w porównaniu do późniejszego ART.

Wraz ze wzrostem mocy urządzeń mobilnych pojawiła się potrzeba bardziej wydajnego rozwiązania.

Dalvik vs ART

W Androidzie 4.4 wprowadzono opcjonalnie nowe środowisko – ART (Android Runtime), które od Androida 5.0 całkowicie zastąpiło Dalvika.

Najważniejsze różnice:

  • Dalvik używał głównie kompilacji JIT,
  • ART wprowadził kompilację AOT (Ahead-Of-Time) podczas instalacji aplikacji,
  • ART oferował szybsze uruchamianie aplikacji i lepszą wydajność,
  • ART poprawił zarządzanie pamięcią i działanie garbage collectora.

Dzięki ART aplikacje uruchamiają się szybciej i działają bardziej płynnie niż w czasach Dalvika.

Znaczenie Dalvika

Dalvik odegrał kluczową rolę w początkowym sukcesie Androida. Był dostosowany do realiów sprzętowych pierwszych smartfonów i umożliwił dynamiczny rozwój ekosystemu aplikacji mobilnych.

Choć dziś nie jest już używany w nowych wersjach systemu, pozostaje ważnym elementem historii Androida i rozwoju środowisk uruchomieniowych dla urządzeń mobilnych.

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.