ART и Dalvik: Как оно работает

Внутри последней итерации операционной системы Android нашлось место для многих изменений и усовершенствований. Большинство из них сразу же бросается в глаза даже рядовому пользователю данной системы. Это, конечно же, установка в качестве стандартного месседжера приложения Hangouts, переделанное меню набора номеров и добавление клавиатуры Emoji. Бывалые же приверженцы Android наверняка ощутят прилив производительности в сравнении с более старыми ее релизами. Однако не обошлось и без скрытых сторон, которые, согласно логике, должны представлять интерес лишь для разработчиков. Впрочем, значимость одного из подобных нововведений особенно велика. Кроме того, вскоре оно коснется каждого из нас, а потому умолчать о его подробностях было бы просто преступлением.

Android KitKat
Наверное, многие из вас хотя бы краем уха слышали о том, что в Android KitKat появился особый режим. Суть его заключается в более быстром запуске приложений и в более стабильном и плавном их выполнении. Возможно, попытки разобраться в данном вопросе самостоятельно не были увенчаны успехом. Оно и неудивительно: слова «виртуальная машина» и «компиляция» способны испугать кого-угодно, особенно, если информация потребляется из англоязычного источника. Для решения данной проблемы мы решили разобраться в сути вопроса самостоятельно, изложив его в максимально доступном виде.

Немного базовых понятий

Прежде чем ознакомиться с сутью нововведения, необходимо получить представление о некоторых деталях. Первая из них — среда выполнения приложений. Говоря простым языком, пресловутое понятие является сборником инструкций, которые выполняются во время работы того или иного приложения. Инструкции, в свою очередь, осуществляют перевод программного кода в код, который в состоянии запустить система. Соответственно, абсолютно все компьютерные языки нуждаются в определенной среде выполнения ради запуска приложений, написанных на них.

Dalvik Art

В качестве среды выполнения в нашей любимой операционной системе Android используются виртуальные машины, первая из которых — Dalvik — заработала еще в далеком 2007 году. Именно ей мы и обязаны периодическими зависаниями интерфейса и порой медлительными запусками приложений. Впрочем, данная проблема уже скоро может стать частью истории.

Почему именно виртуальные машины?

Данный тип среды выполнения имеет два безоговорочных плюса, которые облегчают жизнь не только разработчикам, но и нам, пользователям. Первое достоинство — защита системы. Виртуальная машина неслучайно называется виртуальной: ее работа абсолютно изолирована от операционной системы. Соответственно, ошибка или банальное зависание никак не скажется на работоспособности вашего устройства.

Второй плюс — кросплатформенность. Виртуальная машина сможет запустить приложение, даже если оно создано на PC.

Преимущества и недостатки Dalvik

Dalvik, как и все в этом мире, неидеальна. Причиной периодических подергиваний интерфейса является тип преобразования кода приложения в аппаратный. Данная машина проделывает это в прямом эфире, а называется такой тип компиляции Just-In-Time. Соответственно, предугадать появление багов практически невозможно, поскольку подобное может произойти в любой момент. Особенно велика вероятность подобного во время первого запуска, когда часть преобразованного кода даже не сохранена в кеше.

Проблема медлительности первого запуска, кстати, вовсе не случайна. Подобное происходит из-за того, что системе необходимо собрать воедино все необходимые для запуска приложения файлы и загрузить ими оперативную память. В конкретном случае больше всего страдают устройства с малым количеством оперативной памяти, для которых процесс загрузки чреват если не вылетом приложения, то хотя бы заметными задержками его выполнения.

Компиляция «на ходу» значительно нагружает процессор, однако одновременно с этим позволяет разработчикам не заниматься оптимизацией кода для каждого отдельного процессора и прочих составляющих устройства.

Nexus 5

Исправить вышесказанное призвана новая виртуальная машина, которая успела отметиться далеко не самым замысловатым названием — Android Runtime. Или же сокращенно — ART.

Преимущества и недостатки ART

Новая виртуальная машина обрела жизнь вместе с Android 4.4 KitKat, однако на презентации ей не уделили должного внимания. Причиной этого является то, что ART все еще находится на экспериментальной стадии. Впрочем, хотя и Dalvik используется в качестве машины по умолчанию, переключиться на Android Runtime можно уже сейчас.
Однако не спешите это делать. Сначала необходимо ознакомиться с особенностям новой версии.

Наиболее заметным преимуществом ART является новый тип компиляции, который получил название Ahead-Of-Time. Читатели, знающие английский язык, наверняка сразу же догадались, в чем дело. А дело в том, что процесс преобразования кода в новой версии осуществляется до запуска приложения — еще во время установки. Соответственно, сразу же вырисовываются несколько минусов, о которых, справедливости ради, стоит упомянуть. Это, во-первых, более длительный процесс установки, а во-вторых, больший объем конечного размера приложения. Еще один недостаток является следствием незрелости ART: виртуальная машина на данный момент работает далеко не со всеми приложениями.

Nexus

Впрочем, список заслуг куда более значимый. Это, к примеру, более плавная работа интерфейса и более быстрая загрузка приложений. Кроме того, поскольку процесс компиляции осуществляется лишь единожды, он не будет в дальнейшем нагружать процессор, что станет причиной улучшенной автономности устройства.

Переключиться на виртуальную машину ART в меню разработчика могут владельцы устройств под управлением Android 4.4 с процессором Snapdragon.

Итог

Развитие данной технологии имеет огромный потенциал. На карте стоит развенчание мифа о медлительности и нестабильности Android, что не только порадует владельцев устройств под ее управлением, но и ликвидирует наиболее серьезный аргумент в спорах со стороны приверженцев iOS.

На данный момент представители компании Google не сообщают о сроках окончательного внедрения и замены Dalvik на ART. Хочется верить, что это произойдет уже очень скоро.

Теги
Лонгриды для вас
Почему обновления Android и iOS такие скучные

Уже больше месяца назад Google представила Android 13 на конференции I/O. Мы уже довольно много знали об операционной системе, так как в феврале вышла первая предварительная версия для разработчиков. Но именно на конференции мы начали получать некоторые новые функции, которые были подготовлены для Android 13. Многие из них не впечатлили по-настоящему, но это наша реальность, которая становится все более грустной. Отсутствие чего-то принципиально нового - это не только особенность Android. Это же относится и к iOS. Здесь есть много причин, но одна из них является основной, и если убрать ее, ситуация уже станет намного лучше.

Читать далее
Отключат ли Андроид в России и можно ли от этого защититься

С введением санкций и полного ухода Apple с российского рынка у пользователей Android-устройств появился серьезный повод побеспокоиться. А что если компания Google заблокирует все свои сервисы и полностью отключит все смартфоны под управлением Android? Еще пару дней назад мы бы сказали, что такой расклад - крайняя мера, на которую может пойти Запад, однако сейчас такое и вправду может произойти. Как только в интернете появились сообщения о введении санкций в отношении России, по интернету сразу же начали гулять разные гайды, дескать, всем пользователям срочно надо отключить геолокацию и автообновление Android. Так компания Google не найдет ваш смартфон и вы будете в безопасности. Но так ли это на самом деле?

Читать далее
Каким будет Google Pixel 7 и повторит ли он успех предыдущей модели

Трудно удержаться от утверждения, что серия Google Pixel 6 была самой захватывающей моделью Pixel за последние годы. Помимо использования собственного процессора Tensor, новых сенсоров основной камеры и впечатляющих характеристик, у этих флагманов есть много других преимуществ. Google уже начала работу над следующим поколением Pixel, и в последние месяцы мы даже видели просочившиеся рендеры. До его выхода еще полгода, но мы уже с большой доле вероятности можем сказать, каком он будет и чем будет выделяться на фоне конкурентов.

Читать далее
12 комментариев
  1. burivuh

    ART может и перспективный, но со стабильностью у него явные проблемы. Если телефон или планшет имеют deodex прошивку и кастомное recovery — лучше для улучшения производительности не ART включать, а поставить dalvic bionic patch.

  2. AlanWake

    во! в кои века нормальным языком описанная функция
    правда теории больше чем практики, с какими популярными программами ART работает быстрее чем прошлый вариант?

    • Королев Михаил

      Торетически со всеми.

      • AlanWake

        ок, по другому спрошу — практически, с какими он работает ХУЖЕ ?

        • it-trend

          Вы заметите улучшения с теми приложениями, которые были проблемы. Рывки там. Если сравнивать одновременно на двух телефонах с Dalvik и с ART, то тоже будет часто заметно ускорение интерфейса.
          Проблема была в приложениях, которые вообще не работали. Вроде в Whatsapp. Так как одновременно две виртуальных машины не работают, с этим приходилось бы мириться. Последние версии Whatsapp в ART заработали.

          • Rauf Abasquliyev

            Whatsapp работает в Dalvik.

  3. it-trend

    Ребята, вам нужно или редактора, или возможность выделенные по Ctrl+Enter отправлять.

  4. Andy

    о чем статья? ни о чем
    что в ней рассказано, практически ничего, все это давно было итак известно

    заходя в статью «ART и Dalvik: Как оно работает» хочется действительно понять как оно работает, а в итоге имеем поверхностное все известное объяснение

  5. Vsevolod

    мне как бывшему пользователю ios, и новому android было интересно. Спасибо

    • SkyRider

      И мне тоже. К тому же приобрел жене Nexus 5, а всего ещё не знаешь в Android 4.4.2
      Протестирую и отпишусь какие же приложения работают на ART. А вообще было бы хорошо кому нибудь из вас статейку такую подготовить. Думаю многим будет интересно!

  6. pushistiy kote

    спс за статью теберь с еще большим нетерпением жду обновления))

  7. igorvek

    Эх линукс! Что можно сказать, сырьё, баги, недоработки. Хотя надо отдать должное — хорошо лечится ребутом. Застрял телефон не отвечает, не звонит, — ребут; застрял навигатор, увел в подворотню с кирпичем, — ребут вам в лечение, так с линуксом с 2006 и мучаюсь, купил смартфон на андроиде, а это оказывается снова линукс!

Новый комментарий