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

Любое приложение, установленное на Android-устройстве, будь то игра или мессенджер, написано на языке, который понятен программисту, но не может работать с процессором. Этот код необходимо перевести в машинные команды, чтобы программа могла функционировать. Именно здесь две основные технологии — Dalvik и ART — выходят на сцену. Это виртуальные машины Android, похожие на «переводчиков», которые позволяют приложениям выглядеть живыми.

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

Начиная с Android 5.0, система ART заменила Dalvik. Принцип компиляции «наперед» (AOT) является ее основным отличием. Теперь код переводится в машинный язык прямо во время установки приложения на устройство, а не в момент запуска. Вместо использования переводчика-синхрониста можно получить готовый перевод. В результате приложения запускаются и работают значительно быстрее, но установка может занять чуть больше времени.

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

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

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

Двумя системами Android являются Dalvik и ART. Далвик был первым, кто построчно запускал приложения, что было не очень быстро. Позднее его заменили ART, который быстрее и плавнее готовит приложение к запуску. Благодаря этому телефоны работают лучше, экономят заряд и меньше греются.

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

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

Виртуальная машина может запускать приложение, даже если оно создано на компьютере, что является вторым преимуществом.

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

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

Кстати, задержка при первом запуске не случайна; это связано с тем, что система должна собрать воедино все файлы, необходимые для запуска приложения, и загрузить оперативную память. Устройства с небольшим объемом оперативной памяти страдают от этой проблемы, что может привести к вылету приложения или даже к значительным задержкам в работе приложения.

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

Новая виртуальная машина под названием Android Runtime решает эту проблему. или просто ART.

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

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

Однако не спешите это делать. Сначала необходимо ознакомиться с особенностям новой версии.

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

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

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

Таким образом, Android преодолел путь от Dalvik до ART. Не просто замена одного компонента на другой была причиной этой эволюции. Это был серьезный анализ того, как приложения работают в самой системе.

Основная победа ART — скорость и плавность. Заменив «на лету» компиляцию на предварительную, система взяла на себя тяжелую работу при установке приложения, поэтому когда вы открываете программу, она уже готова к быстрому запуску, что уменьшает ожидания и дает больше времени для полезных действий.

В конечном счёте, эта техническая история важна для каждого пользователя. Хотя мы не видим самих виртуальных машин, мы ощущаем их работу каждый день. Более отзывчивые приложения, longer battery life и общая стабильность системы — всё это во многом заслуга ART. Это тот случай, когда сложная инженерная работа ушла вглубь, чтобы сделать наш обычный опыт взаимодействия с телефоном проще и приятнее.

Поделиться с друзьями
Анна Козлова

Привет! Я журналист с 10-летним стажем в обзорах смартфонов и аксессуаров. Вне работы — путешествую с power bank'ом в рюкзаке.

Оцените автора
Добавить комментарий