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

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

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

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

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

Дополнительную информацию о работе с исходным кодом AOSP см. в разделе Инициализация клиента репозитория .

Создайте код

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

Android-студия

Чтобы собрать код в 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
Мессенджер (СМС) 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
    }

Подробности разделенного приложения

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