Какие возможны проблемы совместимости при переходе со среды выполнения dalvik на art?
Для начала, приведу сравнение сред выполнения Davlik и ART:
Dalvik: Преобразует файлы APK в понятный процессору код на лету, что требует меньше флеш-памяти для хранения, но из-за этого приложения дольше запускаются. Со временем машинный программный код кэшируется, что ведет к ускорению загрузки мобильника. Лучше подходит для устройств с малоемким флеш-накопителем, так как кэш машинного кода занимает меньше места. Стабильная и проверенная временем.
ART: Преобразует файлы APK в понятный процессору код заранее при их установке. Это требует меньше ресурсов процессора при запуске и уменьшает время старта программы. Кэш машинного кода создается при первой загрузке мобильника, из-за чего он включается значительно дольше. Потребляет значительно больше флеш-памяти (на 10-20%), так как кроме файлов APK хранит скомпилированный машинный код каждой программы. Новая и экспериментальная, могут обнаружиться непредвиденные ошибки и недостатки.
А теперь приведу возможные проблемы, возникающие при использовании ART:
Устройство при выполнении программ нагревается ощутимо больше, чем на Dalvik. Уже известны случаи смерти смартфона от перегрева при использовании ART.
Устройство тормозит. на голом андроиде этого может и не быть, но пользователи, у которых установлен дополнительный UI (типа HTC Sense), при использовании ART жаловались на жуткие тормоза при просмотре погодных и новостных виджетов, страниц в браузере и т. п.
Нестабильная работа приложений. По отзывам пользователей, особенно это проявляется при использовании взломанных приложений, хотя известны случаи вылета вполне обычных платных и бесплатных программ при использовании ART.
Уменьшена скорость работы устройства. Внешне это может быть и незаметно, но в бенчмарках скорость работы на ART обычно меньше на несколько тысяч пунктов, чем на Davlik.
Уменьшено время работы. По этому пункту жалобы шли в основном от пользователей HTC (вероятнее всего, всё из-за той же BlinkFeed).
Также могут быть проблемы совместимости при использовании кастомых прошивок. Пользователи CyanogenMod 11 при переходе на ART получали полное зависание при включении телефона.
- Ответ понравился: 1
Некоторые игры не запускаются. За 4 месяца на ART нашел таких 4-5. В остальном одни плюсы - работает быстрее, живет дольше.
- Ответ пока никому не понравился
могут возникнуть проблемы с пакетом программ от Google
- Ответ пока никому не понравился
У 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, с которым связано обеспечение двоичной совместимости.
Заключение Переход на ART приведет к тому, что производительность Android устройств возрастет, а количество лагов уменьшится.. Основные недостатки Dalvik по сравнению с ART Dalvik более медленная, как и другие виртуальные машины. JIT компилятор - это дополнительный код, а значит, дополнительная головная боль для некоторых разработчиков. Основные недостатки ART по сравнению с Dalvik Увеличение объема приложений. Увеличение времени установки