包含拨号器、媒体、Car UI 库和短信的应用被视为非捆绑应用(即,它们与 Android 平台是非捆绑的)。此类应用包含用于接收来自手机配套应用的数据的逻辑,以及车载端的 UX,包括关联和功能注册设置。从非捆绑代码构建的 APK 可与多个版本的平台配合使用。
查看代码
要查看非捆绑代码,请运行以下命令
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
要详细了解如何使用 AOSP 源代码,请参阅初始化 Repo 客户端。
构建代码
您可以使用 Android Studio 或从命令行构建代码。
Android Studio
要在 Android Studio 中构建代码
在 Android Studio 中,导入以下构建文件
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
确保 Gradle JDK 设置为版本 11 或更高版本
图 1. 在 Android Studio 中将 Gradle JDK 设置为版本 11。
命令行
要从命令行构建代码
使用以下方法之一设置 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 的路径设置
ANDROID_SDK_ROOT
环境变量。
打开命令提示符或 Shell 窗口。
转到
packages/apps/Car/libs/aaos-apps-gradle-project
。运行以下命令
./gradlew assemble
最低要求的 API 级别
每个非捆绑应用都可在 Android 平台上运行,其版本等于或高于其 minSdkVersion
。下表列出了每个应用支持的最低 API 版本
应用 | 最低 API 级别 |
---|---|
日历 | 29 |
Car UI 库 | 29 |
CompanionDevice | 29 |
拨号器 | 31 |
媒体 | 30 |
Messenger (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 默认优先考虑源代码而不是预构建版本,因此有必要在 android_app_import
规则内将 prefer
标志设置为 true
,如下例所示
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
}
非捆绑应用详情
应用/分发 | 特权非捆绑 系统签名 |
特权非捆绑 非系统签名 |
非捆绑 无需位于系统分区 |
---|---|---|---|
应用 - 日历 | X | ||
应用 - CompanionDeviceSupport | X | ||
应用 - 拨号器 | X | ||
应用 - AOSP 主机 | X | ||
应用 - 媒体 | X | ||
应用 - Messenger (SMS) | X | ||
更新分发 | OTA | OTA 或 Google Play | OTA 或 Google Play |