Организация переключения между гипервизором VirtualBox и Hyper-V

И снова здравствуйте! Эта статья будет полезна для разработчиков, которые используют Xamarin, а также тем кто разрабатывает приложения для Windows и Android устройств используя эмуляторы и нативные средства разработки. Речь пойдет о том как легко и довольно быстро переключаться между гипервизором VirtualBox и Hyper-V.
VirtualBoxAndHyper-VНебольшое введение. При разработке приложений практически всегда возникает необходимость тестировать их на эмуляторах, так как например Android устройств с различными форм-факторами очень много и хочется убедиться, что приложение будет смотреться приемлемо на всех устройствах. А вот с запуском эмуляторов начинаются различные проблемы, эмулятор android устройств из коробки (стандартный от Google) очень и очень медленный, поэтому рекомендуется использовать сторонний, например Genymotion, который порадовал меня своей скоростью, наверное не уступает реальным устройствам по отзывчивости. Для его использования нужна виртуальная машина (Oracle VirualBox), которая в свою очередь использует свой гипервизор. Гипервизор – это программное обеспечение необходимое для запуска нескольких операционных систем одновременно на одном компьютере. Для разработки под Windows Phone сторонний эмулятор не требуется, стандартный довольно быстрый, но вот для его работы необходимо использовать гипервизор Hyper-V от Microsoft. Два гипервизора не могут одновременно работать на компьютере, поэтому возникает проблема. На блоге англоязычного разработчика я нашел способ решения этой проблемы, который сам сейчас использую, и решил перевести его у себя на блоге.

Итак, теперь собственно о том, как организовать переключение между двумя гипервизорами. Для начала нужно открыть командную строку от имени администратора и написать в ней следующую команду:

После успешного выполнения должно появиться сообщение, в котором содержится нужный нам ключ. Далее вводим еще одну команду с ключом, который у нас появился после выполнения первой команды:

После успешного выполнения должно появиться сообщение информирующее что команда выполнена правильно. Вот как все выглядит наглядно:
QIP Shot - Screen 065В принципе все готово, теперь можно переключаться между двумя режимами, но для этого нужна перезагрузка компьютера, что конечно не очень удобно, т.е. чтобы включить или отключить Hyper-V нужно перезагружать компьютер. При загрузке системы теперь будет страница на которой нужно выбрать в каком режиме запускать систему: с гипервизором Hyper-V или без него (т.е. можно использовать гипервизор VirtualBox). Такая же страница отображается, если у вас на компьютере две системы:
WP_20140107_17_14_53_Pro_3Может быть такое, что страница с выбором не будет отображаться при перезагрузке компьютера, это можно настроить, а можно просто нажимать на кнопку перезагрузка в меню windows удерживая клавишу Shift.
Screenshot (8)_3На этом у меня все, думаю вам помогла эта статья, всем пока!

Категория: Windows, Xamarin
Понравилась статья? Поделись в социальных сетях:

  • adasoft

    к сожелению это не очень быстрое и не совсем удобное решение…

    • http://programmict.ru/ Дмитрий

      Если есть другое решение, поделитесь хотя бы вкратце будет интересно его увидеть )

  • adasoft

    тут надо рассказать историю как я попал на Ваш сайт…
    искал ответы по теме “Запуск hyper-v под vmware esxi” … толком ничего не нашел, хотя раньше видел статью именно по этой теме.

    А теперь для чего мне это надо.. я также пишу под мобильные платформы и для тестов испольую MS Android emulator. Хост система у меня виндовс 8.1 (пока не обновился), на ней стоят Vmware workstation 11 и VirtualBox (для старых виртуалок), в VMWare установленны MacOSX (для сборки ios приложений), и Windows 10 c VS2015 CE. VMWare используется, потому что она может “пробрасывать” виртуализацию в виртуальную машину. То бишь у меня в Win10 запускается hyper-v для запуска winphone и android эмуляторов. Всё это работает, но не сказать, что очень шустро, еще и с потерей OpenGL графики в андроид эмуляторе. Железо – ноут с i7 и 16 гигабайтам памяти. И я периодически делают поиски как мне вырваться из существующего окружения – перейти на другой гипервизор, перейти на десктоп с большим количеством памяти (16 гиг для запуска всего зверинца уже не хватает), отказаться от виртуалок и перейти на реальное железо.

    Но повторюсь мой вариант вполне работоспособный, хотя и превносит определенные ограничения.

    • http://programmict.ru/ Дмитрий

      Спасибо большое за комментарий, рабочий вариант и имеет право на существование, но довольно запутанный, затратный по настройке (день уйдет чтобы все так настроить грубо говоря) и требует большого количества ресурсов, вариант описанный в статье работал с 2 Гб оперативки :)
      Одновременно разрабатывать и отлаживать приложение наверное есть смысл только при использовании Xamarin Forms, если же писать только логику общую, то все равно приложение разрабатывается сначала под одну платформу, затем под другие и перезагрузить комп, тем более с такими то мощностями, не составит труда :)
      Как вариант, на вскидку придуманный, для iOS использовать такую же схему потому что устройства дороге и нужен Mac + девайс. Для Windows Phone использовать эмулятор с Hyper-V с основной системой, предварительно обновив ее до 10. А вот Andoid девайс использовать физический, если нужно будет на разных потестить, то и эмулятор можно запустить, но это не так часто придется делать, основную работоспособность тестить на реальном устройстве.

      • adasoft

        ай да, забыл отметить – я пишу на Cordova. Поэтому основной цикл разработки (или больший) идет на хост машине с использованием IntelXDK. Виртуалки идёт в ход, когда надо получить готовый бинарник, проверить работоспособность на эмуляторах (много всяких сюрпризов вылазит), ну и когда подключаются плагины.

        2гига на хосте уже не прокатывают. Сча эмуляторы смарта требуют от 4х гиг под себя для эмуляции андроидов 5+