В Nexus 5 (Android 4.4 KitKat) Google предлагает две среды выполнения для запуска приложений.
В чем разница между Dalvik и ART для конечных пользователей? Как это может повлиять на конечных пользователей? Есть ли какая-то конкретная причина, по которой мне следует выбрать новую среду выполнения ART?
Dalvik VM (виртуальная машина) — это версия виртуальной машины Java от Google (на которой работают приложения). Виртуальные машины обеспечивают изоляцию и независимость приложений от реального оборудования и других приложений. Но для того, чтобы это работало, Dalvik должен преобразовать так называемый байт-код (предназначенный для виртуальной машины) в собственный машинный код. Чтобы свести к минимуму потери производительности, связанные с преобразованием байт-кода в собственный код, выполняется процесс, называемый компиляцией Just-In-Time (JIT), который преобразует горячий, т. е. часто используемый, байт-код в собственный код. 1
ART (Android Runtime) — это замена Dalvik, использующая компиляцию Ahead-Of-Time (AOT), что означает, что ваши приложения скомпилированы в состояние, готовое к запуску, еще до того, как вы их запустите. Обычно это делается во время установки приложений, что делает процесс их запуска и использования намного быстрее и плавнее. А поскольку это означает, что компиляция выполняется только один раз, вы также можете увидеть увеличение времени автономной работы.
Если ART лучше с точки зрения производительности и времени автономной работы, стоит ли мне начинать его использовать?
Нет . Если вы сделаете это, вы можете сломать сторонние приложения. Google выпустил предварительную версию ART с Android 4.4, чтобы разработчики могли тестировать на ней свои приложения.
Примечание: подход Google к ART заключается в том, чтобы превзойти iOS (приложения для iOS являются нативными, поэтому работают лучше даже на слабых аппаратных характеристиках), но я не знаю, куда это движется... Еще одна фрагментация? См. OEM-производители могут создавать устройства, используя либо один, либо оба . Хотя окончательная версия не должна влиять на большинство приложений, но она не является кроссплатформенной на 100%.
1 Обратите внимание, что JIT был добавлен в Dalvik в Android 2.2.
Дэн Халм
iOS
Рахул Райна