- Android от А до Я: ART — новая среда выполнения приложений на Android 4.4 KitKat (замена Dalvik)
- Влияние на разработчиков
- Заключение
- ART или Dalvik на Android — что это такое, что лучше, как включить
- Основное отличие среды ART
- Как на самом деле и что лучше, ART или Dalvik?
- Как включить ART на Android
- ART vs Dalvik — так в чем же разница?
- Что такое среда выполнения приложений (виртуальная машина)?
- Зачем вообще использовать среду выполнения приложений?
- Что же такое Dalvik и в чем его проблема?
- Что такое ART и как он спасет мир?
- Dalvik vs. ART
- ART пока эксперимент
- Комментариев 7
Android от А до Я: ART — новая среда выполнения приложений на Android 4.4 KitKat (замена Dalvik)
Ранее мы уже писали о том, что у виртуальной машины Dalvik в KitKat появился конкурент в виде ART. Настало время более подробно рассказать о том, что это такое, и какие преимущества ждут Android пользователей в скором времени.
ART (аббревиатура термина «Android Runtime«) — это новая среда выполнения приложений, написанная на C/C++, которая отличается от существующей в Android виртуальной машины Dalvik тем, что все приложения в системе уже скомпилированы, а значит, потребность в JIT-компиляторе отпадает.
Таким образом, ART позволяет запускать приложения на разном железе (wiz. ARM,x86) без предварительной адаптации со стороны разработчиков. Помимо этого на запуск приложений в новых условиях уходит в два раза меньше времени. Не обошлось и без недостатков, один из которых связан с принципом работы в условиях ART. Данная среда приводит к тому, что вся необходимая информацию переводится в машинно-ориентированный язык еще во время установки приложений (AOT компиляция), а это требует дополнительного времени, из-за чего весь процесс установки очень сильно растягивается, а приложения занимают больше места, так как все время скомпилированы.
Хоть ART и присутствует в Android 4.4 KitKat, но по умолчанию по-прежнему используется виртуальная машина Dalvik. ART же все еще находится на стадии разработки, но каждый желающий уже может активировать новую технологию:
Settings -> Developer options -> Select runtime
Если вы такие решили протестить новую среду, то не стоит забывать, что первая загрузка может продлиться до 20 минут, а то и больше: системе потребуется много времени, чтобы перейти к новым принципам работы. Библиотека libdvm.so будут заменена на libart.so, а файлы ODEX на OAT. Последние можно найти здесь .
Отметьте себе, что переходить на ART в случае с кастомными ROM’ами не рекомендуется, так как может возникнуть проблема несочетания с текущей версией Gapps приложений, что приведет к ошибкам, вылетам системы и сделает работу на устройстве невозможной.
Так как в Android 4.4 KitKat мы имеем дело лишь с прототипом новой среда выполнения приложений, то делать выводы, исходя из теперешних практических результатов, слишком рано. ART еще абсолютно не оптимизирована, но уже можно говорить о том, что в новых условиях приложения будут шустрее, анимация станет более плавной, а реакция на прикосновение к тачскрину улучшится. Помимо этого ART сможет сократить нагрузку на процессор: для работы большинства процессов необходимо будет задействовать лишь часть ядер. Это приведет к более эффективному использованию ARM архитектуры big.LITTLE, а значит, энергопотребление Android устройств удастся сократить, а время работы — увеличить.
Фактически ART включает в себя два бекенд компилятора. Как первый, так и второй — это AOT (Ahead-of-Time) компиляторы, причем один из них используется для распознавания машинного кода и работы с GCC, cl.exe (LLVM компилятор).
Влияние на разработчиков
Как ни странно, но на создание приложений переход на ART не должен отразиться. Специфика новой среды такова, что ART читает байт-код для Dalvik, а значит, новые знания и умения добывать не придется. Работа будет осуществляться все с тем же Java байт-кодом. С другой стороны у AOT компиляции есть один недостаток: ошибки, возникающие на разном железе. В связи с этим разработчикам придется тестировать свои приложения на большем количестве Android устройств. При этом прекомпиляция позволит сократить возможный объем работы, а создавать приложения с ART можно будет на любом языке с LLVM фронтэндом. Отдельно стоит отметить доступ к машинному коду: у разработчиков будет больше возможностей, но в случае ошибки готовый продукт может нанести вред Android устройству. Последний важный момент связан с использованием JNI — стандартного механизма для запуска кода под управлением виртуальной машины Java, с которым связано обеспечение двоичной совместимости.
Вероятнее всего разработчикам различных кастомных образов рекавери придется также предусмотреть новую опцию, аналогичную той, которая позволяла очищать Dalvik кэш.
Заключение
Переход на ART приведет к тому, что производительность Android устройств возрастет, а количество лагов уменьшится. Пока мы видим лишь пробный вариант новой среды выполнения приложений, но это уже очень серьезный шаг навстречу новым изменениям. Как скоро переход будет осуществлен окончательно – пока не известно.
Источник
ART или Dalvik на Android — что это такое, что лучше, как включить
Google представила новую среду выполнения приложений как часть обновления Android 4.4 KitKat. Теперь, помимо виртуальной машины Dalvik, на современных устройствах с процессорами Snapdragon появилась возможность выбрать среду ART. (Если вы попали на эту статью с целью узнать, как включить ART на Android, пролистайте ее к окончанию, там дана эта информация).
Что такое среда выполнения приложений и причем тут виртуальные машины? В Android, для выполнения приложений, которые вы скачиваете в виде файлов APK (и которые не являются компилированным кодом) используется виртуальная машина Dalvik (по умолчанию, на данный момент времени) и задачи по компиляции ложатся именно на нее.
В виртуальной машине Dalvik для компиляции приложений используется подход Just-In-Time (JIT), подразумевающий компиляцию непосредственно при запуске или же при определенных действиях пользователя. Это может приводить к долгому времени ожидания при запуске приложения, «тормозам», более интенсивному использованию RAM.
Основное отличие среды ART
ART (Android RunTime) — новая, пока еще экспериментальная виртуальная машина, представленная в Android 4.4 и включить ее пока можно лишь в параметрах разработчика (ниже будет показано, как это сделать).
Главное отличие ART от Dalvik — подход AOT (Ahead-Of-Time) при выполнении приложений, что в общих чертах означает предварительную компиляцию устанавливаемых приложений: таким образом, первоначальная установка приложения будет занимать более продолжительное время, они будут занимать больше места в хранилище Android устройства, однако их последующий запуск будет происходить быстрее (оно уже скомпилированно), а меньшее использование процессора и оперативной памяти в связи с необходимостью повторной компиляции может, в теории, приводить к меньшему потреблению энергии.
Как на самом деле и что лучше, ART или Dalvik?
В Интернете есть уже множество различных сравнений работы Android устройств в двух средах и результаты разнятся. Один из самых масштабных и подробных таких тестов выложен на androidpolice.com (англ.):
Суммируя результаты, можно сказать, что очевидных преимуществ на данный момент времени (нужно учитывать, что работа над ART продолжается, эта среда пока только на экспериментальной стадии) у ART нет: в некоторых тестах работа с использованием этой среды показывает лучшие результаты (особенно в том, что касается производительности, но не во всех ее аспектах), а в некоторых других особых преимуществ незаметно или же Dalvik впереди. Например, если говорить о времени автономной работы, то вопреки ожиданиям, Dalvik показывает практически равные результаты с ART.
Общий вывод большинства тестов — очевидной разницы при работе что с ART, что с Dalvik нет. Однако, новая среда и используемый в ней подход выглядят многообещающе и, возможно в Android 4.5 или Android 5 такая разница будет очевидна. (Более того, Google, возможно, сделает ART средой, используемой по умолчанию).
Еще пара моментов, на которые следует обратить внимание, если вы решите включить среду ART вместо Dalvik — некоторые приложения могут работать неправильно (или не работать вообще, например WhatsApp и Titanium Backup), а полная перезагрузка Android может занять 10-20 минут: то есть, если вы включили ART и после перезагрузки телефона или планшета он завис, ждите.
Как включить ART на Android
Для того, чтобы включить среду ART, вы должны иметь Android телефон или планшет с версией ОС 4.4.x и процессором Snapdragon, например, Nexus 5 или Nexus 7 2013.
Сначала необходимо включить режим разработчика на Android. Для этого, зайдите в настройки устройства, перейдите в пункт «О телефоне» (О планшете) и несколько раз тапните по полю «Номер сборки», пока не увидите сообщение о том, что стали разработчиком.
После этого в настройках появится пункт «Для разработчиков», а там — «Выберите среду», где и следует установить ART вместо Dalvik, если у вас есть такое желание.
Источник
ART vs Dalvik — так в чем же разница?
В новой версии Android появилось одно важное, хотя и не очень заметное, на первый взгляд, нововведение — появилась новая виртуальная машина ART. О том, что такое ART, виртуальная машина и почему она новая, рассказывается в англоязычном блоге Атиф Хана (Aatif Khan), запись из которого мы и решили перевести для вас. Отдельную благодарность за помощь выражаем Анжелу Божинову.
В современном мире технологий и аббревиатур уже никто не удивляется новым названиям и сокращениям. Однако существует проблема: обычные пользователи не всегда полностью осознают, чему же научился их гаджет после обновления. Разработчики редко радуют нас подробными описаниями нововведений и новых технологий, а найти какое-то понятное объяснение на официальном сайте удается крайне редко — в лучшем случае, пользователь обнаружит лишь краткое описание с еще большим количеством непонятных выражений.
Мы всегда стараемся помочь пользователям разобраться в новых устройствах и технологиях, поэтому было принято решение рассказать вам, нашим читателям, о технологии ART более подробно,а также провести ее небольшое сравнение с привычной виртуальной машиной Dalvik.
Что такое среда выполнения приложений (виртуальная машина)?
Обсуждение Dalvik и ART невозможно без понимания азов, поэтому сначала поговорим о виртуальной машине как таковой. Среда выполнения приложений — это набор инструкций, выполняемых для перевода кода приложения в код, понятный компьютеру. Виртуальная машина задействуется, даже не являясь частью основной программы. В целом, все «управляемые» компьютерные языки (Java в Android, С# в Windows Phone, ECMAScript в браузерах) требуют такую среду для понимания языка, на котором написано приложение.
Android использует виртуальную машину для выполнения DEX-файлов (аналог EXE в Windows), которые содержатся в APK-архиве Android-приложения. Существует сразу два преимущества такого решения. Во-первых, каждое приложение выполняется в системе, изолированной от ядра ОС, так что последнее чувствует себя более-менее в безопасности. Во-вторых, использование виртуальной машины открывает дорогу кросс-платформенным приложениями, то есть приложение может работать на ARM-смартфоне, MIPS-планшете или x86-компьютере.
Как известно, все это время в Android использовалась виртуальная машина Dalvik, с которой наверняка встречался каждый, кто хоть немного вникал в особенности ОС.
Зачем вообще использовать среду выполнения приложений?
На этот вопрос мы уже ответили выше. Бесспорно, использование виртуальной машины замедляет выполнение приложений, однако у нее есть несколько плюсов, которые склоняют выбор в ее пользу.
- Виртуальная машина выполняет код стороннего приложения в изолированной среде. Следовательно, код, который может навредить ядру ОС, не сможет на прямую взаимодействовать с системными файлами, что защитит систему. Огромный плюс использования виртуальной машины — это более стабильная и надежная работа основной системы.
- Через Google Play Store и другие источники разработчик распространяет APK-файл своей программы, который содержит нескомпилированные инструкции, которые перед выполнением «соберет» уже виртуальная машина. Такое решение обеспечивает большую совместимость; в противном случае, код, скомпилированный для устройств на базе Snapdragon, не сможет работать на Atom-аппаратах. Следовательно, виртуальная машина решает проблему с адресатом компиляции.
Что же такое Dalvik и в чем его проблема?
Вот и главный вопрос. Dalvik используется в Android с первой версии ОС, с 2007 года, а серьезное изменение за все это время было практически одно — появление в Froyo «компиляции на ходу», более известной как JIT. Главная ее особенность — приложение полностью компилируется при открытии или запуске пользователем соответствующих инструкций. Это очень полезное исправление, так как до 2.2 все приложения компилировались шаг за шагом, что уменьшало скорость работы; единственный минус такого решения — при старте программы на процессор идет серьезная нагрузка.
Во избежание дополнительной работы при повторном запуске программы, система собирает вместе все скомпилированные за время использования приложения инструкции и отправляет их в кэш, который хранится в файловой системе с расширением *.ODEX (Optimized Dalvik EXecutable). Как только вы во второй раз запустите приложение, Dalvik уже не будет заниматься компиляцией, а загрузит уже оптимизированные под ваше устройство данные в память. Однако вызов функции приложения, не использовавшейся ранее, приведет к новому компилированию инструкций. Если в этот момент система проводит стороннюю работу (например, прослушивание музыки или обновление приложений), то из-за перегрузки процессора и подсистем ввода/вывода у памяти можно пронаблюдать ощутимые рывки и тормоза. Вот тут и появляется ART.
Что такое ART и как он спасет мир?
ART, или Android RunTime (весьма кривое название) — это новая виртуальная машина, которую представила Google в Android 4.4, как один из инструментов разработчика (по умолчанию используется Dalvik). Главное отличие новой среды выполнения приложений — использование технология Ahead-Of-Time (AOT, «впереди времени»). ART компилирует все инструкции приложения еще до его запуска, в процессе установки. Возрастает время последней, а также объем постоянной памяти, занимаемый программой, однако виртуальная машина больше не занимается компилированием текущего приложения во время его исполнения, благодаря чему повышается комфорт при активном использовании многозадачности. Впрочем, желательно иметь большее количество оперативной памяти, так как ART загрузит в неё даже те инструкции приложения, которыми вы можете никогда и не воспользоваться.
Dalvik vs. ART
Давайте кратко сравним две виртуальные машины
ART пока эксперимент
Безусловно, в данный момент ART лишь тестируется и доступен только для устройств на версии Android 4.4 и чипсетах от Qualcomm. Однако вы можете уже сейчас переключиться с Dalvik на ART через скрытые инструменты разработчиков (меню открывается после нескольких тапов по номеру сборки в информации об устройстве). Заметим, что не все приложения смогут работать в ART без дополнительных обновлений; кстати, первый запуск в режиме ART может занять до 30 минут.
Google сделал ART доступным для разработчиков сейчас, создавая основу для последующего полного перехода на эту виртуальную машину в будущем. Это не значит, что ART стабилен уже сейчас. Это эксперимент и новая виртуальная машина может быть не готова для повседневного использования.
Отзывы о новой технологии смешанные. Пользователи флагманов с четырехъядерными процессорами и 2 Гб оперативной памяти могут по-настоящему оценить прирост скорости при переключении на ART. Некоторые отмечают 50% прирост в скорости устройства и 30% — в автономности; другие утверждают, что это лишь эффект плацебо.
По правде сказать, нельзя точно оценить влияние ART до выхода виртуальной машины из стадии тестирования и попадания в массы, поэтому споры о пользе и вреде новой технологии пока лучше отложить. Сейчас ясно лишь одно: за ART будущее. Google хочет использовать технологию AOT для борьбы с основным противником — iOS, и ART может серьезно улучшить Android. Неважно, насколько глупо называется виртуальная машина и как много приложений несовместимо с ней сегодня. Важно, что будет с ART завтра.
Комментариев 7
Интересная статья, вот главный косяк этой новой чудо art то что некоторые устройства начинают работать ужасно. Я переключал у себя на арт, ждал минут 20 и в конце концов закончилась оптимизация но! Прт первых же минутах все приложения отрубились с ошибкой а так же гас экран хорошо хоть смог вернуть обратно все. Я думаю что лучше эта среда для мощного железа нужна.
Deaim Graterj 2 сентября 2015
Переключился на АРТ. Стабильней. Sony Xperia M2 lte. Droid 4.4.4 cyanogenmod 11
Ольга Moon 26 сентября 2015
После смены среды началась перезагрузка, и все время перезагружает и есть черный-серый фон и так и загружает рабочий фон, телефон M-HORSE прототип SUMSUNG
Сергѣй Райковскiй 13 октября 2015
Переключаю туда и обратно,перезагрузка проходит как обычно быстро,все работает одинаково в обоиx вариантаx,не плюсов не минусов не вижу…
Techinpost Community 23 декабря 2016
Good Day I Am So Happy I Found Your Website, I
Found You By Mistake, While I Was Searching On Aol For
Something Else, Anyhow I Am Here Now And Would Just Like To Say Many Thanks For
A Remarkable Post And An All Round Entertaining Blog
I Don’t Have Time To Read It, All At The Moment But I Have BookMarked It
And Also Added In Your RSS Feeds, So When I Have Time I Will Be Back To Read More,
Please Do Keep Up The Fantastic Job. You can also check; http://www.techinpost.com/fixed-windows-error-32-code-problem-permanently
Евгений Сорокин 18 марта 2017
У меня телефон HTC desire 526 g,я переключился на ART минут 15 ждал когда все перенастроится,и у меня все отлично работает,не лагает,все игры идут.и телефон быстрее начал работать.
Аналогично, HTC desire 820g , не быстрее, а гораздо быстрее!
Источник