Вы можете использовать эмулятор Android для создания эмуляций устройств Android, на которых работают собственные образы системы Android. Вы также можете поделиться своими собственными образами системы Android, чтобы другие люди могли запускать их эмуляции. Кроме того, вы можете добавить поддержку нескольких дисплеев в эмуляторы Android Emulator.
Архитектура эмулятора Android
Эмулятор Android позволяет запускать эмуляции устройств Android на компьютерах с Windows, macOS или Linux. Эмулятор Android запускает операционную систему Android на виртуальной машине, называемой виртуальным устройством Android (AVD). AVD содержит полный стек программного обеспечения Android и работает так, как если бы он был на физическом устройстве. На рис. 1 представлена схема высокоуровневой архитектуры эмулятора Android. Дополнительные сведения об эмуляторе см. в разделе Запуск приложений в эмуляторе Android .
Рисунок 1. Архитектура эмулятора Android
Создание образов AVD
Каждый AVD включает образ системы Android, который запускается в этом AVD. AVD Manager включает в себя некоторые системные образы. И вы можете создавать собственные образы системы AVD из исходного кода и создавать эмуляции устройств для их запуска.
Чтобы создать и запустить образ системы AVD:
Загрузите исходный код Android:
mkdir aosp-master; cd aosp-master
repo init -u
repo sync -j24
Если вы хотите собрать другие версии Android, вы можете найти их названия веток в общедоступном репозитории Android . Они сопоставляются с кодовыми именами, тегами и номерами сборки Android .
Создайте образ системы AVD. Это тот же процесс, что и создание образа системы Android- устройства. Например, чтобы создать 32-разрядный AVD x86:
mkdir aosp-master; cd aosp-master
source ./build/envsetup.sh
lunch sdk_phone_x86
make -j32
Если вы предпочитаете создавать 64-битный AVD x86, запустите
lunch
для 64-битной цели:lunch sdk_phone_x86_64
Запустите образ системы AVD в эмуляторе Android:
emulator
Дополнительные сведения о запуске эмулятора см. в разделе Параметры запуска из командной строки . На рис. 2 показан пример эмулятора Android, работающего с AVD.
Рис. 2. Эмулятор Android с AVD
Совместное использование образов системы AVD для использования другими пользователями с Android Studio
Следуйте этим инструкциям, чтобы поделиться образами системы AVD с другими. Они могут использовать ваши системные образы AVD с Android Studio для разработки и тестирования приложений.
Сделайте дополнительные пакеты
sdk
иsdk_repo
:$ make -j32 sdk sdk_repo
Это создает два файла в
aosp-master/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 .Отредактируйте
repo-sys-img.xml
соответствующим образом:- Обновите
<sdk:url>
до URL-адреса образа системы AVD . - См. sdk-sys-img-03.xsd , чтобы узнать о других обновлениях файла.
- Обновите
repo-sys-img.xml
в доступном для ваших пользователей месте и получите его URL-адрес для использования в качестве URL-адреса пользовательского сайта обновлений .
Чтобы использовать собственный образ AVD, выполните следующие действия в диспетчере SDK:
Добавьте URL-адрес пользовательского сайта обновления в качестве сайта обновления SDK .
Это добавит ваш собственный образ системы AVD на страницу «Образы системы».
Создайте AVD , загрузив и выбрав пользовательский образ системы AVD.
Добавление поддержки нескольких дисплеев
Android 10 улучшает Multi-Display (MD) , чтобы лучше поддерживать больше вариантов использования, таких как автоматический режим и режим рабочего стола. Эмулятор Android также поддерживает эмуляцию нескольких дисплеев. Таким образом, вы можете создать специальную среду с несколькими дисплеями, не устанавливая реальное оборудование.
Вы можете добавить поддержку нескольких дисплеев в 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
Вы можете найти последние функции эмулятора и информацию о выпусках из следующих источников: