Арт Заменяет Далвик

Хочу поделиться интересной новостью о новой функции, появившейся в Android 4.4, о которой не упоминалось на презентации и в появившихся после нее обзорах - о новой среде выполнения приложений на мобильной ОС - ART, которая заменяет почтенный Dalvik. .

Это потенциально может значительно повысить производительность приложений без необходимости их перекомпиляции.

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

Цель поста — донести доступную информацию до уважаемого сообщества и узнать больше о технологиях.



АРТ заменяет Далвик

Пока нам удалось найти такую информацию на сайте Youhtc.ru. " В последние несколько лет важной частью работы создателей Android стала борьба с главной врожденной «болезнью» системы — лагами анимации интерфейса.

Первым серьезным шагом в этом направлении стал Project Butter, анонсированный вместе с Android 4.1 Jelly Bean и действительно «ускоривший» систему, но не решивший проблему полностью.

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

Проблема сложная, поэтому для ее решения пришлось предпринять много шагов — одним из них была замена Dalvik на прекомпилятор ART. Теперь код Android работает на движке Java, созданном Google специально для мобильных устройств, и «на лету» преобразуется в аппаратный код (Just-In-Time Compilation).

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

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

ART — это компилятор AOT (Ahead-Of-Time), который преобразует код Java в «собственный» код в процессе установки приложения.

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

Вдвойне интересно, что ART уже встроен в Android 4.4 KitKat и его можно активировать в меню разработчика.

После перехода на libart.so (библиотека-компилятор) устройство перезагружается и компилирует все уже установленные приложения.

Ребята из Android Police, внимательно изучившие ART, утверждают, что на кастомных прошивках от AOSP этого делать пока не стоит - с программным пакетом от Google могут возникнуть проблемы.

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

У новой системы компиляции есть недостатки, хотя их вряд ли можно назвать существенными: большее время установки и увеличение конечного размера программы на 10-20%.

Правда, в размерах увеличивается только часть кода, которая зачастую занимает меньше половины приложения — мультимедиа (картинки, звук, видео) и другие данные в размерах не изменяются.

Получается, что Google работает над ART уже несколько лет, и его включение в KitKat — абсолютно обдуманное решение, позволяющее создателям системы провести серьёзное тестирование, а разработчикам приложений — подготовиться к предстоящему «уходу» Dalvik. Пока не ясно, насколько на новый компилятор повлияли разработчики из FlexyCore, которую Google купила в октябре этого года, но проект начался внутри самого поискового гиганта.

В Google пока не говорят, как скоро ART заменит Dalvik, но ничто не мешает корпорации сделать это в следующей версии системы.

Интересно, что, как и Project Butter, компилятор не требует усилий от разработчиков приложений — они всё равно будут писать код на известном языке, используя проверенные практики.

" У меня нет устройства под управлением Android 4.4, чтобы самому опробовать новую технологию, но уже доступен образ системы от Google, который можно «пощупать» в эмуляторе.

У меня еще есть вопросы о том, будет ли эта функция доступна на других устройствах, отличных от Google Android 4.4: Samsung, HTC и т. д. Будут ли корректно работать все функции приложения после перехода на новую платформу? Информации очень мало, напишите пожалуйста в комментариях где можно найти в большем размере.

Теги: #смартфоны и коммуникаторы #Android #разработка Android

Вместе с данным постом часто просматривают: