整合指南

本頁概述如何整合未封裝應用程式。包含撥號、媒體、車輛 UI 的應用程式 系統會將程式庫和簡訊視為未組合應用程式。這些應用程式與 Android 平台分離 並包含接收手機隨附應用程式資料和車輛端使用者體驗的邏輯, 包括關聯和功能註冊設定。

透過未封裝程式碼建立的 APK 適用於多個平台版本。

查看程式碼

如何查看未組合代碼:

  1. 執行以下指令:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. 如要進一步瞭解如何使用 Android 開放原始碼計畫原始碼,請參閱 初始化存放區用戶端

建構程式碼

Android Studio

如要在 Android Studio 中建構程式碼:

  1. 在 Android Studio 中,匯入這個建構檔案:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. 務必將 Android Studio 中的 Gradle JDK 設為 11 以上版本:


    圖 1.版本 11.
  3. 建構所需 APK。

指令列

如何利用指令列建構程式碼:

  1. 您可透過下列其中一種方式設定 Android SDK 位置:
    • 建立packages/apps/Car/libs/aaos-apps-gradle-project/local.properties和 然後設定其包含的 sdk.dir 屬性。Android Studio 可以執行這項操作 會自動套用 Google Cloud 專案舉例來說,請使用 sdk.dir=/Users/MY-USERNAME/Library/Android/sdk

    • 使用指向ANDROID_SDK_ROOT Android SDK。
  2. 開啟命令提示字元或殼層視窗。
  3. 前往packages/apps/Car/libs/aaos-apps-gradle-project
  4. 執行下列指令:
    ./gradlew assemble

最低必要 API 級別

每個未組合的應用程式可在 Android 平台上運作 (版本等於或大於其版本) minSdkVersion。下表列出各個應用程式支援的最低 API 版本:

應用程式 最低 API 級別
日曆 29
Car UI 程式庫 29
隨附裝置 29
Dialer 31
媒體 30
簡訊 30
Android 開放原始碼計畫主機 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"],
}

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
隨附裝置 X
Dialer X
Android 開放原始碼計畫主機 X
媒體 X
簡訊 X
更新發布 OTA OTA 或 Google Play OTA 或 Google Play