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

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

Архитектура эмулятора 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 также поддерживает эмуляцию нескольких дисплеев. Таким образом, вы можете создать специальную среду с несколькими дисплеями, не используя реальное оборудование.

Добавить поддержку нескольких дисплеев в 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
    

Актуальную информацию о функциях эмулятора и его релизах можно найти в следующих источниках: