Вы можете использовать Android Emulator для создания эмуляций устройств Android, которые запускают ваши собственные образы системы Android. Кроме того, вы можете добавить поддержку нескольких дисплеев к эмуляциям Android Emulator.
Архитектура эмулятора Android
Android Emulator запускает операционную систему Android на виртуальной машине, называемой Android Virtual Device (AVD). Каждое AVD содержит полный программный стек Android и работает так, как если бы оно было на физическом устройстве. На рисунке 1 показана высокоуровневая архитектура Android Emulator. Для получения дополнительной информации об эмуляторе см. Запуск приложений на Android Emulator .
Рисунок 1. Архитектура эмулятора Android.
Создание образов AVD
Каждый AVD включает в себя образ системы Android, который работает в этом AVD. AVD Manager включает в себя некоторые образы системы. И вы можете создавать собственные образы системы AVD из вашего исходного кода и создавать эмуляции устройств для их запуска.
Чтобы создать и запустить образ системы AVD:
Загрузите исходный код Android:
mkdir aosp-android-latest-release; cd aosp-android-latest-release
repo init -u
repo sync -j24
Если вы хотите собрать другие версии Android, вы можете найти их имена веток в публичном репозитории Android . Они соответствуют кодовым именам Android, тегам и номерам сборок .
Создайте образ системы AVD. Это тот же процесс, что и создание образа системы устройства Android . Например, чтобы создать x86 64-битный AVD:
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
Информацию о последних функциях эмулятора и выпусках можно найти в следующих источниках: