Можно ли использовать HAXM в гостевой ОС, размещенной с помощью Hyper-V?

Я пытаюсь заняться разработкой Android на виртуальной машине, размещенной на Hyper-V, но, похоже, не могу найти способ использовать HAXM внутри гостевой ОС. Кажется, все, что я могу найти, касается отключения Hyper-V на машине, на которой вы хотите разместить эмулятор Android.

Для справки: хост-ОС — это Windows 8.1, а гостевая ОС — предварительная версия Windows 10. Я использую самую последнюю версию Android IDE и Java 7 SDK с эмулятором по умолчанию, который поставляется с ними.


person Michael Riggs    schedule 18.06.2015    source источник


Ответы (2)


Вы не можете использовать Intel Accelerator (HAXM) и Hyper-V одновременно. По сути, оба являются гипервизорами, пытающимися одновременно использовать расширения Intel VT (виртуализации) вашего ЦП, и это невозможно.

  • Hyper-V — это гипервизор типа 1 (на голом железе), который полностью владеет расширениями Intel VT вашего процессора.
  • Любой другой гипервизор типа 2 (например, HAXM или VirtualBox), пытающийся использовать расширение VT ЦП, завершится сбоем или вызовет системную ошибку.

Операционная система, работающая на виртуальной машине, не может получить доступ к расширениям VT без помощи родительского гипервизора. HAXM, работающий на виртуальной машине, не может получить доступ к расширениям VT, если он работает на Hyper-V. Hyper-V поддерживает вложенную виртуализацию, то есть Hyper-V в виртуальной машине, работающей на Hyper-V, но вам могут потребоваться определенные версии ОС и некоторое время на настройку всего этого. Windows 10 поддерживает контейнеры Windows, но я думаю, что вы не можете использовать эту технологию для запуска эмуляторов.

Вы можете использовать официальный эмулятор Android. Этот эмулятор может использовать преимущества HyperV для повышения производительности. Вы должны удалить (или не запускать) HAXM. Вы можете подключить виртуальную машину разработки к виртуальной машине Android, используя ее IP-адрес.

Некоторое время назад единственной альтернативой запуску эмулятора с HyperV были эмуляторы Android для Visual Studio (которую можно использовать с Eclipse или Android Studio без установки Visual Studio). Хотя эти эмуляторы можно использовать и в настоящее время, Microsoft рекомендует разработчикам использовать официальные эмуляторы Android.

Наконец, если вы хотите использовать HAXM, вы можете настроить дополнительную загрузочную запись в вашей Windows и используйте гипервизор типа 2, такой как VirtualBox. Вы можете использовать BCEDIT, чтобы выбрать во время загрузки, должна ли машина запускаться с Hyper-V или нет. Вы должны перезагружать компьютер каждый раз, когда хотите включить или отключить Hyper-V. Чтобы создать дополнительную загрузочную запись, вы можете проверить здесь и здесь

person Jaime    schedule 27.07.2017
comment
как сказано здесь forums.xamarin.com/discussion/82871/ предлагаемый эмулятор Android для VS больше не поддерживается: к сожалению, мы не планируем публиковать образы Android после версии 4.4. Мы рекомендуем вам попробовать эмулятор Google или GenyMotion для будущих образов операционной системы Android. Таким образом, похоже, что вы не можете использовать как эмулятор AVD (из-за проблем HAXM/Hyper-V), так и эмулятор Android для VS для современного API. уровни (на данный момент 29), пока вы находитесь на виртуальной машине Hyper-V. - person Andrey Pesoshin; 01.05.2020

Я пробовал это однажды, но у меня были проблемы с этим. Я пытался запустить Android Studio на vmware fusion, но эмулятор всегда показывал черный экран. Позже я узнал причину, которая заключалась в том, что «вы не можете запустить одну виртуальную машину на другой».

Эмулятор Android, работающий с Adnroid Studio, представляет собой виртуальную машину, которую я пытался запустить в vmware fusion, поэтому она никогда не работала.

person Neel Desai    schedule 18.06.2015
comment
Hyper-V поддерживает вложенную виртуализацию. По сути, когда вы используете специализированный API, внутренняя виртуальная машина работает параллельно, а не внутри внешней виртуальной машины. Эмуляторы Android для Visual Studio поддерживают эту функцию, и вы можете запустить эмулятор внутри виртуальной машины. Однако я давно не использовал эту функцию, и теперь Microsoft рекомендует использовать официальные эмуляторы Google. Я не знаю, поддерживают ли новые эмуляторы Android вложенную виртуализацию и позволяют ли вам запускать эмулятор внутри виртуальной машины. - person Jaime; 29.05.2020