[Из песочницы] Как подружить Android, Visual Studio и Parallels Desktop

Введение Несколько месяцев назад, прочитав на Хабре статьи про кросплатформенную разработку с помощью Mono и Xamarin, вдохновился написанием собственных приложений на платформы Android, iOS и Windows Phone. Через некоторое время, найдя работу в компании, которая как раз и занимается разработкой приложений с помощью Xamarin, стал гордым обладателем iMac и понял, что хорошо бы кроме девайса с Android«ом на борту (да, у меня прекрасно уживается продукция Apple и Google, хотя предпочтение я отдаю первым) иметь на iMac эмулятор Android (так как держать весь зоопарк устройств для своих проектов не представляется возможным).Проблемы Честно говоря, писать код в Xamarin это боль, особенно когда существует Visual Studio и ReSharper. Это и стало одной из причин установки на iMac Parallels Desktop с Windows 8.1 на борту (первой была возможность разрабатывать под Windows Phone). Это решило проблему со средой разработки, но оставило проблему с эмулятором Android. Поиск в интернетах дал знание о такой классный штуке как Genimotion. Тут была только одна загвоздка — Parallels Desktop не очень уживался с ним в паре. Уже подумав, что придется таки медленно приобретать весь зоопарк Android’а, приметил у Parallels Desktop возможность устанавливать с помощью их инструментария Android на виртуальную машину, которая прекрасно работала в паре с Windows опять же на виртуалке. Оставалось только найти способ связать одно с другим. О поисках и применении найденного я и расскажу.Решение Итак, для успеха нам потребуются: Устройство из семейства Mac«ов Parallels Desktop с установленными Android и Windows Visual Studio Xamarin (на Windows) Инструкция по установке андроида на Parallels Desktop Как установить андроид на Parallels Desktop? Как я уже упоминал, это можно сделать с помощью стандартных средств, но если по какой-то причине стандартный параллелсовский андроид вас не устраивает (например, я так и на нашел способ поворота экрана, зато на андроиде, установленном самостоятельно, это делается легко) есть возможность установить любой понравившийся образ. Я перепробовал несколько источников, но отсюда установка успешна в 100% случаев.

Итак, скачиваем любой образ по нраву, у меня android-x86–4.4-RC1.iso, открываем Parallels Desktop. Если это первый запуск, то выбираем сразу «Установить Windows или другую ОС с DVD или образа», если нет, тогда жмем на »+» → Создать, а затем выбираем установку с образа и жмем «Продолжить». В открывшемся окне выбираем образ и перетаскиваем его внутрь.

65be666e8e470cf959f112100513468e.png

Parallels Desktop нас тут же извещает о том, что определить ОС на этом образе является для него невыполнимой задачей, однако, не стоит переживать по этому поводу, смело жмем «Продолжить». В выпадающем меню выбираем Другие версии Linux → Другая версия Linux, жмем OK.

c0cfe57b1a9d94ea2e3c8b0746bbbdb1.png

Далее можно ввести имя и расположение виртуальной машины. Настоятельно рекомендую выбрать пункт «Настроить параметры до начала установки». У меня настроено следующим образом:

7a2ccbc0596208c54f390a6fbf8b41e3.png

ec607c86ea97bc24da3423bee636e541.png

efcb26cf124367a4f0f8bcf908aa618c.png

78878127c8b87e82aefd03652620349d.png

После настройки нажимаем «Продолжить», запускается установка нашего Android«а. Далее следуем по пунктам: Installation — Install Android-x86 to harddisk → Create/Modify partitions → New → Primary → Bootable → Write → yes → Quit → sda1 Linux → ext3 → Yes → Yes → Yes → Reboot.Вот и все, у вас Android на Parallels Desktop!

Первым делом, запускаем Parallels Desktop

image

Открывается список доступных виртуальных машин — его пока оставляем открытым. Теперь переходим Parallels Desktop → Настройки

e41dc20349df1477867a2edceee02fa2.png

И открываем вкладку Дополнительно, а на ней Сеть: Изменить настройки

de7f20d0b138088157e7e25d173592ad.png

