Приложения, включающие «Телефон», «Медиа», «Библиотека автомобильного интерфейса» и «SMS», считаются отдельными приложениями (то есть, они отделены от платформы Android). Такие приложения включают логику получения данных от сопутствующего приложения телефона и пользовательский интерфейс на стороне автомобиля, включая настройки для привязки и регистрации функций. APK-файлы, созданные из отделенного кода, работают с несколькими версиями платформы.
Посмотрите код
Чтобы просмотреть неотредактированный код, выполните следующую команду:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
Чтобы узнать больше о работе с исходным кодом AOSP, см. раздел «Инициализация клиента репозитория» .
Скомпилируйте код
Вы можете скомпилировать код с помощью Android Studio или из командной строки.
Android Studio
Для компиляции кода в Android Studio:
В Android Studio импортируйте следующий файл сборки:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleУбедитесь, что версия Gradle JDK установлена на 11 или выше:

Рисунок 1. Установите версию Gradle JDK на 11 в Android Studio.
Командная строка
Для компиляции кода из командной строки:
Укажите расположение 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/aaos-apps-gradle-project.Выполните следующую команду:
./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 |