Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Сравнение архитектур Dalvik и ART

Android Runtime ( ART ) - это среда выполнения приложений, используемая операционной системой Android . Заменяя Dalvik , виртуальную машину процесса, изначально используемую Android, ART выполняет преобразование байт-кода приложения в собственные инструкции , которые позже выполняются средой выполнения устройства. [1]

Android 2.2 «Froyo» привнес в Dalvik JIT-компиляцию на основе трассировки , оптимизируя выполнение приложений за счет постоянного профилирования приложений каждый раз, когда они запускаются, и динамической компиляции часто выполняемых коротких сегментов их байт-кода в собственный машинный код . В то время как Dalvik интерпретирует остальную часть байт-кода приложения, собственное выполнение этих коротких сегментов байт-кода, называемых «трассировками», обеспечивает значительное улучшение производительности. [2] [3]

В отличие от Dalvik, ART вводит использование предварительной компиляции (AOT) путем компиляции целых приложений в собственный машинный код после их установки. Исключая интерпретацию Dalvik и JIT-компиляцию на основе трассировки, ART улучшает общую эффективность выполнения и снижает энергопотребление, что приводит к повышению автономности работы от батареи на мобильных устройствах . В то же время ART обеспечивает более быстрое выполнение приложений, улучшенные механизмы выделения памяти и сборки мусора (GC), новые функции отладки приложений и более точное высокоуровневое профилирование приложений. [1] [4] [5]

Для обеспечения обратной совместимости ART использует тот же входной байт-код, что и Dalvik, предоставляемый через стандартные файлы .dex как часть файлов APK , в то время как файлы .odex заменены исполняемыми файлами в формате исполняемого и связываемого формата (ELF). Как только приложение скомпилировано с помощью установленной на устройстве утилиты dex2oat ART , оно запускается исключительно из скомпилированного исполняемого файла ELF; в результате ART устраняет различные накладные расходы на выполнение приложений, связанные с интерпретацией Dalvik и JIT-компиляцией на основе трассировки. Как недостаток, ART требует дополнительного времени для компиляции, когда приложение установлено, а приложения занимают немного больший объем вторичного хранилища.(обычно это флэш-память ) для хранения скомпилированного кода. [1] [4] [5]

Android 4.4 «KitKat» предоставляет предварительную версию технологии ART, включая его в качестве альтернативной среды выполнения и сохраняя Dalvik в качестве виртуальной машины по умолчанию. [6] [7] В следующем крупном выпуске Android, Android 5.0 «Lollipop» , Dalvik был полностью заменен на ART.

Android 7.0 «Nougat» переключил свою среду выполнения Java на OpenJDK , представив JIT-компилятор с профилированием кода для ART, что позволяет постоянно улучшать производительность приложений Android при их запуске. [8] JIT-компилятор дополняет текущий компилятор ART Ahead of Time и помогает повысить производительность во время выполнения и сэкономить место для хранения за счет компиляции только некоторых частей приложений. [7] [9]

См. Также [ править ]

  • Разработка программного обеспечения для Android  - различные концепции и утилиты для разработки программного обеспечения, используемые для создания приложений для Android.
  • История версий Android  - история и описания выпусков Android, перечисленные в первую очередь по их официальным уровням API.
  • Сравнение программного обеспечения для виртуализации приложений  - различные портативные виртуальные машины и виртуальные машины на языке сценариев
  • Виртуальная машина  - эмуляция конкретной компьютерной системы с разной степенью реализованной функциональности.

Ссылки [ править ]

  1. ^ a b c Андрей Фрумусану (1 июля 2014 г.). «Более пристальный взгляд на Android RunTime (ART) в Android L» . AnandTech . Проверено 5 июля 2014 года .
  2. ^ Бен Ченг; Билл Бузби (май 2010 г.). "JIT-компилятор для Android Dalvik VM" (PDF) . android-app-developer.co.uk . Google . С. 5–14. Архивировано из оригинала (PDF) 6 ноября 2015 года . Проверено 18 марта 2015 года .
  3. ^ Фил Никинсон (26 мая 2010). «Разработчик Google Android объясняет больше о Dalvik и JIT во Froyo» . androidcentral.com . Проверено 8 июля 2014 года .
  4. ^ a b «Разработчики Android: ART и Dalvik» . source.android.com . 9 марта 2015 года . Проверено 18 марта 2015 года .
  5. ^ a b «Разработчики Android: настройка ART - Как работает ART» . source.android.com . 9 марта 2015 года . Проверено 18 марта 2015 года .
  6. Шон Бакли (6 ноября 2013 г.). « ART“эксперимент в Android KitKat увеличивает срок службы батареи и ускоряет приложения» . Engadget . Проверено 5 июля 2014 года .
  7. ^ a b Дэниел П. (7 ноября 2013 г.). «Экспериментальная среда выполнения Google ART в Android KitKat может ускорить выполнение приложений вдвое» . phonearena.com . Архивировано из оригинала 7 июля 2014 года . Проверено 5 июля 2014 года .
  8. ^ «Android 7.0 для разработчиков» . Разработчики Android . Проверено 22 марта 2021 года .
  9. ^ «Реализация компилятора ART Just-In-Time (JIT)» . source.android.com . 22 января 2017 года . Проверено 22 января 2017 года .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Основы Android 101: понимание ART, среды выполнения Android на YouTube , разработчики XDA , 12 февраля 2014 г.
  • ИСКУССТВО: Развитие среды выполнения Android на YouTube, Google I / O 2014, Анвар Гулум, Брайан Карлстром и Ян Роджерс
  • JIT-компилятор для Android Dalvik VM на YouTube, Google I / O 2010, Бен Ченг и Билл Бузби
  • Поставляющ оптимизированная Android Runtime (ART) и веб - среды выполнения на базе архитектуры Intel , Intel , 4 августа 2015 года, по Хайтао Фэн и Джонатан Дин
  • Android 7.1 для разработчиков: компиляция JIT / AOT на основе профиля , разработчики Android, описывает изменения ART в Android 7.1.