Аппаратное ускорение для производительной работы эмулятора (Hyper-V и HAXM)

В этой статье рассказывается, как использовать функции аппаратного ускорения компьютера для обеспечения максимальной производительности эмулятора Android Emulator.

Visual Studio упрощает тестирование и отладку приложений Xamarin.Android с помощью Android Emulator в ситуациях, когда использовать устройство с Android невозможно или неудобно. Однако если на компьютере недоступно аппаратное ускорение, Android Emulator работает слишком медленно. Вы можете значительно повысить производительность эмулятора Android Emulator, используя специальные образы виртуальных устройств на платформе x86 в сочетании с функциями виртуализации на компьютере.

Сценарий HAXM WHPX Hypervisor.Framework
У вас процессор Intel X X X
У вас процессор AMD X
Требуется поддержка Hyper-V X
Требуется поддержка вложенной виртуализации Ограниченный
Требуется использовать такие технологии, как Docker (С WSL2) X X

Ускорение эмуляторов Android в Windows

Следующие технологии виртуализации доступны для ускорения эмулятора Android:

  1. Microsoft Hyper-V и платформа гипервизора Windows (WHPX). Hyper-V — это функция виртуализации в Windows, которая позволяет запускать виртуализированные компьютерные системы на физическом главном компьютере.

  2. Intel Hardware Accelerated Execution Manager (HAXM). HAXM — это механизм виртуализации для компьютеров на базе процессоров Intel.

Для достижения наилучшего взаимодействия с пользователем в Windows рекомендуется использовать WHPX для ускорения Android Emulator. Если WHPX недоступен на вашем компьютере, можно использовать HAXM. Эмулятор Android автоматически использует аппаратное ускорение, если соблюдены следующие условия:

  • Аппаратное ускорение доступно и включено на компьютере разработчика.

  • Эмулятор работает с образом системы, созданным для виртуального устройства на платформе x86.

Внимание

Нельзя запустить эмулятор на базе ускоренной виртуальной машины внутри другой виртуальной машины, например под управлением VirtualBox, VMware или Docker (если не используется WSL2). Эмулятор Android следует запускать непосредственно на системном оборудовании.

Сведения о запуске и отладке с помощью эмулятора Android см. в статье Отладка в Android Emulator.

Ускорение с помощью Hyper-V

Перед включением Hyper-V прочтите следующий раздел, чтобы убедиться, что компьютер поддерживает Hyper-V.

Проверка поддержки Hyper-V

Hyper-V работает на платформе гипервизора Windows. Чтобы использовать эмулятор Android с Hyper-V, компьютер должен отвечать следующим условиям для поддержки платформы гипервизора Windows:

  • Оборудование компьютера должно соответствовать следующим требованиям:

    • 64-разрядный ЦП Intel или AMD Ryzen с преобразованием адресов второго уровня (SLAT).
    • Поддержка расширения режима мониторинга виртуальной машины (технология VT-c на компьютерах с процессорами Intel).
    • Не менее 4 ГБ памяти.
  • В BIOS компьютера необходимо включить следующие элементы:

    • Технология виртуализации (может иметь другое название в зависимости от производителя системной платы).
    • Предотвращение исполнения данных на основе оборудования.
  • Компьютер необходимо обновить до Windows 10, обновление за апрель 2018 г. (сборка 1803), или более поздней версии. Выполните следующие действия, чтобы проверить актуальность вашей версии Windows:

    1. В поле поиска Windows введите Сведения.

    2. В результатах поиска выберите Сведения о компьютере.

    3. Прокрутите диалоговое окно Сведения до раздела Характеристики Windows.

    4. Должна быть указана версия не ранее 1803:

      Windows specifications

Чтобы убедиться, что компьютерное оборудование и программное обеспечение совместимо с Hyper-V, откройте командную строку и введите следующую команду:

systeminfo

Если все указанные требования Hyper-V имеют значение Да, компьютер поддерживает Hyper-V. Например:

Example systeminfo output

Включение ускорения Hyper-V

Если ваш компьютер соответствует приведенным выше критериям, выполните следующие действия для ускорения эмулятора Android с помощью Hyper-V.

  1. Введите компоненты windows в поле поиска Windows и выберите Включение и отключение компонентов Windows в результатах поиска. В диалоговом окне Компоненты Windows включите Hyper-V и платформу гипервизора Windows:

    Enabling Hyper-V and Windows Hypervisor Platform

    После внесения этих изменений перезагрузите компьютер.

Внимание

В Windows 10 с обновлением за октябрь 2018 г. (RS5) и более поздних версий необходимо только включить Hyper-V, так как он будет автоматически использовать платформу гипервизора Windows (WHPX).

  1. Установите Visual Studio 15.8 или более поздней версии (в этой версии Visual Studio интегрированная среда разработки поддерживает запуск эмулятора Android с Hyper-V).

  2. Установите пакет Android Emulator версии 27.2.7 или более поздней. Чтобы установить этот пакет, перейдите к диспетчеру > пакетов SDK Android для Android > в Visual Studio. Откройте вкладку Инструменты и убедитесь, что установлена версия эмулятора Android не ниже 27.2.7. Кроме того, убедитесь, что установлен компонент Android SDK Tools версии 26.1.1 или более поздней:

    Android SDKs and Tools dialog

При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать образ системы на базе x86. Если вы используете образ системы на основе ARM, виртуальное устройство не ускорится и будет работать медленно.

Теперь технология Hyper-V должна быть включена, и вы можете запустить эмулятор Android с ускорением.

Ускорение с помощью HAXM

