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

Обновления – это не то, чего у пользователей Android бывает в избытке. Несмотря на то что в последнее время производители смартфонов стали уделять больше внимания программной поддержке, многие продолжают пренебрегать обновлениями. Сами апдейт-диссиденты объясняют это по-разному. Одни боятся испортить исправно работающий аппарат проблемным апдейтом, другие считают, что обновления замедляют смартфоны, а третьи, как я в своё время, просто считают, что пусть в этом мероприятии нет вреда, но и пользы никакой тоже нет. А как на самом деле?

Читать далее
Вышло обновление Telegram с эксклюзивными функциями для Android

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

Читать далее
Кажется, Google знает почему заставка рабочего стола ломает ее телефоны

Несколько дней назад много говорили о том, как установка определенных обоев выводит Android-смартфоны из строя. Они просто не включались. При этом, картинка не была какой-то зловещей, а наоборот, идеально подходила для заставки смартфона. Безмятежное горное озеро с островком на фоне солнца, заходящего за горы. Что может быть лучше такой картинки для заставки? Лучше может быть только не ставить ее на заставку. Пока пользователи гадали, из-за чего так происходит - телефон перестает нормально работать - Google провела свою работу и пришла к определенным выводам, которыми поделились ее специалисты.

Читать далее

12 комментариев Оставить свой

  1. burivuh

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

  2. AlanWake

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

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

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

      • AlanWake

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

        • it-trend

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

  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 и мучаюсь, купил смартфон на андроиде, а это оказывается снова линукс!

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