В этой статье описывается, как интегрировать несвязанные приложения. Приложения, включающие Dialer, Media, Car UI Library и SMS, считаются отдельными приложениями. Эти приложения отделены от платформы Android и включают в себя логику для получения данных из приложения Companion на телефоне и UX на стороне автомобиля, включая настройки для ассоциации и регистрации функций.
APK-файлы, созданные из разрозненного кода, работают с несколькими версиями платформы.
Проверить код
Чтобы проверить несвязанный код:
-  Запустите следующее:repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4 
- Дополнительные сведения о работе с исходным кодом AOSP см. в разделе Инициализация клиента репозитория .
Создайте код
Android-студия
Чтобы собрать код в Android Studio:
-  В Android Studio импортируйте этот файл сборки:packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle 
-  Обязательно установите Gradle JDK в Android Studio как минимум версии 11:  Рисунок 1. Версия 11 
- Создайте нужный APK (или APK).
Командная строка
Чтобы построить код из командной строки:
-  Задайте местоположение 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.
 
-  Создайте 
- Откройте командную строку или окно оболочки.
-  Перейдите в packages/apps/Car/libs/unbundled-apps-gradle-project
-  Выполните следующую команду: ./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 Маркет | 
