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

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

Создайте AVD для автомобиля на основе AOSP.

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

  1. Чтобы настроить среду разработки и определить ветку, см. раздел «Инструменты контроля версий» , а затем прочтите раздел «Загрузка исходного кода Android» :
    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. Создайте файл makefile для продукта, 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 &
Теперь вы готовы к созданию прототипов большинства функций интерфейса «человек-машина» и приложений на вашем новом виртуальном устройстве 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. Замените исполняемый файл ядра в кодовой базе в соответствии с makefile 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
common-modules/virtual-device kernel/common-modules/virtual-device/android11-5.4
Ядро kernel/common/android11-5.4

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

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

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

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

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

  • Например, см. XML-файл образа AVD AAOS, 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-файла (примеры 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-адреса дополнения AVD Image SDK выглядит следующим образом: 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 .