Android Automotive 是由 Android 提供的車內資訊娛樂平台解決方案 開放原始碼計畫 (AOSP)。本主題中的文章介紹了重要概念和元件 以及建構有效人體所需的核心應用程式。 適用於原始設備製造商 (OEM)、第三方開發人員和使用者的機器介面 (HMI) 系統。
- Android 開放原始碼計畫主機整合指南。 App Host 允許第三方車用應用程式,在其上顯示 OEM 樣式的使用者介面 (UI) 元件
- 車輛設定結構: 車輛設定採用以車輛為中心的視覺使用者介面,呈現基本的駕駛人分心等級 以及其他原始設備製造商 (OEM) 的自訂進入點
- Car UI 程式庫整合指南。 Car UI 程式庫提供 UI 開發架構,可讓 來實現一致性和自訂作業
- 自訂狀態列系統圖示。 狀態列是 Android 系統 UI 的元件,用於持續顯示 向使用者提供重要資訊瞭解如何自訂狀態列系統圖示。
- 抬頭通知。 瞭解如何自訂抬頭通知。
- 撥號: 使用這個 Android 系統應用程式,為藍牙導入分心因素最佳化 (DO) 體驗 通話、聯絡人瀏覽和通話管理。
- 媒體。只須進行幾項設定 和某項服務,開發人員可以擴充現有的媒體應用程式。應用程式必須遵守 Automotive Media 範本,開發人員可以自訂範本顏色、字型、圖示等內容 打造品牌體驗
- 通知。 瞭解如何變更通知的外觀和設定。
術語
這些字詞用於 HMI 及相關文章:
字詞 | 定義 |
---|---|
核心應用程式 | 與系統功能相關的重要應用程式集,包括「設定」、「電台」 空調、媒體、撥號和鍵盤。 |
相容性定義說明文件 (CDD) | 列舉裝置要符合哪些規格才能與最新版應用程式相容 Android 版本 |
Compatibility Test Suite (CTS) | 免費的商業等級測試套件,下載連結: 下載 Compatibility Test Suite。 |
自訂 | 練習修改 Android 開放原始碼計畫實作方式,以符合原始設備製造商 (OEM) 的要求。 一般而言,這需要使用資源疊加層來套用外觀變更 確保遵守 CDD、CTS 和所有相關使用者體驗指南。 |
強檔應用程式 | 一系列重要應用程式,對 Android 各層面至關重要,包括功能、 強化能力、第三方開發人員生態系統和使用者。強檔應用程式包括 通知、設定、媒體和通訊中心/撥號。對應的 Android 開放原始碼計畫 實作的品質應該是生產品質的一環。 |
資源疊加層 | 如要影響使用者介面的呈現,請使用這項機制取代顏色。 變更尺寸、啟用繪圖,以及套用版面配置資源 編譯時間 (最常見) 或執行階段 (執行階段資源疊加層 (RRO))。 |
系統 UI | 屬於系統的應用程式外使用者介面,例如 導覽列、狀態列、螢幕鎖定畫面和音量對話方塊。 |
主題 | 一組顏色和樣式,用來決定元件外觀和風格 以及沿用主題的應用程式 |
使用者體驗 (UX) | 使用者介面 (UI) 的欄位以及其可用性。 |
自訂
針對系統 UI 和其他核心系統應用程式的 Android 開放原始碼計畫實作項目 對於開始 HMI 開發流程的幫助修改 Android 開放原始碼計畫的練習 (主要透過使用資源重疊),以符合 OEM 品牌宣傳、業務 和法律要求稱為「自訂」。
整體系統的設計、具靈活性,但設計上仍具靈活性 自訂不同度數:
-
系統 UI。原始設備製造商 (OEM) 可以在 受限於 CDD 和 CTS 的邊界,以及任何其他適用的使用者體驗指南。
-
非主要系統應用程式 (也稱為「參考資料」):原始設備製造商 (OEM) 可以自訂 或取代 Android 開放原始碼計畫實作。
-
強檔應用程式。每個應用程式都附有一套詳細的自訂規範。 強烈建議原始設備製造商 (OEM) 使用 Android 開放原始碼計畫,然後在 界定範圍
密度設定
如要確保 UI 元素可在實體螢幕設定內正確轉譯,密度: 屬性必須設為值區 (多媒體指標)。 該值最接近實體密度,例如下列建構檔案中的項目:
PRODUCT_PROPERTY_OVERRIDES := \ ro.sf.lcd_density=160
使用者體驗限制引擎
CarUxRestrictionsManager
可讓應用程式監聽變更
才能適當調整使用者體驗原始設備製造商 (OEM) 可將
位於 packages/services/Car/service/res/xml/car_ux_restrictions_map.xml
的設定檔
以影響系統行為
系統主題
描述全系統預設項目 (例如顏色和文字樣式) 的主題是
DeviceDefault。我們建議原始設備製造商 (OEM) 修改
DeviceDefault 主題。根據預設,系統 UI 和 Android 開放原始碼計畫中的所有系統應用程式,都會繼承自
這個主題由 OEM 開發的系統應用程式也建議沿用 DeviceDefault。第三方
已開發的應用程式不應沿用 DeviceDefault,而是改用 Theme.Car
androidx.car
程式庫所提供的資訊。檔案位置如下:
- Core。
/frameworks/base/core/res/res/values/themes_device_defaults.xml
- 顏色。
/frameworks/base/core/res/res/values/colors_car.xml
- 樣式:
/frameworks/base/core/res/res/values/styles_car.xml
- 車輛疊加層。
/packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml
原始設備製造商 (OEM) 應使用 car_product
目錄的平行疊加層結構
,進一步擴充 car_product
疊加層。
主題 Playground 應用程式
這個應用程式可藉由以下項目,簡化自訂 DeviceDefault
主題的程序:
在同一個地方查看所有佈景主題屬性。此外,藉由比較特定樣式在
應用程式與其他系統應用程式相同,因此開發人員可以快速偵錯主題問題。這個應用程式
下載網址為:
/packages/services/Car/tests/ThemePlayground
系統 UI
系統 UI 包含 /frameworks/base
下的所有 UI,主要為
/frameworks/base/packages/CarSystemUI
。包括導覽列、狀態列
螢幕鎖定畫面、音量對話方塊、浮動式訊息、使用者挑選器及權限對話方塊。原始設備製造商 (OEM) 可以自訂
透過資源疊加層和主題設定廣泛的系統 UI 元件 (前提是所有元件位於
CDD、CTS 的要求,以及其他適用的使用者體驗指南。
系統應用程式
Android Automotive 包含一組對整體系統影響的核心系統應用程式 功能。其中,通訊中心、媒體、通知和設定 屬於主打應用程式。
- 通訊中心
- 空調
- IME (鍵盤)
- 啟動器 (主畫面)
- 本機媒體播放器
- 媒體
- Messenger
- 通知
- 電台
- 設定
主畫面
主畫面稱為車輛啟動器,是 HMI 體驗的到達網頁。 Android 開放原始碼計畫實作項目僅供參考,原始設備製造商 (OEM) 會視情況將 而且多半結合了導覽、媒體播放、通訊和 並視需求部署其他系統狀態車輛啟動器應用程式通常會顯示可用的應用程式 系統中瞭解如何處理近期、套件變更和無頭等事件 (無啟動器活動) 應用程式,請參閱參考實作。
通知
通知是 Android 作業系統和相同結構 (包括 抬頭通知、通知清單/中心、通知 API、排名和內嵌動作) 應用程式已內建於 Android Automotive。詳情請參閱手持裝置 通知 總覽。 為了最佳化汽車用途,我們已做出下列修改 (與 手持式通知堆疊):
-
減少向使用者顯示的整體通知內容。移除 持續播放媒體、導航中和「不重要」(低 低的重要性) 通知清單/中心顯示系統應用程式的前景服務通知,以及 瞭解這些通知是否重複 (例如顯示媒體狀態的叢集) 或不實用
-
移除複雜的內容相關控制選項,例如以長按和滑動長度為基準 控制項)。
-
遵循使用者體驗限制引擎設定。
- 系統可能會根據磁碟機狀態隱藏訊息通知內容預覽畫面。
- 所有字串長度已達上限。
-
新增以下國家/地區車輛專用的新通知類別: Android 9 (僅適用於以
android.uid.system
。 -
CATEGORY_CAR_EMERGENCY
。排名在通知清單頂端。略過 零打擾 (DND) 控制項。 CATEGORY_CAR_WARNING
。排名低於緊急且高於其他情況 (略過 DND)。-
CATEGORY_CAR_INFORMATION
。根據以下指標與其餘通知排名: 「重要性」以及回訪率
通知堆疊的端對端實作 (從通知 API 到 UI) 為 視為主打應用程式。確保所有 HU 和 盡量提升升級能力,強烈建議原始設備製造商 (OEM) 導入 Android 開放原始碼計畫, 隨心所欲自訂模型
自訂
適用標準的 DeviceDefault 主題設定和資源重疊。相當有限 您可以前往下列位置查看行為自訂旋鈕:
packages/apps/Car/Notification/res/values/config.xml
設定
「設定」應用程式 (車輛設定) 是會曝露旋鈕的主要應用程式之一 可讓使用者設定 Android 作業系統和車輛的其他部分。設定 應用程式會在 OS 中提供超過 200 項功能,而且這些功能在每個主要核心上都緊密結合 Android 版本。我們強烈建議使用原始設備製造商 (OEM) 提升升級能力,避免資料不一致。 以套用 Android 開放原始碼計畫實作項目,然後加以自訂 (而不是建立實作項目)。
自訂
「設定」應用程式將自訂功能納入考量,並提供 。
-
主題設定。可針對各種偏好設定物件類型啟用視覺化自訂功能 ,包括:
-
Preference.DeviceDefault.CheckBoxPreference
-
Preference.DeviceDefault.DialogPreference.EditTextPreference
-
-
自訂階層:如何啟用:
-
啟動成任意根片段,覆蓋 已命名檔案中的
config_settings_hierarchy_root_fragment
Settings/res/values/config.xml
-
自訂項目,例如順序、分組、文字和圖示、疊加層
Settings/res/xml/*.xml
-
-
靜態插入。設定疊加層專案時,原始設備製造商 (OEM) 可新增 ,然後定義並新增額外的片段和控制器類別 都屬於階層架構
-
動態插入。如果另一個應用程式 (
apk
) 代管 必須從主要的「設定」應用程式連結設定畫面,才能另外選取 動態插入。若需更多資訊,請參閲 動態偏好設定:
媒體
媒體是一種主要應用程式,代表媒體提供前端使用者體驗
實作
MediaSession
敬上
和MediaBrowser
相互整合媒體應用程式可以是第三方應用程式 (例如 Spotify 和 Pandora) 和其他
藍牙 (BT) 串流和本機媒體等媒體來源。
Android Auto (Projection) 提供數百種媒體應用程式, 實作這些媒體 API 提供適用於自動的音訊播放功能。 隨著每個主要 Android 版本和 Androidx 程式庫。 為了確保所有媒體應用程式和未來 Android 版本的 API 互通性,原始設備製造商 (OEM) 強烈建議您進行 Android 開放原始碼計畫實作,然後加以自訂。
自訂
透過 DeviceDefault 主題設定的標準主題設定也適用於 Media。此外 可以透過資源疊加層自訂外觀和風格,前提是自訂必須 小於使用者體驗指南的邊界
USB 媒體和媒體來源
盡可能建議你將這些媒體來源插入媒體
透過實作 MediaSession
和 MediaBrowser
API (任何第三方媒體應用程式都是如此)。在 Android 開放原始碼計畫中查看 LocalMediaPlayer 應用程式。
此應用程式會顯示本機媒體檔案,並在媒體中顯示為來源。