С помощью эмулятора Android можно создавать эмуляции устройств Android, работающих под управлением собственных образов системы Android. Кроме того, в эмуляции эмулятора Android можно добавить поддержку нескольких дисплеев.
Архитектура эмулятора 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-releaserepo init -urepo sync -j24
Если вы хотите собрать другие версии Android, вы можете найти названия их веток в общедоступном репозитории Android . Они соответствуют кодовым именам, тегам и номерам сборок Android .
Создайте образ системы AVD. Это тот же процесс, что и создание образа системы для устройства Android . Например, для создания 64-битного AVD x86:
source ./build/envsetup.shlunch sdk_phone_x86_64make -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 также поддерживает эмуляцию нескольких дисплеев. Таким образом, вы можете создать специальную среду с несколькими дисплеями, не используя реальное оборудование.
Добавить поддержку нескольких дисплеев в AVD можно, внеся следующие изменения или выбрав нужные параметры из этих списков контроля версий .
Добавьте в сборку поставщик поддержки нескольких дисплеев, внеся следующие строки в файл
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Чтобы включить функцию многоэкранного режима, добавьте следующую строку в файл
device/generic/goldfish/data/etc/advancedFeatures.ini:MultiDisplay = on
Актуальную информацию о функциях эмулятора и его релизах можно найти в следующих источниках: