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

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

Запустите AOSP Car AVD с использованием готовых

Для быстрого запуска и тестирования с использованием предварительно собранного AOSP Car AVD используйте скрипт с открытым исходным кодом для загрузки и запуска сборки эмулятора с ci.android.com . Скрипт был протестирован на macOS и Linux.

Для использования этого скрипта вам понадобится Curl .

Чтобы запустить скрипт:

  1. Скопируйте содержимое скрипта launch_emu.sh в локальный файл, предполагая, что вы используете launch_emu.sh в качестве имени локального файла.
  2. Сделайте свой локальный скрипт исполняемым. Например, запустите chmod +x ./launch_emu.sh .
  3. Проверьте доступные параметры, запустив скрипт с помощью ./launch_emu.sh -h .
  4. На ci.android.com перейдите в филиал aosp-main-throttled и выберите недавнюю сборку, в которой sdk_car_x86_64 зеленый. Например, 11370359. Если вы не видите информацию об сборке, войдите из своей учетной записи Google и попробуйте еще раз.
  5. Загрузите и установите соответствующие эмулятору двоичные файлы с идентификатором сборки. Например, ./launch_emu.sh -i -a 11370359 .
  6. После этого вы можете использовать ./launch_emu.sh для запуска загруженного и установленного эмулятора (не используйте параметры -i или -a ).
  7. Чтобы загрузить и установить другой идентификатор сборки, запустите ./launch_emu.sh -c чтобы очистить рабочее пространство, а затем повторите шаги 4 и 5, описанные выше.

Чтобы указать параметры запуска командной строки эмулятора Android при запуске эмулятора, используйте параметр -v . Например:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

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

Процесс создания 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. Создайте файл сборки продукта 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. Заменить двоичный файл ядра в кодовой базе в соответствии с makefile AVD. Например, x86_64-vendor.mk включает x86_64-kernel.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 .
  • Производители устройств также могут создать кожу эмулятора . Например, чтобы определить дополнительные аппаратные кнопки для более высокой верности UX. Это полезно не только для рабочих процессов разработчиков, но и для других задач, таких как UX Research и Review.

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

AVD Image SDK Add-On URL-формат: 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 by 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 .