本页概述了如何集成未捆绑应用。拨号器、媒体、车载设备界面库和短信等应用被视为未捆绑应用。这些应用未与 Android 平台捆绑,并且包含用于从汽车端手机配套应用和用户体验接收数据的逻辑,其中包括关联和功能注册设置。
通过未捆绑代码构建的 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 中,导入此 build 文件:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- 请务必在 Android Studio 中将 Gradle JDK 设为不低于版本 11 的版本:
图 1. 版本 11。 - 构建所需的 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 的路径设置
ANDROID_SDK_ROOT
环境变量。
- 创建
- 打开命令提示符或 shell 窗口。
- 前往“
packages/apps/Car/libs/aaos-apps-gradle-project
”。 - 运行以下命令:
./gradlew assemble
所需的最低 API 级别
每个未捆绑应用都可以在版本不低于其 minSdkVersion
的 Android 平台上运行。下表列出了每个应用支持的最低 API 版本:
应用 | 最低 API 级别 |
---|---|
日历 | 29 |
车载设备界面库 | 29 |
CompanionDevice | 29 |
Dialer | 31 |
媒体 | 30 |
短信 | 30 |
AOSP 主机 | 29 |
将预构建 build 集成到系统映像中
Android 13 及更高版本的映像
未捆绑代码已从 Android 13 平台中移除。 因此,在执行下列操作时,可能需要将预构建的 APK 添加到平台 build 中:
- 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"], }
Android 12 及更低版本
只要应用支持 Android 平台版本(见上表),就可以将 APK 添加到相应系统映像中。不过,大多数未捆绑应用都具有版本低于 Android 13 的平台中所含的之前版本的源代码。默认情况下,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 | ||
CompanionDevice | X | ||
Dialer | X | ||
AOSP 主机 | X | ||
媒体 | X | ||
短信 | X | ||
更新分发 | OTA | OTA 或 Google Play | OTA 或 Google Play |