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

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

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

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

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

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

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

Каждый AVD включает в себя образ системы Android, который работает в этом AVD. AVD Manager включает в себя некоторые образы системы. И вы можете создавать собственные образы системы 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 . Например, чтобы создать x86 64-битный AVD:

    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
    

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