汽車用戶界面 (UI) 工具包提供了一個 UI 開發框架,您可以使用它來確保汽車中的應用程序(Google 應用程序以及系統和供應商應用程序)能夠實現:
信息娛樂 UI/UX 的一致性。自我一致性是用戶根據以前與同一系統交互的經驗來預測如何與信息娛樂系統交互的能力。
定制。原始設備製造商可以修改系統的外觀,以最好地將功能與車輛內部和硬件集成。
要了解有關 Car UI 庫集成的更多信息,請參閱以下文章:
- 將 Car UI 庫集成到應用程序中
- 自定義應用程序
- 添加自定義字體
- 自定義汽車 UI 首選項
- CarUiListItem
- 自定義 CarUiRecyclerView
- 運行時資源覆蓋故障排除
- 發行說明
- 附錄 A,使用 RRO
- 附錄 B,定制指南
關於汽車 UI 庫
Car UI 庫是一個靜態鏈接庫,它提供了一組可用於實現的組件和資源:
- 系統和 OEM 應用程序 (Gerrit)
- Android 汽車 (AAOS) 應用
該庫用作:
自定義 API:
- 定義可以自定義的資源,包括顏色、尺寸和可繪製對象。
- 將資源視為具有向後兼容保證的 API。
- Android 9 和 Android 10 中提供的短期解決方案與當前正在開發的長期解決方案之間的兼容性層。
資源疊加
Android 目前提供了幾種應用自定義的方法,而無需對受影響的子系統和應用程序進行額外的工作:
構建時覆蓋。此自定義在 Android 系統映像構建時應用。在構建期間,系統中的所有應用程序都從其
res
文件夾和目標 makefile 中定義的overlay
文件夾接收資源。動態運行時覆蓋(動態 RRO)。這些特殊的 APK僅包含資源和一個清單文件,以指示它們將影響哪個目標 APK 。動態 RRO 獨立於系統映像進行編譯和部署,並且可以打開和關閉。當系統為特定應用程序執行資源查找時,系統還會檢查任何針對它的 RRO,以及 RRO 是否包含同名的資源。
靜態運行時覆蓋(靜態 RRO)。與結構上的動態 RRO 類似,它們始終處於打開狀態,這意味著如果不執行完整的系統映像升級,就無法卸載或更新它們。靜態 RRO 充當構建時和動態運行時覆蓋的中間體。
除了 UI 組件,Car UI 庫還提供了一種機制,使用一組靜態 RRO直接將資源(靜態鏈接到每個應用程序)與 OEM 資源重疊。 OEM 必須提供包含其資源覆蓋和目標應用程序列表的文件夾。在構建期間,Car UI 庫基礎架構將使用此信息為每個目標應用程序生成一個靜態 RRO。
在上圖中:
綠色。 OEM 提供的定制,構建時和運行時覆蓋資源的混合。
黃色。 Car UI 庫提供的支持,包括可疊加資源、組件(Java 代碼)和生成必要 RRO 的構建支持。
藍色的。可定制的目標包括使用 Car UI 庫來定制UI 元素的框架、系統應用程序、供應商應用程序和 GAS 應用程序。