Использование виртуальных устройств Android Emulator

С помощью Android Emulator можно создавать эмуляции устройств Android, использующих ваши собственные образы ОС Android. Кроме того, в эмуляции Android Emulator можно добавить поддержку нескольких дисплеев.

Архитектура эмулятора Android

Эмулятор Android запускает операционную систему Android на виртуальной машине, называемой виртуальным устройством Android (AVD). Каждое виртуальное устройство (AVD) содержит полный набор программного обеспечения Android и работает так, как если бы оно находилось на физическом устройстве. На рисунке 1 показана высокоуровневая архитектура эмулятора Android. Подробнее об эмуляторе см. в разделе Запуск приложений на эмуляторе Android .

Архитектура эмулятора Android.

Рисунок 1. Архитектура эмулятора Android.

Создание образов AVD

Каждый AVD включает образ системы Android, который запускается в этом AVD. Менеджер AVD включает в себя несколько образов системы. Вы также можете создавать собственные образы системы AVD из исходного кода и создавать эмуляции устройств для их запуска.

Чтобы создать и запустить образ системы AVD:

  1. Загрузите исходный код Android:

    mkdir aosp-android-latest-release; cd aosp-android-latest-release
    repo init -u
    repo sync -j24

Если вы хотите собрать другие версии Android, названия их веток можно найти в публичном репозитории Android . Они соответствуют кодовым именам, тегам и номерам сборок Android .

  1. Создайте образ системы AVD. Это тот же процесс, что и для создания образа системы устройства Android . Например, чтобы создать 64-битный AVD x86:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
  2. Запустите образ системы AVD в эмуляторе Android:

    emulator

Подробнее о запуске эмулятора см. в разделе «Параметры запуска командной строки» . На рисунке 2 показан пример эмулятора Android, работающего на AVD:

Эмулятор Android, работающий под управлением AVD.

Рисунок 2. Эмулятор Android, работающий на AVD.

Поделитесь образами системы AVD, чтобы другие могли использовать их с Android Studio

Следуйте этим инструкциям, чтобы поделиться образами вашей системы AVD с другими пользователями. Они смогут использовать ваши образы системы AVD в Android Studio для разработки и тестирования приложений.

  1. Создайте дополнительные пакеты 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
  2. Разместите файл sdk-repo-linux-system-images-eng.[username].zip в доступном для ваших пользователей месте и получите его URL-адрес для использования в качестве URL-адреса образа системы AVD .

  3. Для Android 12 и ниже отредактируйте repo-sys-img.xml соответствующим образом:

    • Обновите <sdk:url> на URL-адрес образа вашей системы AVD .
    • Информацию о других обновлениях файла см. в файле sdk-sys-img-03.xsd.
    • Разместите repo-sys-img.xml в доступном для ваших пользователей месте и получите его URL-адрес для использования в качестве URL-адреса пользовательского сайта обновлений .

Чтобы использовать пользовательский образ AVD, выполните следующие действия в SDK Manager:

  1. Добавьте URL-адрес пользовательского сайта обновления как сайт обновления SDK .

    Это добавит ваш пользовательский образ системы AVD на страницу «Системные образы».

  2. Создайте 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
    

Информацию о последних функциях эмулятора и выпусках можно найти в следующих источниках: