Dalvik, виртуальная машина Android
Dalvik был виртуальной машиной для языка Java приложений операционной системы Android от Google. Ее заменил АРТ.
Название происходит от города Исландия, откуда родом создатель. Dalvik производит альянс Open Handset Alliance, объединяющий около 100 компаний.
Он был создан для замены виртуальной машины Java, так как даже если она лицензирована GPL2 в обычной версии, есть исключение на мобильной версии Java ME, что позволяет Oracle запрашивать права на её использование.

Приложения для Android пишутся на Java, код сначала компилируется в байткод классическим Java-компилятором, а затем перекомпилируется в код, узнаваемый Dalvik.
Файлы .class преобразуются в файл .dex. Но такой файл включает несколько классов и по размеру эквивалентен jar-файлу.
Далвик использует не книжный магазин классов Java, а чистый книжный магазин, основанный на альтернативе фонда Apache, Harmony. Android не использует ни виртуальную машину Java ME, ни библиотеку Java SE.
Dalvik - машина JIT (Just In Time), она компилирует байткод в режиме реального времени, но в будущем будет заменена компилятором AOT, который компилирует и хранит байтекод перед исполнением. Эта новая виртуальная машина под названием ART (Android RunTime), еще находится в разработке в 2014 году и работает по опциону в Android 4.4. Байт-код в файле .dex также остается совместимым с разработчиком.
Дальвик против Java ME
Есть различия между виртуальными машинами, в частности, Dalvik запускает приложения в чистой среде, как это делают браузеры, что безопаснее.
Две цитаты в документации Android резюмируют разницу между Dalvik и Java Micro Edition:
"Каждое Android-приложение вращается в собственном процессе, который является его личным экземпляром виртуальной машины Dalvik. "Дальвик" был написан так, чтобы один материал мог эффективно работать на нескольких MV ".
"MV Dalvik запускает файлы в формате Dalvik Executable (.dex), оптимизированном для минимального заполнения памяти. MV основан на регистрах и вращает классы, компилируемые компилятором языка Java, которые были преобразованы в формат .dex инструментом включает "dx"".
Кроме того, часть функций была отложена на бэкэнд, в данном случае Linux :
«MV Dalvik зависит от kernel Linux для таких системных функций, как процессы и управление памятью низкого уровня».
Источник: сайт для разработчиков Android. Перевод цитат по .fr.
Другие виртуальные машины
Dalvik Turbo: Создана Myriad, совместимой виртуальной машиной, которая хочет быстрее Dalvik .
АРТ: Новая виртуальная машина Google, работающая в AOT .
Оракул против Дальвика
12 августа 2010 года Oracle, купившая Sun и, следовательно, Java в 2009 году, подала жалобу на Google за нарушение авторских прав и патентов.
Основной объект этой жалобы - виртуальная машина Dalvik, которая, согласно жалобе, использовала технологии, охватываемые патентами на программное обеспечение, которыми сейчас якобы владеет Oracle.
Google ответила, посчитав, что жалоба не имеет оснований, а также что Dalvik является продуктом Open Handset Alliance, а не Google.
Исход судебного разбирательства касался действительности якобы используемых в «Дальвике» патентов на программное обеспечение.
Надо понимать, что при огромной популярности Android (который по состоянию на август 2010 года продавался тиражом 200 тыс. экземпляров в день) виртуальная машина Oracle JME ничего не может им принести. Android даже портирован на устройства, разработанные для других ОС, таких как RIM.
Но был бы Java ME выбран производителями в качестве движка своих приложений, пока он подвержен роялти ?
Обновление 2013: Oracle проиграла иск к Google в первой инстанции. Он подал апелляцию, но отказался от претензий на патенты, в противном случае он сослался на Java API, который, по его словам, находится под авторским правом, это новизна. По вызову Оракл его взял верх.
Ресурсы