Интегрируйте несвязанные приложения

Приложения, включающие «Телефон», «Медиа», «Библиотека автомобильного интерфейса» и «SMS», считаются отдельными приложениями (то есть, они отделены от платформы Android). Такие приложения включают логику получения данных от сопутствующего приложения телефона и пользовательский интерфейс на стороне автомобиля, включая настройки для привязки и регистрации функций. APK-файлы, созданные из отделенного кода, работают с несколькими версиями платформы.

Посмотрите код

Чтобы просмотреть неотредактированный код, выполните следующую команду:

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

Чтобы узнать больше о работе с исходным кодом AOSP, см. раздел «Инициализация клиента репозитория» .

Скомпилируйте код

Вы можете скомпилировать код с помощью Android Studio или из командной строки.

Android Studio

Для компиляции кода в Android Studio:

  1. В Android Studio импортируйте следующий файл сборки:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Убедитесь, что версия Gradle JDK установлена ​​на 11 или выше:

    Версия 11

    Рисунок 1. Установите версию Gradle JDK на 11 в Android Studio.

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

Для компиляции кода из командной строки:

  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
CompanionDevice 29
Дозвонщик 31
СМИ 30
Мессенджер (SMS) 30
Хост AOSP 29

Интегрировать предварительно собранную систему в образ системы.

Если версия платформы Android поддерживается приложением (см. таблицу в предыдущем разделе), вы можете добавить APK-файл в образ системы. Однако шаги интеграции различаются в зависимости от версии платформы Android.

Android 13 и выше

В Android 13 и более поздних версиях исходный код для приложений, не входящих в состав пакета, отсутствует, но вы можете включить предварительно собранный APK-файл в сборку платформы для таких случаев, как тестирование на соответствие требованиям CDD или предоставление доступа к привилегированным приложениям. Чтобы указать APK-файл, используйте правило 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 12 и более ранних версиях исходный код для приложений, не входящих в состав пакета, уже включен, но вы все равно можете указать предварительно собранный APK-файл для включения. Поскольку 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
    }

Подробная информация о приложениях, не входящих в комплект поставки.

Приложение Привилегированный разрозненный
система подписана
Привилегированный разрозненный
несистемная подпись
Разобран
не обязательно размещать на системном разделе
Обновление распространения ОТА OTA или Google Play OTA или Google Play
Хост AOSP X
Календарь X
CompanionDeviceSupport X
Центр управления (многоэкранный) X
Дозвонщик X
СМИ X
Мессенджер (SMS) X
Блокировка конфиденциальных приложений X