Jump to content

Android-среда выполнения

ИСКУССТВО
Разработчик(и) Google
Репозиторий андроид .googlesource /платформа /искусство /
Написано в С , С++
Операционная система Андроид
Входит в комплект Андроид
Предшественник Далвик
Тип Среда выполнения
Лицензия Лицензия Апач 2.0 [1]
Веб-сайт источник .android /документы /основной /время выполнения  Edit this on Wikidata

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

Обзор [ править ]

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

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

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

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

История [ править ]

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

Android 7.0 «Nougat» заменил свою среду выполнения Java с прекращенной версии Apache Harmony на OpenJDK , представив JIT-компилятор с профилированием кода для ART, который позволяет постоянно улучшать производительность приложений Android во время их работы. [9] JIT-компилятор дополняет компилятор AOT компании ART, помогая повысить производительность во время выполнения и сэкономить место для хранения за счет определения «горячего кода» (кода, который часто используется, выполняется в потоке пользовательского интерфейса или влияет на время запуска), который компилятор AOT компилирует в машинный код, пока устройство находится в режиме ожидания и заряжается. Менее часто используемый код основан на JIT-компиляции. [10] [11]

В Android 9 «Pie» уменьшен объем памяти, используемый APK-файлами за счет использования сжатых файлов байт-кода , а данные профилировщика можно загружать на серверы Google Play для объединения с приложениями при загрузке пользователями с аналогичным устройством, что сокращает время загрузки из Google Play. до 40%. Облачные профили Google Play позволяют оптимизировать приложения при установке, что помогает избежать первоначальных проблем с производительностью, присутствующих в Android 7.0–8.1. [12]

В июле 2021 года [13] была введена концепция базовых профилей. Базовые профили — это профили ART, которые определяют методы и классы, которые должны подвергаться компиляции AOT при первом запуске приложения и совместимы с Android 7.0 и более поздних версий. Они предоставляют функциональность, аналогичную облачным профилям Google Play в Android 9, когда они недоступны, и автоматически объединяются с облачными профилями, когда они доступны. [14]

ART был обновлен новым сборщиком мусора (GC), использующим Linux userfaultfd системный вызов в Android 13 . [15] [16] [17] Это уменьшает нагрузку на память, размер скомпилированного кода и количество ошибок , а также предотвращает риск закрытия приложений из-за нехватки памяти во время сборки мусора . [17] Другие изменения также улучшают запуск приложений, уменьшают количество зависаний и повышают производительность. [17] В рамках проекта Mainline также будет обновлен Android 12 ART. [15]

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

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

  1. ^ «ВНИМАНИЕ – платформа/искусство – Git в Google» . Архивировано из оригинала 4 марта 2023 года . Проверено 25 июня 2021 г.
  2. ^ Jump up to: Перейти обратно: а б с Андрей Фрумусану (1 июля 2014 г.). «Более пристальный взгляд на Android RunTime (ART) в Android L» . АнандТех . Архивировано из оригинала 5 июля 2014 года . Проверено 5 июля 2014 г.
  3. ^ Бен Ченг; Билл Бузби (май 2010 г.). «JIT-компилятор для Dalvik VM Android» (PDF) . android-app-developer.co.uk . Google . стр. 5–14. Архивировано из оригинала (PDF) 6 ноября 2015 года . Проверено 18 марта 2015 г.
  4. ^ Фил Никинсон (26 мая 2010 г.). «Разработчик Google Android объясняет больше о Dalvik и JIT во Froyo» . androidcentral.com . Архивировано из оригинала 8 апреля 2017 года . Проверено 8 июля 2014 г.
  5. ^ Jump up to: Перейти обратно: а б «Разработчики Android: ART и Dalvik» . источник.android.com . 9 марта 2015 года. Архивировано из оригинала 15 марта 2015 года . Проверено 18 марта 2015 г.
  6. ^ Jump up to: Перейти обратно: а б «Разработчики Android: настройка ART – как работает ART» . источник.android.com . 9 марта 2015 года . Проверено 18 марта 2015 г.
  7. ^ Шон Бакли (6 ноября 2013 г.). « Эксперимент «ART» в Android KitKat увеличивает время автономной работы и ускоряет работу приложений» . Engadget . Архивировано из оригинала 27 января 2017 года . Проверено 5 июля 2014 г.
  8. ^ Дэниел П. (7 ноября 2013 г.). «Экспериментальная среда выполнения Google ART в Android KitKat может обеспечить вдвое более быстрое выполнение приложений» . phonearena.com . Архивировано из оригинала 7 июля 2014 года . Проверено 5 июля 2014 г.
  9. ^ «Android 7.0 для разработчиков» . Android-разработчики . Проверено 22 марта 2021 г.
  10. ^ Амадео, Рон (22 августа 2016 г.). «Обзор Android 7.0 Nougat: делайте больше на своем гигантском смартфоне» . Арс Техника . Проверено 5 апреля 2023 г.
  11. ^ «Реализация JIT-компилятора ART» . источник.android.com . 22 января 2017 года. Архивировано из оригинала 8 августа 2023 года . Проверено 22 января 2017 г.
  12. ^ Амадео, Рон (13 сентября 2018 г.). «Android 9 Pie, тщательно проверенный» . Арс Техника . Архивировано из оригинала 30 ноября 2018 года . Проверено 16 августа 2022 г.
  13. ^ «Установщик профиля | Джетпак» . Android-разработчики . Архивировано из оригинала 8 августа 2023 года . Проверено 5 июля 2023 г.
  14. ^ Семенова Катерина; Равикумар, Рахул; Крейк, Крис (28 января 2022 г.). «Улучшение производительности приложений с помощью базовых профилей» . Блог разработчиков Android . Архивировано из оригинала 8 августа 2023 года . Проверено 5 июля 2023 г.
  15. ^ Jump up to: Перейти обратно: а б Гидра, Локеш, Что нового в производительности приложения , заархивировано из оригинала 16 августа 2022 г. , получено 16 августа 2022 г.
  16. ^ Гидра, Локеш; Бём, Ханс-Дж.; Фернандес, Жоэл (12 октября 2020 г.). «Использование системного вызова Linux Userfaultfd на этапе сжатия процесса сборки мусора» . Серия оборонительных публикаций . Архивировано из оригинала 16 августа 2022 года . Проверено 16 августа 2022 г.
  17. ^ Jump up to: Перейти обратно: а б с «Android 13 находится в AOSP!» . Блог разработчиков Android . Архивировано из оригинала 15 августа 2022 года . Проверено 16 августа 2022 г.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7fa5651052547ed15260a665125f407c__1711363260
URL1:https://arc.ask3.ru/arc/aa/7f/7c/7fa5651052547ed15260a665125f407c.html
Заголовок, (Title) документа по адресу, URL1:
Android Runtime - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)