Руководство по интеграции

В этой статье описывается, как интегрировать несвязанные приложения. Приложения, включающие Dialer, Media, Car UI Library и SMS, считаются отдельными приложениями. Эти приложения отделены от платформы Android и включают в себя логику для получения данных из приложения Companion на телефоне и UX на стороне автомобиля, включая настройки для ассоциации и регистрации функций.

APK-файлы, созданные из разрозненного кода, работают с несколькими версиями платформы.

Проверить код

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

  1. Запустите следующее:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. Дополнительные сведения о работе с исходным кодом AOSP см. в разделе Инициализация клиента репозитория .

Создайте код

Android-студия

Чтобы собрать код в Android Studio:

  1. В Android Studio импортируйте этот файл сборки:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. Обязательно установите Gradle JDK в Android Studio как минимум версии 11:

    Версия 11
    Рисунок 1. Версия 11
  3. Создайте нужный APK (или APK).

Командная строка

Чтобы построить код из командной строки:

  1. Задайте местоположение Android SDK одним из следующих двух способов:
    • Создайте packages/apps/Car/libs/aaos-apps-gradle-project/local.properties а затем установите содержащееся в нем свойство sdk.dir . Android Studio может делать это автоматически при открытии проекта. Например, используйте sdk.dir=/Users/MY-USERNAME/Library/Android/sdk

      или же,
    • Задайте для переменной среды ANDROID_SDK_ROOT путь к Android SDK.
  2. Откройте командную строку или окно оболочки.
  3. Перейдите в packages/apps/Car/libs/unbundled-apps-gradle-project
  4. Выполните следующую команду:
    ./gradlew assemble

Минимальные требуемые уровни API

Каждое отдельное приложение работает на платформах Android с версией, равной или превышающей его minSdkVersion . В следующей таблице перечислены минимальные версии API, поддерживаемые каждым приложением:

Приложение Минимальный уровень API
Календарь 29
Библиотека пользовательского интерфейса автомобиля 29
CompanionDevice 29
номеронабиратель 31
СМИ 30
смс 30
Хост автомобильных приложений Google 29

Интеграция предварительной сборки в образ системы

Изображения Android 13 и более поздних версий

Несвязанный код удален с платформы Android 13. Таким образом, добавление готовых APK-файлов в сборки платформы может потребоваться для:

  • Тестирование на соответствие CDD
  • Предоставление привилегированных приложений

Это достигается с помощью правила android_app_import Soong:

android_app_import {
    name: "CarMediaApp",
    apk: "CarMediaApp.apk",
    privileged: true,
    certificate: "platform", // Media must be signed by the platform
    required: ["allowed_privapp_com.android.car.media"],
}

Андроид 12 и ниже

Если версия платформы Android поддерживается приложением (см. таблицу выше), APK можно добавить в этот образ системы. Однако у большинства отдельных приложений есть предыдущие версии исходного кода, включенные в платформы старше Android 13. По умолчанию Soong отдает приоритет исходному коду над предварительно созданным. Поэтому необходимо установить для флага prefer значение true внутри правила android_app_import :

android_app_import {
    name: "CarDialerApp",
    apk: "CarDialerApp.apk",
    privileged: true,
    presigned: true, // Dialer can have its own signature
    required: ["allowed_privapp_com.android.car.dialer"],
    overrides: ["Dialer"],
    prefer: true, // The prebuilt replaces a source target with the same name,
    }

Приложения, перечисленные в соответствии с разрозненным типом

Приложение Привилегированный разделенный Разделенный
(Не обязательно на системном разделе)
Система подписана Не подписанный системой
Календарь Икс
CompanionDevice Икс
номеронабиратель Икс
Хост автомобильных приложений Google Икс
СМИ Икс
смс Икс
Раздача обновлений ОТА OTA или Play Маркет OTA или Play Маркет