車輛使用者介面 (UI) 工具包提供 UI 開發架構,可確保車輛中的應用程式 (Google 應用程式和系統和供應商應用程式) 可達到以下目標:
-
資訊娛樂系統 UI/UX 的一致性。自我一致性是指使用者能根據先前與同一個系統互動的經驗,預測如何與資訊娛樂系統互動。
-
自訂:原始設備製造商 (OEM) 可以修改系統的外觀和風格,以便將功能與車輛內裝和硬體最佳整合。
如要進一步瞭解 Car UI Library 整合,請參閱以下頁面:
- 將 Car UI 程式庫整合至應用程式
- 自訂應用程式
- 新增自訂字型
- 自訂 Car UI 偏好設定
- CarUiListItem
- 自訂 CarUiRecyclerView
- 排解執行階段資源重疊問題
- 版本資訊
- 附錄 A:與 RRO 合作
- 附錄 B:自訂規範
關於 Car UI 程式庫
Car UI 程式庫是靜態連結的程式庫,提供一組可用來實作的元件和資源:
- 系統和原始設備製造商 (OEM) 應用程式 (Gerrit)
- Android Automotive (AAOS) 應用程式
這個程式庫可做為:
-
自訂化 API 可用於:
- 定義可自訂的資源,包括顏色、尺寸和可繪項目。
- 將資源視為具備回溯相容性保證的 API。
- 在 Android 9 和 Android 10 提供的短期解決方案,與目前正在開發的長期解決方案之間的相容性層。
資源重疊
Android 目前提供多種方式,可在未對受影響的子系統和應用程式進行額外作業的情況下套用自訂設定:
-
建構時間疊加層。這項自訂設定會在 Android 系統映像檔建構期間套用。在建構期間,系統中的所有應用程式都會從其
res
資料夾和目標 makefile 中定義的overlay
資料夾接收資源。 -
動態執行階段覆蓋層 (動態 RRO)。這些特殊 APK 只包含資源和資訊清單檔案,用來指出會影響哪些目標 APK。動態 RRO 會獨立於系統映像檔編譯及部署,且可切換開啟/關閉。當系統為特定應用程式執行資源查詢時,系統也會檢查是否有任何 RRO 鎖定該應用程式,以及 RRO 是否包含名稱相同的資源。
-
靜態執行階段覆蓋層 (靜態 RRO)。與結構中的動態 RRO 類似,這些 RRO 一律會處於「開啟」狀態,也就是說,除非執行完整的系統映像檔升級作業,否則無法解除安裝或更新。靜態 RRO 可做為建構時間和動態執行階段重疊作業的中介。
除了 UI 元件之外,Car UI 程式庫也提供一種機制,可使用一組靜態 RRO,直接將資源 (以靜態方式連結至每個應用程式) 重疊至 OEM 資源。OEM 必須提供資料夾,內含資源覆蓋和指定應用程式的清單。在建構期間,Car UI 程式庫基礎架構會使用這項資訊,為每個指定應用程式產生一個靜態 RRO。

圖 1. Car UI 程式庫元件
在上圖中:
-
綠色:原始設備製造商 (OEM) 提供的自訂主題,包含建構時間和執行階段重疊資源。
-
黃色。Car UI 程式庫提供的支援,包括可重疊 的資源、元件 (Java 程式碼) 和建構支援,以產生必要的 RRO。
-
藍色。可自訂的目標,包括使用 Car UI 程式庫來自訂 UI 元素的架構、系統應用程式、供應商應用程式和 GAS 應用程式。