1

Недавно я ответил this question, где был описан весь процесс установки файла .apk на Android-телефон. Единственное, что было связано с использованием Dalvik VM. И теперь мне интересно, как процесс установки точно такой же, как и с ART? Каковы различия? Я имею в виду работы PackageManager, пути, Convertion в dex формате и т.д. Googling не дает много информации, только о мощности производительности, управление памятью и что-то подобное. Я был бы очень благодарен, если бы кто-то из знакомых мог поделиться этой информацией.Процесс установки .apk в пределах ART. Отличие от процесса установки Dalvik VM

+0

Для искусства нет большой разницы, кроме того, что он запускает dex2oat для создания художественного файла, а не dexopt для создания файла odex. – JesusFreke

ответ

3

Приложения для Android входят в формат файла .apk, с Java-классами, преобразованными в DEX bytecode. Формат байтов DEX не зависит от архитектуры устройства и должен быть переведен на собственный машинный код для запуска на устройстве. Это то же самое и для ART, и для времени работы Dalvik.

Наиболее значительные изменения от Dalvik до ART что Dalvik основан на Just-In-Time (JIT) компиляции, в то время как ART основан на вперед-оф-времени (AOT) компиляции ,

С Dalvik JIT компилятором, каждый раз, когда приложение запускается, он динамически преобразует часть Dalvik байткод в машинный код. По мере выполнения выполнения больше байт-кода компилируется и кэшируется. С другой стороны, АРТ оснащается компилятором «Вперед». На этапе установки приложения он статически переводит байт-код DEX в машинный код и хранит его в хранилище устройства. Это одноразовое событие, которое происходит, когда приложение установлено на устройстве.

Performance

Самым важным преимуществом ART выполнения над Dalvik выполнения является то, что приложение работает быстрее на ART. Поскольку во время установки байт-код DEX был переведен в машинный код, для его компиляции во время выполнения не требуется дополнительного времени. Приложение также запускается быстрее, когда запускается с ART по той же причине.

Поскольку для Dalvik требуется дополнительная память для кеш-кода JIT, приложение занимает меньшую площадь памяти при работе на ART.

батарей

С Dalvi K выполнения, JIT компиляция CPU оценка. Из-за AOT компиляции ART освобождает процессор от перевода DEX байт-кода на машинный код во время выполнения приложения, тем самым уменьшая потребление энергии. Использование ART приводит к увеличению времени автономной работы, что является временным интервалом, когда требуется подзарядка аккумулятора.

Установка время

Поскольку AOT компилятора переводит DEX байт-кода в машинный код во время установки приложения, приложение занимает больше времени, чтобы установить на устройстве с ART выполнения. Учитывая преимущества более быстрого выполнения и более короткого времени запуска, о которых мы говорили в предыдущем разделе, это дополнительное время, которое происходит только один раз во время установки приложения, стоит того.

хранения Footprint

С ART выполнения, AOT компилятор переводит DEX байткод на приложения в машинный код и сохраняет его в памяти устройства. Предварительно скомпилированный двоичный файл занимает больше места, чем байт-код DEX. Таким образом, получается больший объем памяти по сравнению с Dalvik.

Резюме

До этого момента мы ввели новую ART среду выполнения для Android. Мы также обсудили его преимущества и компромиссы, централизуя его компиляцию и повышение производительности. В настоящее время выпущен для предварительного просмотра и все еще находится в активной разработке и оптимизации, на данный момент мы не можем дать количественный вывод о том, сколько производительности было достигнуто при переключении на ART Runtime. Одно можно сказать наверняка, что ART заменит Dalvik в качестве среды выполнения Android на устройствах x86.

Source.

+1

Я чувствую, что вы заслуживаете большего внимания :) – logoff

0

В архитектуре dvm каждый раз, когда приложение запускает весь байтовый код приложения, преобразованный в dex, а затем выполняет файлы dex. Поэтому, когда каждый раз запускается то же самое, что и делается, поэтому для преодоления этой проблемы ART вступает в картину. В ART, когда во время установки приложения только конвертирует байт в Dex, а затем при каждом запуске запускают те же файлы dex, здесь не нужно требовать преобразования при каждом запуске. Таким образом, меньше времени на запуск приложения в ART по сравнению с dvm.

 Смежные вопросы

  • Нет связанных вопросов^_^