Вчера, 19 июня, стало известно, что компания Google убрала с Android Open Source Project виртуальную машину Dalvik и полностью заменила ее на ART. Изменения были внесены старшим инженером-программистом Google, Брайаном Карстромом (Brian Carlstrom).
Это было заметно в логах AOSP, что «Dalvik мертвый» и в следующих версиях операционной системы она применяться не будет.
Возможность перейти на ART впервые появилась с обновлением Android 4.4 KitKat. Тем не менее, на тот момент новая виртуальная машина была лишь экспериментальной функцией для того, чтобы пользователи и разработчики могли с ней познакомиться.
Сам ART позволяет ускорить работу приложений примерно в два раза, хотя большинство пользователей вряд ли почувствуют существенную разницу.
По всей видимости, после конференции Google I/O 2014 машина Dalvik пойдет «отдыхать» и будет полностью заменена на ART.
Для тех кто не знает, что такое виртуальная машина Dalvik:
Среда выполнения приложений — это набор инструкций, выполняемых для перевода кода в код программы, понятный компьютеру. Виртуальная машина работает даже не будучи частью основной программы. В целом, все «управляемые» компьютерные языки (Java в Android, Windows Phone, ECMAScript в браузерах) требуют такую среду для понимания языка, на котором написано приложение.
Android использует виртуальную машину для выполнения DEX-файлов (аналог EXE Windows), которые содержатся в APK-архиве Android приложений. Существует сразу два преимущества такого решения. Во-первых, каждая программа выполняется в системе, изолированной от ядра ОС, так что последняя чувствует себя более-менее в безопасности. Во-вторых, использование виртуальной машины открывает дорогу кросс-платформенным приложениям, т.е. приложение может работать на ARM-смартфоне, MIPS-планшете или x86-компьютере, также и при этом проще писать приложение и для других ОС.
Как известно, все это время в Android использовалась виртуальная машина Dalvik, которой наверняка встречал каждый, кто хоть немного изучал особенности ОС.
Зачем вообще использовать среду выполнения приложений?
Использование виртуальной машины замедляет выполнение программ, однако у нее есть несколько плюсов, которые склоняют выбор в ее пользу.
Огромный плюс использования виртуальной машины — это более стабильная и надежная работа основной системы.
Через Google Play магазин разработчик распространяет APK-файл своей программы, который содержит не совсем понятные инструкции, которые перед выполнением «соберет» уже виртуальная машина. Такое решение обеспечивает большую совместимость с разными типами процессоров и графическими ускорителями.