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

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

Соберите AOSP Car AVD

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

  1. Чтобы настроить среду разработки и определить ветку, см. Инструменты управления версиями . Затем просмотрите Загрузка исходного кода :
    ANDROID_BRANCH="android11-qpr2-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 aosp_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. Например, 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 устройств в файле Automotive.xml.
  • Для разработки или прототипирования HMI в файл одного и того же образа AVD можно добавить несколько устройств.
  • Включите файл в ZIP-файл образа OEM AVD в папку [ABI] . Например, как x86_64 .
  • Производители устройств также могут создать скин эмулятора . Например, чтобы определить дополнительные аппаратные кнопки для более точного UX. Это полезно не только для рабочих процессов разработчиков, но и для других задач, таких как исследование и обзор UX.

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

Производители устройств могут создать XML-файл AVD Image для 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 надстройки 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 .