集成指南

本文概述瞭如何集成未捆綁的應用程序。包括 Dialer、Media、Car UI Library 和 SMS 的應用程序被視為非捆綁應用程序。這些應用程序與 Android 平台分離,包括從手機伴侶應用程序和車端 UX 接收數據的邏輯,包括關聯設置和功能註冊。

從非捆綁代碼構建的 APK 可與平台的多個版本一起使用。

查看代碼

要查看未捆綁的代碼:

  1. 運行以下命令:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. 要了解有關使用 AOSP 源代碼的更多信息,請參閱初始化 Repo 客戶端

構建代碼

安卓工作室

在 Android Studio 中構建代碼:

  1. 在 Android Studio 中,導入這個構建文件:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. 請務必將 Android Studio 中的 Gradle JDK 設置為至少版本 11:

    版本 11
    圖 1.版本 11
  3. 構建所需的 APK(或 APK)。

命令行

從命令行構建代碼:

  1. 通過以下兩種方式之一設置 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環境變量。
  2. 打開命令提示符或 shell 窗口。
  3. 轉到packages/apps/Car/libs/unbundled-apps-gradle-project
  4. 運行以下命令:
    ./gradlew assemble

最低要求的 API 級別

每個未捆綁的應用程序都可以在版本等於或高於其minSdkVersion的 Android 平台上運行。下表列出了每個應用程序支持的最低 API 版本:

應用程序最低 API 級別
日曆29
車載 UI 庫29
配套設備29
撥號器31
媒體30
短信30
谷歌汽車應用主機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 優先於預構建的源代碼。因此,有必要在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
配套設備X
撥號器X
谷歌汽車應用主機X
媒體X
短信X
更新分發OTA OTA 或 Play 商店OTA 或 Play 商店