Виртуальное устройство Android как платформа разработки

Для использования виртуальных устройств Android (AVD) эмулятор Android поддерживает графический интерфейс пользователя (GUI) и интерфейс командной строки (CLI). Вы можете выбрать оптимальный рабочий процесс для вашей среды.

Постройте автомобиль AOSP AVD

Процесс создания AVD для автомобиля AOSP аналогичен созданию образов AVD для телефона (например, aosp_car_x86_64):

  1. Чтобы настроить среду разработки и определить ветку, см. раздел «Инструменты управления исходным кодом» . Затем ознакомьтесь с разделом «Загрузка исходного кода ».
    ANDROID_BRANCH="android12L-release"
    REPO_URL="https://android.googlesource.com/platform/manifest"
    mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8
  2. Создайте образ AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Запустите образ AVD (при необходимости добавьте дополнительные параметры запуска командной строки ):
    emulator &

    Например:

    Рисунок 1. Экран виртуального эмулятора Android

    Примечания к этому процессу:

    • Поскольку процесс сборки аналогичен процессу сборки Android для физического устройства, выделите некоторое время на загрузку исходного кода, а затем на его сборку.
    • Для работы с другими ветвями установите $ANDROID_BRANCH на другую ветвь/тег .
    • Образы AVD, такие как system.img , создаются в $ANDROID_PRODUCT_OUT . Подробнее о ключевых образах см. в разделе Системный каталог AVD .
    • Ознакомьтесь с файлом README , чтобы узнать, как готовые двоичные файлы эмулятора в вашем дереве Android используются для запуска эмулятора.

Создать автомобильный AVD

Добавление нового AVD автомобиля практически идентично добавлению нового устройства . Например, 1660554 создаёт новый AVD avd_car .

Чтобы создать автомобильный AVD:

  1. Создайте компанию и папку устройства по мере необходимости. В этом примере используется $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Создайте make-файл продукта avd_car.mk , который определяет, как собрать AVD.
  3. Создайте папку устройства avd_car_device , в которой будут находиться BoardConfig.mk и source.properties .
  4. Добавьте новый makefile и новый выбор lunch в AndroidProducts.mk .
  5. Чтобы собрать и запустить новый AVD avd_car :
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Теперь вы готовы создать прототип большинства функций HMI и приложений на вашем новом AVD.

Упакуйте zip-файл образа AVD

Вы можете упаковать свой образ AVD и поделиться им с другими или использовать его на другом компьютере. Используйте emu_img_zip.mk для создания zip-файла образа AVD:

  1. После сборки AVD сделайте emu_img_zip целью:
    m emu_img_zip
  2. ZIP-файл образа AVD с префиксом sdk-repo-linux-system-images создается в папке с именем $ANDROID_PRODUCT_OUT .

Сборка ядра AVD

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

Чтобы поэкспериментировать с изменениями ядра:

  1. Выполните следующую последовательность инструкций:
    mkdir goldfish-kernel-54
    cd goldfish-kernel-54
    repo init -u https://android.googlesource.com/kernel/manifest -b
    common-android11-5.4
    repo sync
    BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh
    BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64
    build/build.sh
    ls -l ./out/android11-5.4/dist/
  2. Замените двоичный файл ядра в кодовой базе в соответствии с make-файлом AVD. Например, device/generic/goldfish/board/emu64x/details.mk включает device/generic/goldfish/board/kernel/x86_64.mk .

Код ядра и конфигурация расположены следующим образом:

Элемент Ценить
Ветвь common-android11-5.4 (используется в Android 11)
Манифест kernel/manifest/common-android11-5.4
общие-модули/виртуальное-устройство kernel/common-modules/virtual-device/android11-5.4
Ядро kernel/common/android11-5.4

Создать новый профиль устройства

Чтобы предоставить пользователям возможность создавать определённые виртуальные устройства (AVD) в Android Studio AVD Manager, см . раздел Создание и управление виртуальными устройствами . Производители устройств могут определять собственные аппаратные характеристики, такие как размер экрана и разрешение (DPI), с помощью файла devices.xml , включённого в образ AVD.

  • Например, см. профили автомобильных устройств в automotive.xml .
  • Для разработки или создания прототипа HMI в файл для одного и того же образа AVD можно добавить несколько устройств.
  • Добавьте файл в zip-архив образа OEM AVD в папке [ABI] . Например, как x86_64 .
  • Производители устройств также могут создать скин для эмулятора . Например, чтобы определить дополнительные аппаратные кнопки для более качественного пользовательского опыта. Это полезно не только для рабочих процессов разработчиков, но и для других задач, таких как исследование и анализ пользовательского опыта.

Создайте XML-файл образа AVD

Производители устройств могут создать XML-файл образа AVD для загрузки в Android Studio.

  • Например, см. XML-файл образа AAOS AVD, sys-img2-1.xml .
  • Производители устройств могут определить собственное лицензионное соглашение OEM AVD для своих целевых пользователей (используя систему чести) с лицензией на эмулятор Android. При включении такой лицензии Android Studio получает согласие пользователя.

Чтобы создать изображение:

  1. Подготовьте zip-файл образа AVD.
  2. Распакуйте ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Добавьте файл devices.xml в папку x86_64 и заархивируйте его в zip-архив. Например, как oem_avd_img_x86_64.zip .
  4. Обновить oem-sys-img2-1.xml .
  5. Обновите имя zip-файла, размер и shasum (примеры XML-файлов приведены в tools ).

Например, чтобы разместить AVD в Google Cloud Storage , см. раздел Создание контейнеров хранения .

Чтобы загрузить и сделать AVD общедоступным, см. раздел «Публикация данных» :

BUCKET_NAME="aaos-avd"
gsutil mb gs://$BUCKET_NAME
gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME
gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME
gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME

Формат URL-адреса для дополнения SDK образа AVD выглядит следующим образом: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml . Например, если BUCKET_NAME — aaos-avd, URL-адрес будет следующим: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml .

Поделитесь образом AVD с пользователями Android Studio

Чтобы ваши пользователи могли загружать образы AVD и использовать ваш AVD от Android Studio, вы можете предоставить XML-файл надстройки SDK. Подробнее см. в разделе Обновление IDE и инструментов SDK .

Чтобы загрузить AVD из сети:

  1. Разместите zip-файл изображения и XML-файлы на сервере.
  2. Предоставьте URL-адрес вашим целевым пользователям.
  3. ( Необязательно ) Ограничьте доступ по имени пользователя и паролю.

В качестве альтернативы, чтобы ускорить разработку, загрузите AVD в локальный каталог:

  1. Сохраните XML-файлы и все артефакты, указанные в XML-файле, в папке (например, все zip-файлы образов AVD) с именем ADDON_DIR .
  2. Укажите URL-адрес в виде file://$ADDON_DIR/oem-sys-img2-1.xml .