Dalvik — заснована на регістрах віртуальна машина, створена Деном Борнштейном та іншими, як частина мобільної платформи Android.

Ден Борнштейн назвав віртуальну машину ім'ям рибальського селища Далвік північній Ісландії, звідки походить частина його предків .

Dalvik оптимізований для низького споживання пам'яті, це нестандартна регістр-орієнтована віртуальна машина, яка добре підходить для виконання на RISC-архітектурах процесорів, котрі часто використовуються у мобільних та вбудованих пристроях, таких, як комунікатори й планшетні комп'ютери. Більшість віртуальних машин, що використовуються на десктопах, є стек-орієнтованими, включаючи стандартну віртуальну машину Java від Sun/Oracle.

Програми для Dalvik пишуться на мові Java. Попри це, стандартний байт-код Java не використовується, замість нього Dalvik VM виконує байт-код власного формату. Після компіляції сирцевих текстів програми на Java (за допомогою javac) утиліта dx з «Android SDK» перетворює .class файли у формат .dex, придатний для інтерпретації в Dalvik.

З бібліотек класів Dalvik не застосовує ані Java SE, ані Java ME Class Library (в тому числі, класи Java ME, AWT та Swing не підтримуються). Замість цього використовується своя власна бібліотека, побудована на підмножині Java-реалізації Apache Harmony.

Виноски

Див. також Віртуальна машина Java

Посилання Groklaw article about the Oracle America vs. Google suit Dex File Format Dalvik VM OpCodes Dalvik VM Internals  — Presentation from Google I/O 2008, by Dan Bornstein android-dalvik-vm-on-java is an ongoing project aims to develop a pure Java implementation of the Android's Dalvik virtual machine. Visual diagram of Android OS