Какие возможны проблемы совместимости при переходе со среды выполнения dalvik на art?

Какие возможны проблемы совместимости при переходе со среды выполнения 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 Увеличение объема приложений. Увеличение времени установки

📎📎📎📎📎📎📎📎📎📎