Какие возможны проблемы совместимости при переходе со среды выполнения 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 Увеличение объема приложений. Увеличение времени установки
- Ответ пока никому не понравился
Возможны БОЛЬШИЕ и лохматые проблемы! =)
- Ответ пока никому не понравился
Если ограничиться только сабжем вопроса, то проблемы совместимости есть только у приложений, изменяющих системные файлы Андроид. Потому как что Dalvik, что Art в итоге генерирует идентичный код и обычный софт даже не подозревает, что он исполняется как-то по особенному.
Но некоторые кастомы практиковали деодексирование исполняемых файлов прошивки для ускорения работы или замену некоторых файлов для получения рута. И вот здесь возможны проблемы совместимости, причем иногда это может не просто сделать приложение неработоспособным, а и привести к неработоспособности всего телефона. В общем, все, что меняет внутренние файлы Андроид (обычно ставится из-под рута или через рекавери-режим) может стать несовместимым. Поэтому, если у вас стоит что-нибудь такое - сначала зайдите на сайт автора и почитайте, как ведет себя хак с новой версией ОС.
Если же у вас приложения только из Play Маркета - то ничего с ними не случится, ибо еще раз повторю, обе среды выдают одинаковый байт код для процессора, просто в разное время и в разных форматах.
- Ответ пока никому не понравился
Основные минусы Art:
-
Более длительный процесс установки.
-
Больший объем конечного размера приложения.
-
Еще один недостаток является следствием незрелости ART: виртуальная машина на данный момент работает далеко не со всеми приложениями.
Из плюсов:
-
Более плавная работа интерфейса и более быстрая загрузка приложений.
-
Процесс компиляции осуществляется лишь единожды, поэтому он не будет в дальнейшем нагружать процессор, что станет причиной улучшенной автономности устройства.
Насчет перехода:
ART присутствует в Android 4.4 KitKat, но по умолчанию по-прежнему используется виртуальная машина Dalvik. ART же все еще находится на стадии разработки, но каждый желающий уже может активировать новую технологию через меню разработчика:
Settings -> Developer options -> Select runtime
Если вы таки решили протестить новую среду, то не стоит забывать, что первая загрузка может продлиться до 20 минут, а то и больше: системе потребуется много времени, чтобы перейти к новым принципам работы. Библиотека libdvm.so будут заменена на libart.so, а файлы ODEX на OAT.
Отметьте себе, что переходить на ART в случае с кастомными ROM’ами не рекомендуется, так как может возникнуть проблема несочетания с текущей версией Gapps приложений, что приведет к ошибкам, вылетам системы и сделает работу на устройстве невозможной.
Взято отсюда
- Ответ пока никому не понравился
Больше используется постоянной памяти, т.е. хранит уже скомпилированные приложения с АРК, но быстрее открываются программы и игры, а также меньше используется процессор;
Загрузка устройства происходит медленнее, т.к. кэш всех установленных приложений и игры создается при включении аппарата;
До выхода Lollipop довольно редко использовался разработчиками, и находился на стадии тестирования. Думаю с выходном 5.0 разработчики активнее переведут свои приложения на АРТ
- Ответ пока никому не понравился
Важко дати однозначну відповідь, адже ART став доступним з андроїд 4.4 і на обмежені кількості смартфонів! До недоліків такого переходу можна віднести довший час встановлення програм, і потребу в більші кількості оперативки, а також памяті пристрою!
ART повністю сумісний з байткодом Dalvik, так що у розробників не виникне ніяких проблем, всі додатки можна писати так як і раніше!
До беззаперечних плюсів переходу на ART, можна віднести, високу швидкість запуску додатків, і економію енергії у звязку із зменшенням навантаження на процесор смартфону!
- Ответ пока никому не понравился
почитать