С помощью Android Emulator можно создавать эмуляции устройств Android, использующих ваши собственные образы ОС Android. Кроме того, в эмуляции Android Emulator можно добавить поддержку нескольких дисплеев.
Архитектура эмулятора Android
Эмулятор Android запускает операционную систему Android на виртуальной машине, называемой виртуальным устройством Android (AVD). Каждое виртуальное устройство (AVD) содержит полный набор программного обеспечения Android и работает так, как если бы оно находилось на физическом устройстве. На рисунке 1 показана высокоуровневая архитектура эмулятора Android. Подробнее об эмуляторе см. в разделе Запуск приложений на эмуляторе Android .
Рисунок 1. Архитектура эмулятора Android.
Создание образов AVD
Каждый AVD включает образ системы Android, который запускается в этом AVD. Менеджер AVD включает в себя несколько образов системы. Вы также можете создавать собственные образы системы AVD из исходного кода и создавать эмуляции устройств для их запуска.
Чтобы создать и запустить образ системы AVD:
Загрузите исходный код Android:
mkdir aosp-android-latest-release; cd aosp-android-latest-release
repo init -u
repo sync -j24
Если вы хотите собрать другие версии Android, названия их веток можно найти в публичном репозитории Android . Они соответствуют кодовым именам, тегам и номерам сборок Android .
Создайте образ системы AVD. Это тот же процесс, что и для создания образа системы устройства Android . Например, чтобы создать 64-битный AVD x86:
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
Запустите образ системы AVD в эмуляторе Android:
emulator
Подробнее о запуске эмулятора см. в разделе «Параметры запуска командной строки» . На рисунке 2 показан пример эмулятора Android, работающего на AVD:
Рисунок 2. Эмулятор Android, работающий на AVD.
Поделитесь образами системы AVD, чтобы другие могли использовать их с Android Studio
Следуйте этим инструкциям, чтобы поделиться образами вашей системы AVD с другими пользователями. Они смогут использовать ваши образы системы AVD в Android Studio для разработки и тестирования приложений.
Создайте дополнительные пакеты
sdk
иsdk_repo
:Для Android 13 и выше используйте команду
emu_img_zip
:$ make emu_img_zip
Это создаст файл
sdk-repo-linux-system-images-eng.[username]].zip
.Для Android 12 и ниже используйте команду
sdk_repo
:$ make -j32 sdk sdk_repo
Команда
make sdk sdk_repo
создает два файла вaosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86
:-
sdk-repo-linux-system-images-eng.[username].zip
-
repo-sys-img.xml
-
Разместите файл
sdk-repo-linux-system-images-eng.[username].zip
в доступном для ваших пользователей месте и получите его URL-адрес для использования в качестве URL-адреса образа системы AVD .Для Android 12 и ниже отредактируйте
repo-sys-img.xml
соответствующим образом:- Обновите
<sdk:url>
на URL-адрес образа вашей системы AVD . - Информацию о других обновлениях файла см. в файле sdk-sys-img-03.xsd.
- Разместите
repo-sys-img.xml
в доступном для ваших пользователей месте и получите его URL-адрес для использования в качестве URL-адреса пользовательского сайта обновлений .
- Обновите
Чтобы использовать пользовательский образ AVD, выполните следующие действия в SDK Manager:
Добавьте URL-адрес пользовательского сайта обновления как сайт обновления SDK .
Это добавит ваш пользовательский образ системы AVD на страницу «Системные образы».
Создайте AVD , загрузив и выбрав пользовательский образ системы AVD.
Добавить поддержку нескольких дисплеев
В Android 10 улучшена поддержка нескольких дисплеев для большего количества вариантов использования, таких как автоматический режим и режим рабочего стола. Android Emulator также поддерживает эмуляцию нескольких дисплеев. Таким образом, вы можете создать специальную многодисплейную среду без необходимости установки реального оборудования.
Вы можете добавить поддержку нескольких дисплеев в AVD, внеся следующие изменения или выбрав из этих CL .
Добавьте поставщик нескольких дисплеев в сборку, добавив следующие строки в файл
build/target/product/sdk_phone_x86.mk
:PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \ system/lib/libemulator_multidisplay_jni.so \ system/lib64/libemulator_multidisplay_jni.so \ system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \ PRODUCT_PACKAGES += MultiDisplayProvider
Включите флаг функции Multi-Display, добавив следующую строку в файл
device/generic/goldfish/data/etc/advancedFeatures.ini
:MultiDisplay = on
Информацию о последних функциях эмулятора и выпусках можно найти в следующих источниках: