Dalvik (maszyna wirtualna)

Z Wikipedii, wolnej encyklopedii

Dalvikmaszyna wirtualna oraz środowisko uruchomieniowe systemu operacyjnego Android[1]. Dalvik był domyślną maszyną wirtualną systemów Android od wersji 1.0 Apple Pie (2008) do wersji 4.4 KitKat (2013). Od wersji 5.0 Lollipop (2014) został zastąpiony przez ART.

Schemat działania środowiska Dalvik oraz jego następcy – ART.

Mechanizm działania[2][3][edytuj | edytuj kod]

Java, która jest domyślnym językiem w przypadku aplikacji systemu Android[4], wymaga, by jej kod źródłowy (.java) został skompilowany do kodu bajtowego (.class). Proces ten wykonywany jest przez program (kompilator) javac, dostępny w JDK. Następnie program dx (będący częścią Android SDK)[5] konsoliduje tak skompilowane klasy w jeden plik, charakterystyczny dla systemu Android (classes.dex). Plik classes.dex wraz z innymi zasobami (np. obrazami wyświetlanymi w aplikacji) pakowany jest do archiwum apk. W momencie instalacji pakietu apk, ma miejsce optymalizacja kodu bajtowego (zawartego w classes.dex) przez program dexopt. Tak przygotowany kod umieszczany jest w katalogu /data/dalvik-cache. Podczas każdego uruchomienia aplikacji, kod bajtowy jest ładowany do pamięci, następnie kompilowany do kodu maszynowego (w trybie JIT) oraz wykonywany.

Dalvik a maszyna JRE[edytuj | edytuj kod]

Dalvik nie jest maszyną wirtualną Javy i używa własnego kodu bajtowego[6][2], jednak możliwa jest konwersja kodu bajtowego Javy do kodu Dalvika (za pomocą programu dx)[2].

Projekty podobne[edytuj | edytuj kod]

Alien Dalvik to port maszyny wirtualnej Dalvik na inne systemy operacyjne niż Android[7].

Przypisy[edytuj | edytuj kod]

  1. ART and Dalvik | Android Open Source Project. source.android.com. [dostęp 2015-09-20].
  2. a b c What is Dalvik and dalvik-cache?. stackoverflow.com. [dostęp 2015-09-20].
  3. Andrei Frumusanu: A Closer Look at Android RunTime (ART) in Android L. [dostęp 2015-09-20].
  4. I want to develop Android Apps - What languages should I learn?. Android Authority. [dostęp 2015-09-20].
  5. Tools Help | Android Developers. developer.android.com. [dostęp 2015-09-20].
  6. Dalvik bytecode | Android Open Source Project. source.android.com. [dostęp 2015-09-20].
  7. Piotr Barycki: Alien Dalvik 2.0 – piękny pomysł, który nie ma większych szans na powodzenie. [dostęp 2015-09-21].

Linki zewnętrzne[edytuj | edytuj kod]