[Перевод] Использование Intel HAXM при разработке приложений для Android Wear и TV
За плечами платформы Android долгий путь. Всё началось со смартфонов, потом были планшеты, дальше — устройства, работающие под управлением Google TV, Android Wear, Android TV (вместо Google TV), и, наконец — Android Auto. Сборка и тестирование приложений, которые предназначены для всего этого разнообразия, могут стать непростыми задачами для разработчиков. А если добавить сюда различные форм-факторы и разрешения экранов устройств, можно быстро столкнуться с проблемой всесторонней проверки и тестирования программ. Как же быть? К счастью, у нас есть Intel HAXM.
Предварительные сведения
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 или из командной строки (папка
> android
Окно Android SDK Manager. Образы систем, которые нужно загрузить, выделены
После того, как необходимые пакеты загружены, нужно, для использования соответствующих образов систем, настроить конфигурации эмуляторов (то есть, создать набор AVD). Для этого нам понадобится Android Virtual Device Manager. Запустим его из командной строки:
> android avd
Окно Android Virtual Device Manager, здесь можно создавать новые AVD и настраивать существующие
Эмуляция Android Wear
Создадим конфигурацию виртуального устройства для Android Wear так, как показано на рисунке ниже.
Настройка конфигурации эмулятора для Android Wear
После того, как настройки выполнены, нажмём кнопку OK, после чего — запустим эмулятор. Для этого его нужно выделить в окне AVD Manager и нажать на кнопку Start. Вот как выглядит окно эмулятора.
Окно эмулятора Android Wear
Для того чтобы смартфон мог взаимодействовать с устройством, работающим под управлением Android Wear (или с соответствующим эмулятором), нужно дополнительное приложение. Единственный способ установить это приложение на устройство — загрузка из Магазина Google Play. Соответственно, нам понадобится Android-смартфон, который имеет доступ к Магазину.
Устройство должно быть доступно для ADB. Для того чтобы оно смогло подключиться к эмулятору, нужно, чтобы и смартфон, и эмулятор, присутствовали в списке устройств, который можно получить следующей командой:
> adb devices
Список подключенных устройств
Теперь перенаправим TCP-порты такой командой:
> adb -d forward tcp:5601 tcp:5601
Теперь всё готово для сопряжения эмулятора Android Wear и аппаратного устройства. Осталось лишь запустить на смартфоне приложение Android Wear, и, из его меню, выполнить команду подключения к эмулятору. Если подключение удалось, экран эмулятора будет выглядеть так, как показано в левой части рисунка. В правой части показан экран эмулятора, не подключенного к смартфону.
Экраны эмулятора 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
Установка приложения на эмулятор и проверка установки
Имя пакета приложения-примера (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 так, как показано на рисунке ниже.
Настройка конфигурации эмулятора для 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
Вот как приложение выглядит на экране эмулятора.
Приложение, запущенное на эмуляторе Android TV
Создание и запуск необходимого количества экземпляров эмуляторов
Если в ходе разработки и тестирования приложения возникает необходимость создания и запуска нескольких экземпляров эмуляторов — всё это достижимо с использованием Intel HAXM. При установке HAXM можно настроить размер оперативной памяти, который отводится для его работы. Вот набор конфигураций AVD для Android Wear, TV и смартфона.
Список виртуальных устройств Android
Ниже вы можете видеть приложение-пример, запущенное одновременно на трёх виртуальных устройствах (Android TV, Wear и эмулятор смартфона). Здесь же показаны сведения об использовании CPU. Как видно, все эти экземпляры эмулятора не создают чрезмерной нагрузки на систему.
Три одновременно запущенных эмулятора и сведения о нагрузке на систему, которую они создают
В ходе работы можно настраивать выделение памяти для эмуляторов, оптимизируя потребление ими системных ресурсов. Для того, чтобы перенастроить параметры выделения памяти, заданные при установке HAXM, нужно повторно запустить его установку и указать нужные параметры.
Итоги
В этом материале мы продемонстрировали основные возможности Intel HAXM. Здесь вы можете найти подробности об использовании и настройке Android-эмуляторов. Для того чтобы проверить правильность установки HAXM, а так же то, используется ли он при работе с эмуляторами, обратитесь к этому материалу. Надеемся, Intel HAXM станет вашим надёжным помощником в деле разработки Android-приложений для самых разных устройств, работающих на этой платформе.