ART – время выполнения Android. Представлен (как предварительный просмотр для разработчиков) с выпуском версии 4.4 KitKat, среда по-умолчанию начиная с версии 5.0 Lollipop.
Механизм действия
Большинство приложений системы Android были написаны на языке Java. Программы, написанные на этом языке, компилируются в байт-код (промежуточные).
На этой стадии, есть все еще возможность выполнение этого кода непосредственно процессором, так как промежуточный код должен быть скомпилирован в машинный код.
Во время установки пакета (. APK), содержащийся в нем файл с байт-кодом (classes.dex) составляется программой dex2oat к исполняемому машинного кода (ELF), соответствующего для данной архитектуры процессора (например, ARMv7-A или x86).
Так что скомпилированный код обычно помещается в папку /data/dalvik-cache/ (название ссылаясь на предыдущую среду сохранены для совместимости).
Усовершенствования с предыдущей средой (Dalvik)
В отличие от Dalvik, который использует компиляцию just-in-time ((то есть компиляция байт-кода каждый раз, когда вы запускаете программу),
ИСКУССТВО использует методы ahead-of-time (промежуточный код компиляции один раз, именно при установке приложения). ART использует методы ahead-of-time (промежуточный код компилируется только один раз, это происходит во время установки программы).
Это позволило сократить время запуска программы (и всей системы) и помогло меньше потреблять энергию.
Улучшено также удаление не нужного мусора, что способствовало росту производительности.
Кроме того, он добавляет новые опции для разработчиков, чтобы позволить разработчикам более простой отладки программ.
Недостатки в сравнении с Dalvikiem
Принимая во внимание тот факт, что компиляция байт-кода происходит при (ahead-of-time) установки программы, и в итоге для установки программы нужно будет больше времени.
Машинный код занимает больше места, чем байт-код, тем самим освобождая больше места.
Перевод статьи. Автор: wikipedia. CC BY-SA 3.0 wikipedia.org