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

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

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

Эмулятор Android позволяет запускать эмуляции устройств 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-master; cd aosp-master
    repo init -u
    repo sync -j24
    

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

  2. Создайте образ системы 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
    
  3. Запустите образ системы AVD в эмуляторе Android:

    emulator
    

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

Эмулятор Android с AVD

Рис. 2. Эмулятор Android с AVD

Совместное использование образов системы AVD для использования другими пользователями с Android Studio

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

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

  3. Отредактируйте repo-sys-img.xml соответствующим образом:

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

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

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

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

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

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