- История о том, как запустить эмулятор Android или сэкономить на процессоре intel
- Предыстория
- Инструкция
- VirtualBox — Запуск Android эмулятора в виртуальной среде для тестирования Android проекта
- Введение
- Требования:
- Трудности:
- Предлагаемое решение в данной статье:
- Предполагаемые преимущества:
- В настоящей статье будет использоваться оборудование:
- Шаг 1: Установка ПО на нативную OS
- x11vnc сервер
- Установка VirtualBox
- Создание VM
- Шаг 2: Установка ПО на VM
- Установка KVM
- Установка Android command line tools
- Устанавливаем Android tools
- Устанавливаем Git и клонируем проект
- Шаг 3: Проведение тестирования проекта на созданном Android эмуляторе
- Негативный тест
- Заключение
- Аппаратное ускорение для производительности эмулятора (Hyper-V & HAXM)
- Ускорение эмуляторов Android в Windows
- Ускорение с помощью Hyper-V
- Проверка поддержки Hyper-V
- Включение ускорения Hyper-V
- Ускорение с помощью HAXM
- Проверка поддержки HAXM
- Установка HAXM
- Устранение неполадок
- Ускорение эмуляторов Android в macOS
- Ускорение с помощью платформы гипервизора
- Ускорение с помощью HAXM
- Проверка поддержки HAXM
- Установка HAXM
- Устранение неполадок
История о том, как запустить эмулятор Android или сэкономить на процессоре intel
Предыстория
Я собрал года 4 назад домашний комп, который подходил всем моим запросам. На процессоре решил сэкономить — взял amd. К компу вопросов нет.
Потом занялся разработкой под Android и тут меня ждал сюрприз! Эмулятор запускался только на процессоре intel. Его можно было запустить без аппаратной виртуализации конечно, используя вот этот совет www.youtube.com/watch?v=QTbjdBPKnnw&t=127s, но кто пользовался знает, что эмулятор может запускаться очень долго. У меня с 12ГБ доходило до 10 мин. Это может конечно из-за встроенной видеокарты.
Основное рабочее место у меня было в офисе, поэтому особо переживал и тестировал дома на реальных устройствах. Но пару месяцев назад стал нужен именно эмулятор. Первой мыслью было конечно купить intel-овский процессор. Но нужно было покупать ещё материнскую плату и видеокарту. Скорее всего я бы так и поступил, если бы не наткнулся на обновлённые требования к системе. В требованиях написано, что эмулятор всё таки можно запустить на Windows 10 (с обновлениями после апреля 2018) с помощью технологии WHPX.
Теперь основная часть истории, как это сделать. Всё оказалось не так тривиально. Заранее прошу прощения за упущения, потому что не могу назвать себя знатоком ни в “железе”, ни в Windows.
Инструкция
После всех обновлений эмулятор естественно не запустился. AndroidStudio пыталась запустить эмулятор с помощью HAXM и выбрасывала ошибку “Emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration!”.
Далее приведу инструкцию с ссылками упустив кучу подробностей и моих “танцев с бубном”.
Должен поддерживать для работы с аппаратной виртуализацией.
2. Обновляем Windows 10 до версии 1803 (апрель 2018):
4. Включаем в bios режим виртуализации. Он там может называеться IOMMU, а не VT.
5. Качаем обновления для bios с официального сайта. Для моего asus, например, они были здесь.
Версия Bios должна стать что-то около 3001:
7. Заходим на сайт microsoft и изучаем инструкцию для включения компонента.
8. Нужно проверить требования Hyper-V. Для этого в командной строке набираем systeminfo. Проверяем, чтобы отображались эти значения:
У меня же вместо это было сообщение:
На официальном сайте написано, что пока не будет стоять Yes-Yes-Yes-Yes система WHPX не будет работать. У меня же эмулятор запускается, при включенной низкоуровневой оболочке.
9. Далее в руководстве предлагается включить компонент hyper-v (он по умолчанию отключен):
В русском переводе наименования несколько отличаются:
Кстати, после отключения компонента “Платформа низкоуровневой оболочки Windows”, “Требования hyper-v” становятся Yes-Yes-Yes-Yes. Не понял этот момент. Если кто разбирается, напишите в комментариях.
10. Определяем, нужно ли нам всё это? Или легче было купить intel)
После этих настроек всё должно заработать:
Хочу отметить, используя технологию WHPX и процессор amd, запуск эмулятора занимает примерно столько же времени, сколько на процессоре intel. Учитывая, что остальное «железо» сравнимо по своим параметрам.
Источник
VirtualBox — Запуск Android эмулятора в виртуальной среде для тестирования Android проекта
Введение
В данной статье я постараюсь описать пример инфраструктуры для автотестов Android приложений (mobile automation), а именно, среду для проведения тестранов UI автотестов на эмуляторе Android девайса в виртуальной среде.
Требования:
Для Android эмулятора нужна поддержка Intel Virtualization Technology или AMD Virtualization. Поэтому часто тестировщик сталкивается с необходимостью запуска тестранов только в нативной среде ПК с прямым доступом к центральному процессору.
В этом случае схема получается такая:
Трудности:
Невозможно легко пересоздать среду эмулятора.
Среда не создаётся перед проведением тестирования, и после проведения не удаляется, поэтому среда может влиять на тестируемое приложение.
Починка и настройка среды занимает много времени.
Предлагаемое решение в данной статье:
Создать VM с использованием возможностей nested virtualization VirtualBox (более подробное описание технологии в этой статье).
Пробросить поддержку Intel-VT или KVM внутрь созданной виртуальной машины.
Изнутри VM создать и запустить Android эмулятор девайса.
Провести тестран UI тестов приложения.
После проведения тестирования уничтожить VM.
В этом случае схема получится такая:
Предполагаемые преимущества:
VM можно автоматически создавать перед проведением тестирования, а после окончания уничтожать. В таком случае каждый новый тестран будет проведен в идеально чистых условиях.
Уменьшится время поддержки среды и управляющего ПО, так как не нужно каждый раз руками ничего устанавливать и чинить неисправности инвайронмента.
В настоящей статье будет использоваться оборудование:
процеcсор: Intel i5-1035G1
в BIOS включена поддержка виртуализации процессора
Шаг 1: Установка ПО на нативную OS
Отдельно обращу внимание на управление машиной. Будем использовать протокол VNC для создания удобного удаленного рабочего стола. Протокол универсальный, для Linux, Windows, Mac и т.д.
x11vnc сервер
Запуск с параметрами:
Установка VirtualBox
Вводим в командной строке:
Создание VM
Мы пойдем по самому простому пути и создадим VM из интерфейса VirtualBox с такими характеристиками. В дальнейшем создание VM будет code-first
Количество CPU — не больше половины имеющихся на Вашем процессоре (в идеале половина)
Оперативная память — будет достаточно 4Gb
Nested Virtualization можно также включить из командной строки:
Далее переходим в саму VM.
Шаг 2: Установка ПО на VM
В первый раз мы установим всё руками. В дальнейшем весь установочный сценарий будет помещен в Packer, что позволит нам создавать VM с нужными настройками каждый раз перед началом тестирования.
Устанавливаем последний образ Ubuntu с официального сайта.
Установка KVM
Установка Android command line tools
Проверяем, что sdkmanager работает и Android SDK доступен:
Устанавливаем Android tools
Устанавливаем Git и клонируем проект
В данном примере я использую пустой проект мобильного Android приложения. В нём уже есть дефолтный интеграционный тест. Нам этого будет вполне достаточно.
Шаг 3: Проведение тестирования проекта на созданном Android эмуляторе
ADB видит подключенный к нему эмулятор:
Ура! Тест пройден!
Негативный тест
Чтобы убедится, в том что именно позволило нам сбилдить тесты, мы сделаем один негативный тест и воспроизведем запуск эмулятора в обычной VM.
Переустановка VirtualBox на родительской машине (чтобы избежать ошибочное сохранение конфигов)
VM мы создаём без проброса виртуализации и с одним CPU:
В созданной VM мы не устанавливаем:
Остальные шаги аналогичны шагу №2 с установкой ПО. Попробуем еще раз наш тестран. Обратите внимание, что ADB также видит эмулятор:
Ура! Тест не пройден! Никогда еще так не радовался проваленному тестрану:
Падает PackageManager, как и обычно при запуске из виртуальной среды без аппаратной поддержки процессора:
Заключение
Мы сделали первый этап построения инфраструктуры для проведения автотестов Android приложений. Следующим этапом должно стать упаковка описанного выше сценария в Packer (ссылка на официальный сайт) который умеет работать с образами VirtualBox. Затем весь сценарий мы попробуем запустить из CI Jenkins. Если учесть, что плагин для него уже порядком устарел, то будет очень интересно.
Все результаты опубликую, как пополнения к этой статье.
В идеале, у нас должна получится code-first инфраструктура для тестрана UI и интеграционных автотестов для Android приложений, которую можно поднять на любом современном офисном ПК, которая работает автономно, билдит тесты на родных Android эмуляторах и есть не просит.
Источник
Аппаратное ускорение для производительности эмулятора (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:
Microsoft Hyper-V и платформа гипервизора Windows (WHPX) . Hyper-V — это функция виртуализации в Windows, которая позволяет запускать виртуализированные компьютерные системы на физическом главном компьютере.
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:
В поле поиска Windows введите Сведения.
В результатах поиска выберите Сведения о компьютере.
Прокрутите диалоговое окно Сведения до раздела Характеристики Windows.
Должна быть указана версия не ранее 1803:
Чтобы убедиться, что компьютерное оборудование и программное обеспечение совместимо с Hyper-V, откройте командную строку и введите следующую команду:
Если все указанные требования Hyper-V имеют значение Да, компьютер поддерживает Hyper-V. Пример:
Включение ускорения Hyper-V
Если ваш компьютер соответствует приведенным выше критериям, выполните следующие действия для ускорения эмулятора Android с помощью Hyper-V.
Введите компоненты windows в поле поиска Windows и выберите Включение и отключение компонентов Windows в результатах поиска. В диалоговом окне Компоненты Windows включите Hyper-V и платформу гипервизора Windows:
После внесения этих изменений перезагрузите компьютер.
В Windows 10 с обновлением за октябрь 2018 г. (RS5) и более поздних версий необходимо только включить Hyper-V, так как он будет автоматически использовать платформу гипервизора Windows (WHPX).
Установите Visual Studio 15.8 или более поздней версии (в этой версии Visual Studio интегрированная среда разработки поддерживает запуск эмулятора Android с Hyper-V).
Установите пакет Android Emulator версии 27.2.7 или более поздней. Чтобы установить этот пакет, выберите инструменты Android > пакет SDK для Android Manager в Visual Studio. Откройте вкладку Инструменты и убедитесь, что установлена версия эмулятора Android не ниже 27.2.7. Кроме того, убедитесь, что установлен компонент Android SDK Tools версии 26.1.1 или более поздней:
При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать образ системы на базе x86. Если вы используете образ системы на основе ARM, виртуальное устройство не ускорится и будет работать медленно.
Теперь технология Hyper-V должна быть включена, и вы можете запустить эмулятор Android с ускорением.
Ускорение с помощью HAXM
Если компьютер не поддерживает Hyper-V, используйте HAXM для ускорения эмулятора Android. Отключите отключить Device Guard, чтобы использовать HAXM.
Проверка поддержки HAXM
Чтобы определить, поддерживает ли оборудование HAXM, следуйте инструкциям из раздела Мой процессор поддерживает технологию виртуализации Intel?. Если оборудование поддерживает HAXM, проверьте, установлен ли HAXM:
Откройте окно командной строки и введите следующую информацию:
Посмотрите в выходных данных, запущен ли процесс HAXM. Если да, для состояния intelhaxm будет отображаться RUNNING . Пример:
Если STATE не имеет значение RUNNING , HAXM не установлен.
Если компьютер поддерживает HAXM, но он не установлен, установите его, выполнив действия, приведенные в следующем разделе.
Установка HAXM
Пакеты установки HAXM для Windows можно найти на странице выпусков GitHub, посвященной Intel Hardware Accelerated Execution Manager. Чтобы скачать и установить решение HAXM, выполните следующие действия:
Скачайте с веб-сайта Intel последнюю версию установщика подсистемы виртуализации HAXM для ОС Windows. Скачивая установщик HAXM с веб-сайта Intel, вы гарантированно получаете последнюю версию этой программы.
Откройте файл haxm-N.N.N-setup.exe (где N.N.N — это номер версии), чтобы запустить установщик HAXM. Примите значения по умолчанию, предлагаемые в диалоговых окнах установщика:
При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать образ системы на базе x86. Если вы используете образ системы на основе ARM, виртуальное устройство не ускорится и будет работать медленно.
Устранение неполадок
Сведения о решении проблем с аппаратным ускорением см. в руководстве по устранению неполадок для эмулятора Android.
Ускорение эмуляторов Android в macOS
Следующие технологии виртуализации доступны для ускорения эмулятора Android:
Платформа гипервизора Apple. Гипервизор входит в состав macOS 10.10 и более поздних версий и позволяет запускать виртуальные машины на компьютере Mac.
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:
Откройте терминал и введите следующую команду:
Эта команда предполагает, что пакет SDK для Android установлен в расположении по умолчанию
/Library/Developer/Xamarin/android-sdk-macosx; в противном случае измените этот путь для расположения пакета SDK для Android на Mac.
Если решение HAXM установлено, приведенная выше команда вернет подобный результат:
Если решение HAXM не установлено, возвращается следующее сообщение:
Если решение HAXM не установлено, установите его, выполнив действия, приведенные в следующем разделе.
Установка HAXM
Пакеты установки HAXM для macOS можно найти на странице Intel Hardware Accelerated Execution Manager. Чтобы скачать и установить решение HAXM, выполните следующие действия:
Скачайте с веб-сайта Intel последнюю версию установщика подсистемы виртуализации HAXM для ОС macOS.
Запустите установщик HAXM. Примите значения по умолчанию, предлагаемые в диалоговых окнах установщика:
Устранение неполадок
Сведения о решении проблем с аппаратным ускорением см. в руководстве по устранению неполадок для эмулятора Android.
Источник