Приложения, включающие 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:
В 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 |
Мессенджер (СМС) | 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 |