Сюда нам чуть позже необходимо будет добавить IP нашего Android«a, на который будем деплоить проект с Visual Studio.

Возвращаемся к списку виртуальных машин, нажимаем правой кнопкой мышки на Android и переходим в настройки этой виртуалки:

ea4d41112970bc6e10ccaf7032e3f86d.png

Здесь нас будет интересовать вкладка «Оборудование» пункт «Сеть». В типе подключения нужно выбрать в списке мостовых сетей ту, к которой подключен сам Mac:

516385c4cd8b61caa4fd7cdad5fc8a14.png

Закрываем настройки виртуальной машины с Android«ом и запускаем ее. Теперь уже переходим в настройки самого Android«а → О планшетном ПК → Общая информация и проматываем список, пока не найдем IP нашего Andorid«a:

d78d9d7fe1f973dff3e72eefb5511157.png

Возвращаемся к настройкам Parallels Desktop (Настройки → Дополнительно → Сеть: Изменить настройки), нажимаем на »+» под списком правил переадресации портов, где вводим информацию следующим образом (конечно же меняя IP адрес на адрес своего Android«a)

f0db1eab3099a67b45db7de9003c04d9.png

Нажимаем ОК и видим наш IP в списке:

0206fd91b1055fff51ca732dd1a70023.png

Настройка Android«a на этом завершена, теперь нужно подготовить Windows, а именно adb сервер. Поэтому запускаем виртуалку с WIndows на борту.

Инструкция по подготовке Windows и Xamarin с установкой USB драйвера от Samsung Чтобы все работало корректно в первую очередь необходимо обновить и установить все Extra и Tools в Android SDK Manager, а также скачать и установить API для той версии андроида (и для других, если необходимо), которая стоит у вас на девайсе (да, в итоге все равно по началу нужен девайс на андроиде, правда, радует что подойдет любой). После того, как это будет сделано, следует скачать Samsung USB driver с официального сайта (у меня не заработал) или отсюда, или попытаться с одним из этих. Если выбор пал на драйвер от самсунга, то после его установки обязательно надо перезагрузить компьютер, подключить свой девайс на андроиде, затем открыть диспетчер устройств, найти в списке свой девайс и выбрать обновление драйверов. Далее выбрать поиск драйверов на компьютере, потом нажать на выбор драйвера из списка. Выбрать из списка ADB Interface и наконец SAMSUNG Android ADB Interface. После этого все готово! Как только Windows запущена, переходим в C:\Users\*username*\AppData\Local\Android\android-sdk\platform-tools и запускаем консоль из этой папки (на всякий случай для тех кто не знает — щелчок правой кнопкой мыши → open command window here)

Прописываем в консоле:

add kill-serveradb connect *IP адрес вашего Android«a*

Выглядеть должно следующим образом:

4171d326fd8f786ae31dbb4ec89da3f8.png

Теперь запускаем Visual Studio, в которой создаем новый Android Application проект:

16c28e34f46d1a27af7b5bf3d4d63ce8.png

Список устройств должен выглядеть следующим образом (может подгрузиться не сразу):

5f409e04eed0269ad3743225be62c369.png

Выбираем первый в списке и запускаем проект. Собственно результат:

7fead4f088675d4d8bb0ddc7ddf01698.png

Теперь можно писать код в Visual Studio в паре с ReSharper и получать от процесса удовольствие.

Заключение Хоть все и получилось, но у такого подхода есть свои плюсы и минусы. С минусов и начну: Каждый раз при старте Windows приходится прописывать команды adb серверу; Мне пока удалось поставить на виртуалку только планшетные варианты Android«a без возможности изменения размера экрана и смены ориентации виртуальной машины (ориентацией экрана меняется сочетанием Ctrl + F9/F10/F11/F12 правда в Android«е, установленного с www.android-x86.org/download). Плюсы:

Действительно быстрая работа Android«а (даже быстрее, чем на моем девайсе); Возможность сравнить приложение на трех платформах одновременно, без необходимости перезапуска Windows для подключения/отключения Hyper-V; Использование Visual Studio в качестве среды разработки. На этом все, надеюсь вам пригодится это руководство. Спасибо, что прочитали!

© Habrahabr.ru