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. Хочется верить, что это произойдет уже очень скоро.

Теги
Лонгриды для вас
Google действительно старается сделать телефоны лучше. Вы можете ей помочь

Google из тех компаний, которые могут, если надо, не просто втихаря изучить общественное мнение, но и задать конкретные вопросы своим фанатам. Сейчас она в очередной раз это доказывает и дает фанатам понять, что ей не безразлично их мнение. Возможно, это просто игра на публику, а может и действительное стремление показать им, что их мнение ей важно. Интересно, что делает она это только с самыми преданными пользователями, а не со всеми подряд. Читая комментарии на нашем сайте, замечаешь, что многие из вас могут подойти под это определение. Так что у вас тоже есть шанс повлиять на выбор стратегии Google в отношении ее устройств.

Читать далее
Что такое AppValley и как установить AppValley на Android

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

Читать далее
Как правильно выбрать безопасный смартфон на Android

Уж не знаю, насколько я прав, но мне всегда казалось, что пользователи Android – не большие охотники за безопасностью. Об этом говорит и нетребовательность к обновлениям, и общая небоязнь скачивать софт из неизвестных источников, которая наблюдается у большинства пользователей, и склонность раздавать приложениям любые привилегии, которые те запрашивают. Поэтому нет ничего удивительного в том, что заражения на Android случаются гораздо чаще, чем на iOS. Но если научить людей не рыть себе яму, как оказалось, довольно сложно, то вот выявить из обширного ассортимента смартфонов аппарат с наивысшим показателем безопасности – весьма и весьма легко.

Читать далее

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

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