Если компьютер не поддерживает Hyper-V, используйте HAXM для ускорения эмулятора Android. Отключите отключить Device Guard, чтобы использовать HAXM.

Проверка поддержки HAXM

Чтобы определить, поддерживает ли оборудование HAXM, следуйте инструкциям из раздела Мой процессор поддерживает технологию виртуализации Intel?. Если оборудование поддерживает HAXM, проверьте, установлен ли HAXM:

  1. Откройте окно командной строки и введите следующую информацию:

    sc query intelhaxm
    
  2. Посмотрите в выходных данных, запущен ли процесс HAXM. Если да, для состояния intelhaxm будет отображаться RUNNING. Например:

    Output from sc query command when HAXM is available

    Если STATE не имеет значение RUNNING, HAXM не установлен.

Если компьютер поддерживает HAXM, но он не установлен, установите его, выполнив действия, приведенные в следующем разделе.

Установка HAXM

Пакеты установки HAXM для Windows можно найти на странице выпусков GitHub, посвященной Intel Hardware Accelerated Execution Manager. Чтобы скачать и установить решение HAXM, выполните следующие действия:

  1. Скачайте с веб-сайта Intel последнюю версию установщика подсистемы виртуализации HAXM для ОС Windows. Скачивая установщик HAXM с веб-сайта Intel, вы гарантированно получаете последнюю версию этой программы.

  2. Откройте файл haxm-N.N.N-setup.exe (где N.N.N — это номер версии), чтобы запустить установщик HAXM. Примите значения по умолчанию, предлагаемые в диалоговых окнах установщика:

    Intel Hardware Accelerated Execution Manager Setup window

При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать образ системы на базе x86. Если вы используете образ системы на основе ARM, виртуальное устройство не ускорится и будет работать медленно.

Устранение неполадок

Сведения о решении проблем с аппаратным ускорением см. в руководстве по устранению неполадок для эмулятора Android.

Ускорение эмуляторов Android в macOS

Следующие технологии виртуализации доступны для ускорения эмулятора Android:

  1. Платформа гипервизора Apple. Гипервизор входит в состав macOS 10.10 и более поздних версий и позволяет запускать виртуальные машины на компьютере Mac.

  2. Intel Hardware Accelerated Execution Manager (HAXM). HAXM — это механизм виртуализации для компьютеров на базе процессоров Intel.

Рекомендуется использовать платформу гипервизора для ускорения эмулятора Android. Если платформа гипервизора недоступна на компьютере Mac, можно использовать HAXM. Эмулятор Android автоматически использует аппаратное ускорение, если соблюдены следующие условия:

  • Аппаратное ускорение доступно и включено на компьютере разработчика.

  • Эмулятор работает с образом системы, созданным для виртуального устройства на платформе x86.

Внимание

Вы не можете запускать эмулятор на базе ускоренной виртуальной машины внутри другой виртуальной машины, например под управлением VirtualBox, VMWare или Docker. Эмулятор Android следует запускать непосредственно на системном оборудовании.

Сведения о запуске и отладке с помощью эмулятора Android см. в статье Отладка в Android Emulator.

Ускорение с помощью платформы гипервизора

Для использования эмулятора Android с платформой гипервизора компьютер Mac должен соответствовать следующим критериям:

  • Mac должен работать под управлением macOS 10.10 или более поздней версии.

  • ЦП компьютера Mac должен поддерживать платформу гипервизора.

Если компьютер Mac соответствует этим критериям, Android Emulator будет автоматически использовать платформу гипервизора для ускорения. Если вы не уверены, поддерживает ли Mac платформу гипервизора, см. руководство Устранение неполадок, чтобы проверить это.

Если платформа гипервизора не поддерживается на компьютере Mac, используйте решение HAXM для ускорения эмулятора Android (описывается далее).

Ускорение с помощью HAXM

Если компьютер Mac не поддерживает платформу гипервизора (или ваша версия macOS ниже 10.10), используйте Intel Hardware Accelerated Execution Manager (HAXM) для ускорения эмулятора Android.

Прежде чем использовать эмулятор Android с HAXM в первый раз, рекомендуется проверить наличие установленного решения HAXM и его доступность для эмулятора Android.

Проверка поддержки HAXM

Проверьте, установлен ли HAXM:

  1. Откройте терминал и введите следующую команду:

    ~/Library/Developer/Xamarin/android-sdk-macosx/tools/emulator -accel-check
    

    Эта команда предполагает, что пакет SDK для Android установлен в расположении по умолчанию ~/Library/Developer/Xamarin/android-sdk-macosx; в противном случае измените этот путь для расположения пакета SDK для Android на Mac.

  2. Если решение HAXM установлено, приведенная выше команда вернет подобный результат:

    HAXM version 7.2.0 (3) is installed and usable.
    

    Если решение HAXM не установлено, возвращается следующее сообщение:

    HAXM is not installed on this machine (/dev/HAX is missing).
    

Если решение HAXM не установлено, установите его, выполнив действия, приведенные в следующем разделе.

Установка HAXM

Пакеты установки HAXM для macOS можно найти на странице Intel Hardware Accelerated Execution Manager. Чтобы скачать и установить решение HAXM, выполните следующие действия:

  1. Скачайте с веб-сайта Intel последнюю версию установщика подсистемы виртуализации HAXM для ОС macOS.

  2. Запустите установщик HAXM. Примите значения по умолчанию, предлагаемые в диалоговых окнах установщика:

    Intel Hardware Accelerated Execution Manager Setup window

Устранение неполадок

Сведения о решении проблем с аппаратным ускорением см. в руководстве по устранению неполадок для эмулятора Android.