[Из песочницы] Как подружить 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 или образа», если нет, тогда жмем на »+» → Создать, а затем выбираем установку с образа и жмем «Продолжить». В открывшемся окне выбираем образ и перетаскиваем его внутрь.
Parallels Desktop нас тут же извещает о том, что определить ОС на этом образе является для него невыполнимой задачей, однако, не стоит переживать по этому поводу, смело жмем «Продолжить». В выпадающем меню выбираем Другие версии Linux → Другая версия Linux, жмем OK.
Далее можно ввести имя и расположение виртуальной машины. Настоятельно рекомендую выбрать пункт «Настроить параметры до начала установки». У меня настроено следующим образом:
После настройки нажимаем «Продолжить», запускается установка нашего 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
Открывается список доступных виртуальных машин — его пока оставляем открытым. Теперь переходим Parallels Desktop → Настройки
И открываем вкладку Дополнительно, а на ней Сеть: Изменить настройки
Сюда нам чуть позже необходимо будет добавить IP нашего Android«a, на который будем деплоить проект с Visual Studio.
Возвращаемся к списку виртуальных машин, нажимаем правой кнопкой мышки на Android и переходим в настройки этой виртуалки:
Здесь нас будет интересовать вкладка «Оборудование» пункт «Сеть». В типе подключения нужно выбрать в списке мостовых сетей ту, к которой подключен сам Mac:
Закрываем настройки виртуальной машины с Android«ом и запускаем ее. Теперь уже переходим в настройки самого Android«а → О планшетном ПК → Общая информация и проматываем список, пока не найдем IP нашего Andorid«a:
Возвращаемся к настройкам Parallels Desktop (Настройки → Дополнительно → Сеть: Изменить настройки), нажимаем на »+» под списком правил переадресации портов, где вводим информацию следующим образом (конечно же меняя IP адрес на адрес своего Android«a)
Нажимаем ОК и видим наш IP в списке:
Настройка 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*
Выглядеть должно следующим образом:
Теперь запускаем Visual Studio, в которой создаем новый Android Application проект:
Список устройств должен выглядеть следующим образом (может подгрузиться не сразу):
Выбираем первый в списке и запускаем проект. Собственно результат:
Теперь можно писать код в Visual Studio в паре с ReSharper и получать от процесса удовольствие.
Заключение Хоть все и получилось, но у такого подхода есть свои плюсы и минусы. С минусов и начну: Каждый раз при старте Windows приходится прописывать команды adb серверу; Мне пока удалось поставить на виртуалку только планшетные варианты Android«a без возможности изменения размера экрана и смены ориентации виртуальной машины (ориентацией экрана меняется сочетанием Ctrl + F9/F10/F11/F12 правда в Android«е, установленного с www.android-x86.org/download). Плюсы:
Действительно быстрая работа Android«а (даже быстрее, чем на моем девайсе); Возможность сравнить приложение на трех платформах одновременно, без необходимости перезапуска Windows для подключения/отключения Hyper-V; Использование Visual Studio в качестве среды разработки. На этом все, надеюсь вам пригодится это руководство. Спасибо, что прочитали!