• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Dalvik - maszyna wirtualna

    Przeczytaj także...
    Kod bajtowy (ang. bytecode) – nazwa reprezentacji kodu używanej przez maszyny wirtualne oraz przez niektóre kompilatory. Kod składa się z ciągu instrukcji (których kody operacji mają zwykle długość jednego bajta, stąd nazwa), które nie odpowiadają bezpośrednio instrukcjom procesora i mogą zawierać instrukcje wysokiego poziomu (takie jak np. stwórz obiekt klasy X, połącz dwa łańcuchy itd.), jednak w przeciwieństwie do kodu źródłowego wymagają analizy tylko pojedynczych poszczególnych operacji.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.
    Java Development Kit (JDK) – darmowe oprogramowanie firmy Sun Microsystems (będący własnością Oracle Corporation) udostępniające środowisko niezbędne do programowania w języku Java. Produkt dostępny jest dla wielu systemów operacyjnych – najpopularniejsze wersje są dla systemów Solaris, Linux i Microsoft Windows.

    Dalvikmaszyna wirtualna oraz środowisko uruchomieniowe systemu operacyjnego Android. 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[ | edytuj kod]

    Java, która jest domyślnym językiem w przypadku aplikacji systemu Android, 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) 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.

    Konsolidacja (linkowanie od ang. link - łączyć) to proces polegający na połączeniu skompilowanych modułów (plików zawierających kod obiektowy lub plików bibliotek statycznych) i utworzeniu pliku wykonywalnego lub rzadziej innego pliku obiektowego. Dodatkowo podczas konsolidacji do pliku wynikowego mogą być dołączone odpowiednie nagłówki i informacje charakterystyczne dla konkretnego formatu pliku wykonywalnego.Rozszerzenie pliku .apk oznacza plik Android Package (APK). Ten format pliku, będący odmianą formatu JAR, używany jest do dystrybucji i instalacji pakietów na system operacyjny Android.

    Dalvik a maszyna | edytuj kod]

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

    Projekty podobne[ | edytuj kod]

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

    Przypisy[ | edytuj kod]

    1. ART and Dalvik | Android Open Source Project. source.android.com. [dostęp 2015-09-20].
    2. 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 kod]

  • Kod i dokumentacja
  • Android SDK – zestaw narzędzi (SDK) dla programistów przeznaczony do tworzenia aplikacji na platformę Android. Składa się z dwóch części: SDK Tools – wymaganej do tworzenia aplikacji niezależnie od wersji Androida, oraz Platform Tools – czyli narzędzi zmodyfikowanych pod kątem konkretnych wersji systemu.System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.




    Warto wiedzieć że... beta

    Biblioteka uruchomieniowa (ang.) runtime library - zestaw funkcji wyłączonych w czasie kompilacji kodu programu do biblioteki programistycznej, łączonych w czasie kompilacji kodu programu do pliku uruchomieniowego (np. .exe) i wykorzystywanych w trakcie działania (ang. runtime) danego programu komputerowego. Biblioteki stosuje się w celu standaryzacji, funkcjonalnej powtarzalności i efektywności działania systemu. Można kompilować kody programów bez linkowania do bibliotek uruchomieniowych, lecz wtedy tak skompilowane programy zajmowałyby znacznie więcej pamięci.
    Android – system operacyjny dla urządzeń mobilnych takich jak telefony komórkowe, smartfony, tablety, tablety PC i netbooki. Obecnie (2013) najpopularniejszy system mobilny na świecie. Android został oparty na jądrze Linux oraz oprogramowaniu na licencji GNU. Początkowo był rozwijany przez firmę Android Inc. (kupioną później przez Google), następnie przeszedł pod skrzydła Open Handset Alliance.
    Historia wersji systemu operacyjnego Android rozpoczęła się wraz z wydaniem Androida beta w listopadzie 2007. Pierwsza komercyjna wersja, czyli Android 1.0, została wydana we wrześniu 2008. System ten doczekał się wielu aktualizacji, które krok po kroku modyfikują jego pierwotną wersję. Aktualizacje te są wydawane najczęściej w celu poprawiania błędów, a także dodawania nowych funkcji. Do tej pory w ciągu ponad 4 lat wyprodukowano aż 10 wersji Androida. Wcześniejsze do wersji 2.3 dedykowane były dla smartfonów; wersja 3.0 Honeycomb była przeznaczona na tablety. Pierwszym z systemów w pełni dostosowany zarówno do tabletów jak i smartfonów był 4.0 Ice Cream Sandwich.
    Java Runtime Environment (JRE) – środowisko uruchomieniowe dla programów napisanych w języku Java, składające się z wirtualnej maszyny Javy, klas podstawowych oraz plików pomocniczych.
    Port – wersja programu komputerowego na inną platformę sprzętową bądź programistyczną, zazwyczaj na inną architekturę procesora lub system operacyjny. Port powstaje w wyniku przeniesienia już istniejącego kodu, ogólniej można mówić o implementacji danego programu na inną platformę.
    javac – kompilator języka Java, stworzony przez Sun Microsystems i dostarczany w pakiecie Java Development Kit. Napisany w całości w języku Java. Pozwala na tworzenie kodu pośredniego języka zgodnie ze specyfikacją wirtualnej maszyny Javy
    Kod bajtowy Javy – lista instrukcji do wykonania przez wirtualną maszynę Javy (JVM). Każdy kod operacji kodu bajtowego ma jeden bajt długości, chociaż niektóre kody operacji wymagają parametrów, co sprawia, że mamy dużo wielobajtowych instrukcji. Nigdy nie użyto wszystkich możliwych 256 kodów operacyjnych.

    Reklama

    Czas generowania strony: 0.023 sek.