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

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

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:


    Рисунок 1. Версия 11.
  3. Создайте нужные 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/aaos-apps-gradle-project .
  4. Выполните следующую команду:
    ./gradlew assemble

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

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

Приложение Минимальный уровень API
Календарь 29
Библиотека пользовательского интерфейса автомобиля 29
Сопутствующее устройство 29
номеронабиратель 31
СМИ 30
SMS 30
AOSP-хост 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"],
}

Android 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,
    }

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

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