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

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

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

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

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

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

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

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

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

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

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

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

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

    mkdir aosp-main; cd aosp-main
    source ./build/envsetup.sh
    lunch sdk_phone_x86
    make -j32
    

    Если вы предпочитаете собрать 64-битный AVD x86, запустите lunch для 64-битной цели:

    lunch sdk_phone_x86_64
    
  3. Запустите образ системы 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-main/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:

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

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

  2. Создайте AVD , загрузив и выбрав собственный образ системы AVD.

Добавление поддержки нескольких дисплеев

В Android 10 улучшена функция Multi-Display (MD), чтобы лучше поддерживать больше вариантов использования, таких как автоматический режим и режим рабочего стола. 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
    
  • Включите флаг функции нескольких дисплеев, добавив эту строку в файл device/generic/goldfish/data/etc/advancedFeatures.ini :

    MultiDisplay = on
    

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