[Перевод] Использование Intel HAXM при разработке приложений для Android Wear и TV

За плечами платформы Android долгий путь. Всё началось со смартфонов, потом были планшеты, дальше — устройства, работающие под управлением Google TV, Android Wear, Android TV (вместо Google TV), и, наконец — Android Auto. Сборка и тестирование приложений, которые предназначены для всего этого разнообразия, могут стать непростыми задачами для разработчиков. А если добавить сюда различные форм-факторы и разрешения экранов устройств, можно быстро столкнуться с проблемой всесторонней проверки и тестирования программ. Как же быть? К счастью, у нас есть Intel HAXM.
8c8fa311ac8244c1ad7365f63776d478.png

Предварительные сведения


Intel Hardware Accelerated Execution Manager (HAXM) — это Android-эмулятор, который поддерживает аппаратную виртуализацию. Он создаёт невысокую нагрузку на систему, обладает отличной производительностью и быстрым интерфейсом.

Используя Intel HAXM, можно запустить несколько экземпляров Android-эмулятора на одном компьютере, не особо беспокоясь о производительности, о нагрузке на систему или о «тормозах» интерфейса. Подобный подход может быть весьма полезным в итеративном процессе создания и тестирования приложений, он способен дать огромный прирост производительности труда разработчиков.

Образы Android-эмуляторов, рассчитанные на архитектуры, отличные от x86, могут медленно запускаться и с задержкой откликаться на команды пользователя. Кроме того, в отличие от некоторых Android-эмуляторов сторонних производителей, с помощью Intel HAXM вы получаете возможность работать с последними версиями API и платформ Android сразу же после их выпуска.

Здесь вы можете найти подробное руководство по работе с HAXM.

В этом материале мы поговорим о том, как пользоваться возможностями Intel HAXM при создании приложений, рассчитанных на всевозможные варианты платформы Android. Такие приложения могут работать на обычных смартфонах разных форм-факторов, и на устройствах, несущих на борту Android Wear и Android TV.

Работа с универсальным приложением-примером для Android


Компания Google недавно выпустила приложение, на примере которого показано, как охватить одной кодовой базой множество различных Android-устройств.

В примере продемонстрированы передовые подходы к разработке универсальных приложений. Для сборки проекта воспользуйтесь инструкциями, которые можно найти по вышеупомянутой ссылке. Мы, в данном практическом руководстве, будем испытывать пример на x86 HAXM-эмуляторах Android TV, Wear и смартфона.

Проект можно импортировать в Android Studio и воспользоваться возможностями этой среды по сборке и запуску приложения на эмуляторе. Если вы предпочитаете работать с другой IDE, то, о чём пойдёт речь дальше, так же окажется полезным.

Если вам близок интерфейс командной строки, можете просто запустить Gradle-скрипт для сборки приложения из папки с исходным кодом примера.

gradlew assembleDebug


Результирующий APK-файл можно найти в папке «mobile/build/outputs/apk/mobile-debug.apk».

Создание AVD для Android TV и Wear


Для начала нужно удостовериться в том, что у нас имеются самые свежие образы эмуляторов для платформ Android TV, Wear, а так же — для обычных смартфонов.

Откроем Android SDK Manager. Его можно запустить из интерфейса Android Studio или из командной строки (папка /tools должна быть указана в переменных среды) с помощью такой команды:

> android


81c5af782ef17e0ced546a192c7dfe0b.png
Окно Android SDK Manager. Образы систем, которые нужно загрузить, выделены

После того, как необходимые пакеты загружены, нужно, для использования соответствующих образов систем, настроить конфигурации эмуляторов (то есть, создать набор AVD). Для этого нам понадобится Android Virtual Device Manager. Запустим его из командной строки:

> android avd


64aa58629b1b5f19b9236643acba947b.png
Окно Android Virtual Device Manager, здесь можно создавать новые AVD и настраивать существующие

Эмуляция Android Wear


Создадим конфигурацию виртуального устройства для Android Wear так, как показано на рисунке ниже.

8017f7e3e07878d5ded57f59fa9ac929.png
Настройка конфигурации эмулятора для Android Wear

После того, как настройки выполнены, нажмём кнопку OK, после чего — запустим эмулятор. Для этого его нужно выделить в окне AVD Manager и нажать на кнопку Start. Вот как выглядит окно эмулятора.

0d9d7aca8729dd79825ac36b7dcf4c71.png
Окно эмулятора Android Wear

Для того чтобы смартфон мог взаимодействовать с устройством, работающим под управлением Android Wear (или с соответствующим эмулятором), нужно дополнительное приложение. Единственный способ установить это приложение на устройство — загрузка из Магазина Google Play. Соответственно, нам понадобится Android-смартфон, который имеет доступ к Магазину.

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

> adb devices

952c0ce82275ec5472a3c1266dfa74ee.png
Список подключенных устройств

Теперь перенаправим TCP-порты такой командой:

> adb -d forward tcp:5601 tcp:5601


Теперь всё готово для сопряжения эмулятора Android Wear и аппаратного устройства. Осталось лишь запустить на смартфоне приложение Android Wear, и, из его меню, выполнить команду подключения к эмулятору. Если подключение удалось, экран эмулятора будет выглядеть так, как показано в левой части рисунка. В правой части показан экран эмулятора, не подключенного к смартфону.

d949d14220f8b81b9612b7a3ed62abf6.png
Экраны эмулятора Android Wear в подключенном (слева) и неподключенном (справа) состоянии

Подробные сведения о создании приложений для Android Wear можно найти здесь. APK-файл тестового приложения ничем не отличается от других APK, его можно установить на эмулятор Android Wear с использованием ADB.

> adb -s emulator-5554 install -r mobile\build\outputs\apk\mobile-debug.apk


Проверить, установлено ли приложение на эмуляторе, можно с помощью такой команды:

> adb -s emulator-5554 shell pm list packages | grep example


b22a50f8ded3f7e5e65e85b32a01da03.png
Установка приложения на эмулятор и проверка установки

Имя пакета приложения-примера (com.example.android.uamp) присутствует в списке. Из командной строки можно и запустить приложение:

> adb -s emulator-5554 shell monkey -p com.example.android.uamp -c android.intent.category.LAUNCHER 1


Теперь приложение запущено на эмуляторе Android Wear

Эмуляция Android TV


Создадим конфигурацию виртуального устройства для Android TV так, как показано на рисунке ниже.

f7ed50f4832b5b3cc3e3ae988ac5e5eb.png
Настройка конфигурации эмулятора для Android TV

После настройки нажмём на кнопку OK и запустим эмулятор кнопкой Start в окне ADV Manager.

Проверить доступность эмулятора для ADB можно такой командой:

> adb devices


Запишите или запомните идентификатор эмулятора (что-то вроде emulator-55xx). Он понадобится для указания целевого устройства при работе с эмулятором с помощью ADB. Для установки приложения на эмулятор можно воспользоваться такой командой:

> adb -s emulator-55xx install -r mobile/build/outputs/apk/mobile-debug.apk

Запустить приложение на эмуляторе Android TV можно так:

> adb -s emulator-55xx shell monkey -p com.example.android.uamp -c android.intent.category.LAUNCHER 1


Вот как приложение выглядит на экране эмулятора.

6e82780237918b4e448d77356b412dc3.png
Приложение, запущенное на эмуляторе Android TV

Создание и запуск необходимого количества экземпляров эмуляторов


Если в ходе разработки и тестирования приложения возникает необходимость создания и запуска нескольких экземпляров эмуляторов — всё это достижимо с использованием Intel HAXM. При установке HAXM можно настроить размер оперативной памяти, который отводится для его работы. Вот набор конфигураций AVD для Android Wear, TV и смартфона.

1c6be1f95ceebdfeb652098322a635e8.png
Список виртуальных устройств Android

Ниже вы можете видеть приложение-пример, запущенное одновременно на трёх виртуальных устройствах (Android TV, Wear и эмулятор смартфона). Здесь же показаны сведения об использовании CPU. Как видно, все эти экземпляры эмулятора не создают чрезмерной нагрузки на систему.

dd8694c4d8b85a83d40bafd44a189331.png
Три одновременно запущенных эмулятора и сведения о нагрузке на систему, которую они создают

В ходе работы можно настраивать выделение памяти для эмуляторов, оптимизируя потребление ими системных ресурсов. Для того, чтобы перенастроить параметры выделения памяти, заданные при установке HAXM, нужно повторно запустить его установку и указать нужные параметры.

Итоги


В этом материале мы продемонстрировали основные возможности Intel HAXM. Здесь вы можете найти подробности об использовании и настройке Android-эмуляторов. Для того чтобы проверить правильность установки HAXM, а так же то, используется ли он при работе с эмуляторами, обратитесь к этому материалу. Надеемся, Intel HAXM станет вашим надёжным помощником в деле разработки Android-приложений для самых разных устройств, работающих на этой платформе.

© Habrahabr.ru