測試車輛專用 Android 應用程式

測試車輛應用程式,以確保使用者不會遇到非預期的結果,或不良的使用體驗。測試應用程式的方式取決於執行平台是 Android Auto 或 Android Automotive OS。

如要開始測試,請參閱下列各節:

測試 Android Auto 應用程式

電腦版車用運算主機 (DHU) 可讓開發機器模擬 Android Auto 資訊娛樂系統,可讓開發人員執行並測試 Android Auto 應用程式。DHU 可執行 Windows、macOS 和 Linux 系統。

本節說明如何在開發機器上安裝及執行 DHU,以便測試應用程式。安裝 DHU 後,您可以透過執行 DHU 一文中所述的支援連線機制將行動裝置連線至 DHU,藉此測試 Android Auto 應用程式。

如要回報錯誤或要求 DHU 相關功能,請使用這個 Issue Tracker

安裝 DHU

DHU 最新版本為 2.0 版,當中含有舊版 (1.1 版) 未提供的功能,因此建議您安裝並使用這個版本。如果在使用 2.0 版時遇到問題,您可以改為安裝 1.1 版

安裝 DHU 2.0 版

如要在開發機器上安裝 DHU 2.0 版,請按照下列步驟操作:

  1. 按照啟用裝置端開發人員選項的說明,在搭載 Android 6.0 (API 級別 23) 以上版本的行動裝置上啟用開發人員模式。
  2. 在裝置上編譯及安裝應用程式。
  3. 在裝置上安裝 Android Auto。如果已安裝 Android Auto,請確認使用的是最新版本。
  4. 請開啟 Android Studio,然後切換 Android Studio 以使用 Beta 版。如果系統提示您更新至新版 Android Studio,請忽略該更新提示。
  5. 開啟 SDK Manager,然後前往「SDK tools」分頁下載「Android Auto Desktop Head Unit Emulator」套件 (2.0 版)。

    SDK Manager 顯示 DHU 2.0 版。

    DHU 會安裝在 SDK_LOCATION/extras/google/auto/ 目錄中。開發人員完成下載後,如果不想使用其他工具的 Beta 版,則可以將 Android Studio 切換回穩定版。

  6. 如果作業系統是 Linux 或 macOS,請執行下列指令,確保 DHU 二進位檔能順利執行:

    chmod +x ./desktop-head-unit
    
其他步驟 (Linux 專用)

如果在 Linux 系統上執行 2.0 版,您必須安裝額外程式庫。DHU 二進位檔只能在 GLIBC 2.32 以上版本的系統中運作。如要查看 GLIBC 版本的系統,請執行下列指令:

ldd --version

如果版本低於 2.32,您必須將 GLIBC 更新為 2.32 以上版本,或是升級至相容於 GLIBC 2.32 以上版本的作業系統版本。

另外,您必須安裝 libc++1libc++abi1 程式庫。安裝程序會因 Linux 發行版而異,如果是使用 Debian Linux 發行版本,開發人員可以使用下列指令來安裝程式庫:

sudo apt-get install libc++1 libc++abi1

安裝 DHU 1.1 版

如果在使用 2.0 版時遇到問題,請按照下列步驟在開發機器上安裝 DHU 1.1 版:

  1. 按照啟用裝置端開發人員選項的說明,在搭載 Android 6.0 (API 級別 23) 以上版本的行動裝置上啟用開發人員模式。
  2. 在裝置上編譯及安裝應用程式。
  3. 在裝置上安裝 Android Auto。如果已安裝 Android Auto,請確認使用的是最新版本。
  4. 開啟 Android Studio,並確認 Android Studio 使用的是穩定版
  5. 開啟SDK Manager,接著前往SDK 工具分頁,下載Android Auto 電腦版車用運算主機 (DHU) 套件 (1.1 版本)。

    DHU 會安裝在 SDK_LOCATION/extras/google/auto/ 目錄中。開發人員完成下載後,如果不想使用其他工具的穩定版,則可以將 Android Studio 切換成其他更新版本。

  6. 如果作業系統是 Linux 或 macOS,請執行下列指令,以確保能夠執行 DHU 二進位檔:

    chmod +x ./desktop-head-unit
    
其他步驟 (Linux 專用)

如果在 Linux 系統上執行 1.1 版,則須安裝額外程式庫。請安裝 portaudiolibpngsdl2sdl2_ttf 程式庫。安裝程序會因 Linux 發行版而異,如果是使用 Debian Linux 發行版本,開發人員可以使用下列指令來安裝程式庫:

sudo apt-get install libsdl2-2.0-0 libsdl2-ttf-2.0-0 libportaudio2 libpng12-0

執行 DHU

安裝 DHU 後,您可以透過 USB 將行動裝置連線至工作站,以便測試 Android Auto 應用程式。透過配件模式 (建議用於 DHU 2.0) 或 ADB 通道將您的行動裝置連線至開發機器後,即可執行 DHU。

透過配件模式建立連線 (僅限 DHU 2.0)

Android Auto 支援透過 Android Open Accessory (AOA) 通訊協定連線至 DHU。請輸入下列指令:

./desktop-head-unit --usb

根據預設,DHU 會掃描可用的 USB 裝置清單,並嘗試連線至第一個相容的裝置。如要指定特定裝置,請在 --usb 指令中加入裝置 ID,如下所示:

./desktop-head-unit --usb=[DEVICE_ID]

透過 ADB 通道建立連線

這種方法需要透過 Android Debug Bridge (ADB) 設定與 Android Auto 車用運算主機伺服器的連線。請按照下列步驟設定通道及執行 DHU:

  1. 請根據裝置上執行的 Android 版本,透過下列任一方式開啟 Android Auto 設定:

    • 若為 Android 10 以上版本:請在 Android Auto 應用程式中,依序輕觸「設定」>「應用程式和通知」>「查看所有應用程式」>「Android Auto」>「進階」>「其他設定」
    • 若為 Android 9 或以下版本:請在 Android Auto 應用程式中,打開「選單」(Menu),並選取「設定」。
  2. 接著,捲動到畫面底部「關於」的部分,然後輕觸「版本」,即可顯示所有版本和權限資訊。

  3. 請輕觸「版本和權限資訊」10 次

    系統隨即顯示「啟用開發人員設定」對話方塊

  4. 輕觸「確定」

    這樣一來,開發人員模式就已啟用,透過溢位選單,即可存取開發人員選項。只有在首次執行 Android Auto 應用程式時,才需要啟用開發人員模式。

  5. 如果車用運算主機伺服器仍未啟動,請輕觸畫面右上方的三點圖示以開啟溢位選單,然後選取「啟動車用運算主機伺服器」(如圖 1 所示)。

    在裝置上,通知區會顯示前景服務,說明伺服器已經啟動 (如圖 2 所示)。

    包含開發人員選項的內容選單

    圖 1 包含開發人員選項的內容選單。

    說明資訊娛樂主機伺服器正在執行的通知

    圖 2 說明資訊娛樂主機伺服器正在執行的通知。

  6. 在 Android Auto 應用程式中,輕觸靠近「設定」頂端的「先前連線的車輛」,並確認「在 Android Auto 中新增車輛」已經啟用

  7. 透過 USB 將行動裝置連線至開發機器。

  8. 請確認已解鎖行動裝置螢幕,否則無法啟動 DHU。

  9. 在開發機器上執行下列 adb 指令,將通訊端連線自開發機器通訊埠 5277,轉送至 Android 裝置上相同編號的通訊埠。這麼一來,DHU 即可透過 TCP 通訊端連線至在手機中執行的資訊娛樂主機伺服器。

    adb forward tcp:5277 tcp:5277
    
  10. 如果是在 Windows 環境啟動 DHU,請在 SDK_LOCATION/extras/google/auto/ 目錄中執行 desktop-head-unit.exe,在 macOS 或 Linux 環境中,則執行./desktop-head-unit 指令。

    cd SDK_LOCATION/extras/google/auto
    desktop-head-unit.exe # Windows
    ./desktop-head-unit # macOS or Linux
    

    DHU 已在開發機器上執行

  11. 如果是首次進行行動裝置與 DHU 的連線,請查看行動裝置螢幕,以接受服務條款,並視情況調整權限設定。

啟動 DHU 後,即可使用 DHU 主控台指令執行以及測試應用程式。

指令列選項

資訊娛樂主機伺服器會透過預設通訊埠 5277 進行連線。如要覆寫主機或通訊埠 (如改用 SSH 轉送),請使用 --adb=<[localhost:]port> 標記,詳情請參閱以下範例:

./desktop-head-unit --adb=5999

根據預設,DHU 會模擬與 Android Auto 相容的車用運算主機,並提供觸控螢幕使用者介面。如要模擬使用者輕觸動作,請用滑鼠點按 DHU。如要模擬採用旋轉控制器做為輸入方式的車用運算主機,您可以使用 -i controller 標記,如以下範例所示:

./desktop-head-unit -i controller

DHU 使用旋轉控制器模式時,即可使用鍵盤快捷鍵模擬控制器作業。詳情請參閱「旋轉控制器」。在旋轉控制器模式中,DHU 會忽略滑鼠點擊行為,因此您必須使用模擬的旋轉控制器來操作 Android Auto。

DHU 支援的完整指令列選項會因使用 2.0 版或 1.1 版而異。

2.0 版
選項 說明
c--config=FILE 使用指定的設定 .ini 檔。詳情請參閱「設定 DHU」說明。
i--input=INPUT 使用指定的輸入模式,如 touchrotaryhybrid
-a--adb=HOSTPORT 使用 ADB 傳輸,如 host:portport。預設通訊埠為 5277。
-a--usb=DEVICE_ID 使用 USB (AOA) 傳輸 (DEVICE_ID 為選擇性)。
v--version 顯示版本資訊。
l--licenses 顯示開放原始碼授權
h--headless 以無頭模式 (無 UI) 執行。
?--help 顯示這則說明資訊。
1.1 版本
選項 說明
i--input=INPUT 使用指定的輸入模式,如 touchrotary
-a--adb=HOSTPORT 使用 ADB 傳輸,如 host:portport。預設通訊埠為 5277。
v--version 顯示版本資訊。
l--licenses 顯示開放原始碼授權
h--headless 以無頭模式 (無 UI) 執行。

DHU 使用手冊 (2.0 版)

本節將說明 DHU 2.0 版提供的功能及使用方式。

請在先前用於啟動 DHU 的終端機視窗中輸入指令。可以使用 ; 區隔多重指令。

系統

指令 金鑰 說明
help [command] 顯示完整的指令集。如果有指定指令名稱 (例如 help day),則會顯示該指令的說明。
quit
exit
Alt 鍵 + Q 鍵 關閉資訊娛樂主機。
sleep [seconds] 休眠 1 秒鐘。如果有指定延遲時間,休眠長度則為 seconds 秒鐘。可用於傳送指令碼給資訊娛樂主機 (./desktop-head-unit < script.txt),例如持續整合環境。
screenshot filename.png 將螢幕截圖儲存至 filename.png.
licenses 顯示 DHU 中使用的程式庫授權
keycode keycode 從「Keycodes」(按鍵碼) 區所列名單中,擇一作為 keycode 傳送。

觸控和觸控板

啟用觸控功能或觸控板時,顯示視窗 (觸控功能專用) 或觸控板視窗 (觸控版專用) 中的點擊行為皆會登錄為觸控事件。

使用觸控功能時,請用滑鼠右鍵按一下第一個手指的位置,然後點選並按住右鍵做為第二個手指的位置,如此即可模擬多點觸控功能。雙指的中心點保持不動,然後移動滑鼠,您就能以該處為圓心旋轉雙指,或是以雙指向內或向外撥動 (兩種操作可並存)。

使用觸控板時,只要按住左側按鈕,即可在畫面中的不同 UI 元素之間捲動。如要取目前焦點的元素,則按一下右側按鈕。

指令 金鑰 說明
tap x y 在指定的座標模擬觸控事件

旋轉控制器

DHU 支援旋轉控制器功能。啟用這項功能時,系統會支援以下動作:

  • 執行方向鍵的上、下、左、右功能
  • 順時針與逆時針旋轉
  • 控制旋轉 (一次 5 個步驟)
  • 按一下遙控器,重新啟用遙控器功能

以下列出所有指令和金鑰繫結。

滑鼠滾輪滾動時會傳送 dpad rotate 指令,按一下滑鼠中鍵 (通常是滾輪) 則會傳送 dpad click 指令。

請注意,大多數車輛都設有觸控式螢幕。有些車款只提供旋轉控制器,而有些則觸控與控制器兩者並用。車輛也支援觸控板,可平移地圖和輸入文字。模擬不同資訊娛樂主機時,請牢記這些不同的設定。

指令 金鑰 說明
dpad {up|down|left|right} 方向鍵 旋轉控制器的動作。
dpad {ur|dl|ul|dr} 旋轉控制器的動作。
dpad soft {left|right} Shift + 方向鍵 部分旋轉控制器提供側邊按鈕。
dpad click 返回 按下旋轉控制器。
dpad back Backspace 鍵 部分旋轉控制器下方會顯示返回按鈕。
dpad rotate left 1 旋轉控制器向左旋轉 (逆時針)。
dpad rotate right 2 旋轉控制器向右旋轉 (順時針)。
dpad flick left Shift 鍵 +1 以逆時針方向快速旋轉旋轉控制器。
dpad flick right Shift 鍵 +2 以逆時針方向快速旋轉旋轉控制器。
dpad 0-9*#+ 數字鍵

麥克風

DHU 支援麥克風語音輸入功能,或播放預錄音軌。為了方便起見,我們提供了以下常見語音指令的語音檔。這些語音檔安裝在 SDK_LOCATION/extras/google/auto/voice/ 目錄中。

檔案名稱 文字
navhome.wav 導航回家
navwork.wav 導航到公司
navsoh.wav 前往雪梨歌劇院
navgoogle.wav 導航到美國加州圓形劇場園道 (Amphitheatre Parkway) 1600號
exitnav.wav 結束導航
howlong.wav 「需要多久才會抵達?」
showtraffic.wav 顯示路況
showalternateroute.wav 顯示替代路線
pause.wav 暫停播放音樂
nextturn.wav 下次何時要轉彎?

如要在 DHU 提示中執行個別 .wav 檔案:

mic play /path/to/filename.wav
指令 金鑰 說明
mic begin M 鍵 啟用麥克風 (相當於點按方向盤的麥克風按鈕),並等待電腦麥克風輸入音訊。
mic play filename.wav 啟用麥克風,並播放指定 WAV 錄音檔。注意:雖然不會聽到播放中的 WAV 檔案,但會聽到 Android Auto 的回應。
mic repeat 使用 mic play 重複播放最新錄音檔。
mic reject {on|off} 啟用或停用拒絕麥克風要求。如開啟這項功能,則所有麥克風要求都會遭到拒絕。

感應器

如需 DHU 模擬車輛感應器資料的變化,請使用下列指令。如要模擬感應器資料並傳送至 Android Auto,必須在啟動 DHU 時,透過設定 .ini 檔案啟用相對應的感應器。

指令 說明
fuel [percentage] 如要停用燃油量,請將燃油量設為指定的百分比,或者不傳遞值。
range [km] 如要停用範圍資料,請將範圍設為指定的公里數,或者不傳遞值。
lowfuel [{on|off}] 如要停用感應器,請設定燃油過少警告感應器,或者不傳遞值。
accel [x] [y] [z] 如要解除加速計資料設定,請將加速計中的 x、y 和 z 值 (m/s^2) 設為指定值,或者不傳遞參數。視需要傳入 NAN 值,即可略過選用參數。
compass bearing [pitch] [roll] 設定指南針的指定軸承、俯仰角和旋轉角 (以度為單位)。視需要傳入 NAN 值,即可略過選用參數。
gyro [x] [y] [z] 如要解除陀螺儀資料設定,請設定陀螺儀的指定 x、y 和 z 旋轉速度 (rad/s),或者不傳遞參數。視需要傳入 NAN 值,即可略過選用參數。
location lat long [accuracy] [altitude] [speed] [bearing] 設定位置的指定經緯度值,以及選用精確度 (m)、高度 (m)、速度 (m/s) 和方向 (以度為單位)。視需要傳入 NAN 值,即可略過選用參數。
odometer km [current_trip_km] 將里程表設定為指定公里數,以及選用目前行程公里數的值。
speed [speed] 如要停用感應器,請將車速設為指定值 (m/s),或者不傳遞值。
tollcard {insert|remove} 說明是否已插入或移除付費卡。

日間/夜間模式

DHU 使用下列指令和金鑰繫結,模擬日間及夜間模式的切換。

指令 金鑰 說明
day Shift 鍵 + N 鍵 啟用日間模式 (高亮度、全彩)。
night Ctrl 鍵 + N 鍵 啟用夜間模式 (低亮度、高對比)。
daynight
nightday
N 鍵 切換當前模式為日間或夜間模式。

焦點管理

如需模擬 Android Auto 焦點是否在資訊娛樂主機上,可使用 DHU 下列指令。

指令 說明
focus video {on|off|toggle} 不論當前焦點狀態為何,啟用/停用 Android Auto 在資訊娛樂主機上的視訊焦點。如需模擬資訊娛樂主機進入原生模式,則關閉視訊焦點。
focus audio {on|off|toggle} 不論當前焦點狀態為何,啟用/停用 Android Auto 在資訊娛樂主機上的音訊焦點。如需模擬資訊娛樂主機播放原有音訊來源,則關閉音訊焦點。
focus nav {on|off|toggle} 不論當前焦點狀態為何,啟用/停用 Android Auto 在資訊娛樂主機上的導航焦點。如需模擬資訊娛樂主機執行原有導航系統,則關閉導航焦點。

限制/行車狀態

DHU 支援模擬行車時的特定限制,例如停用鍵盤及拒接來電設定。

指令 金鑰 說明
restrict none U 鍵 停用所有限制。
restrict all Shift 鍵 + U 鍵 啟用所有限制,例如模擬行車狀態。

儀表板

DHU 支援模擬儀表板 (通常位於方向盤後方),在導航期間顯示下個轉彎路口的基本資訊 (如下個路口的路名、距離、行車時間或轉彎方向) 和進行中的通話相關資訊。

如需啟用此功能,請使用設定檔中的 instrumentcluster,或使用 navclusterphonecluster 分別控管不同功能。

媒體播放狀態

DHU 可顯示媒體播放狀態的額外資訊,例如播放中的曲目為何。

如需啟用此功能,請使用設定檔中的 playbackstatus

按鍵碼

DHU 提供一組預設按鍵碼,用於模擬不同車輛的常見快捷按鈕組合。比方說,DHU 提示會觸發 home 鍵,如下所示:

keycode home
按鍵碼 說明
home 前往主畫面。
back 返回
call
endcall
撥打電話或結束通話。
search 觸發搜尋。
media_play_pause
media_play
media_pause
播放或暫停媒體。
media_next
media_previous
前往下一首或上一首媒體曲目。
media 前往預設媒體應用程式。
navigation 前往預設導航應用程式。
tel 前往預設電話應用程式。

設定 DHU

DHU 支援 .ini 設定檔,方便您變更車用運算主機向手機要求的可用輸入模式 (觸控功能或控制器)、畫面更新率、解析度和 DPI。

設定檔的預設位置為 ~/.android/headunit.ini。如果要在系統中,變更資訊娛樂主機的設定,請修改這個檔案。

您也可以使用 -c 標記指定要載入的設定檔。

./desktop-head-unit -c /path/to/config.ini
範例設定
[general]
touch = true
touchpad = false
controller = false
instrumentcluster = false
resolution = 800x480
dpi = 160
framerate = 30
fueltypes = unleaded,electric,hydrogen
evconnectors = supercharger

SDK_LOCATION/extras/google/auto/config/ 資料夾中有設定檔範例,示範不同的資訊娛樂主機設定測試。如要進一步瞭解其他進階用途,請參閱以下支援的設定。

輸入設定
名稱 預設 類型 說明
inputmode default 字串 用於定義輸入模式。使用 touchrotaryhybrid 選項可啟用或停用觸控螢幕和旋轉功能,並可視情況設定預設按鍵碼,default 則遵從之後的 touchcontroller 選項。
controller false 布林值 啟用旋轉控制器輸入功能。忽略不看,除非 inputmodedefault
touch true 布林值 啟用觸控螢幕。忽略不看,除非 inputmodedefault
touchpad false 布林值 啟用觸控板。
touchpadnavigation false 布林值 啟用觸控板以使用 UI 瀏覽功能。
touchpadtapasselect false 布林值 設為 true 時,視輕觸觸控板為選取事件。
touchpaduiabsolute false 布林值 touchpadnavigation 設定為 true 時,輕觸動作可作為絕對值或手勢處理。
影片設定

Android Auto 支援三種影片解析度:

  1. 480p (800x480 -- 預設)
  2. 720p (1280x720)
  3. 1080p (1920x1080)

如要支援其他顯示比例長寬比,請視情況調整資訊娛樂主機上下左右的邊界。舉例來說,如要使用 1000x600 的螢幕,請將解析度設為 720p (1280x720)、將邊界寬度設為 280,並且將邊界高度設為 120。那麼左右兩側邊界即可增加 140px,以及上下兩側邊界可增加 60px。

以下設定以一般 6 吋螢幕 (750x450) 為例:

[general]
...
resolution = 800x480
marginwidth = 50
marginheight = 30

以下設定以超寬螢幕為例:

[general]
...
resolution = 1280x720
marginwidth = 0
marginheight = 220
名稱 預設 類型 說明
resolution 800x480 字串 只能設定為800x4801280x7201920x1080 之一。
dpi 160 整數
normalizedpi false 布林值 設定為 true 時,DHU 視窗會縮減,以容納較大的 DPI 值。而設定為 false 時,視窗會跟著 DPI 值變大而放大,雖不會模仿真實顯示畫面,但有利於檢查影像內容。
realdpi 160 整數 用於影片設定。
framerate 30 整數 用於影片設定。
marginheight 0 整數 用於影片設定。
marginwidth 0 整數 用於影片設定。
margins 0,0,0,0 字串 用於影片設定,會覆寫 marginwidthmarginheight (如果有的話)。格式為上、下、左、右。
contentinsets 0,0,0,0 字串 用於影片設定。格式為上、下、左、右。
stablecontentinsets 0,0,0,0 字串 用於影片設定。預設為 contentinsets 的值。格式為上、下、左、右。
cropmargins false 布林值 如果 marginsmarginheightmarginwidth 有設置指定值,在此設定使用 true 值,則會移除播放影片中的邊界。這項數據更能反映使用者看到的畫面。
pixelaspectratio 1.0 漂浮 用於影片設定。
感應器設定

如要傳送模擬感應器資料至 Android Auto,請使用下列選項啟用對應的感應器。如果感應器已停用,使用 DHU 指令 的感應器所傳送的資料將忽略不計。

名稱 預設 類型 說明
accelerometer false 布林值 啟用加速計感應器資料。
compass false 布林值 啟用指南針感應器資料。
driving_status false 布林值 啟用行車狀態感應器資料。
fuel false 布林值 啟用燃料感應器資料。
gyroscope false 布林值 啟用陀螺儀感應器資料。
location false 布林值 啟用車輛位置感應器資料。
night_mode false 布林值 啟用夜間模式感應器資料。
odometer false 布林值 啟用里程計感應器資料。
speed false 布林值 啟用速度感應器資料。
toll_card false 布林值 啟用付費卡感應器資料。
其他
名稱 預設 類型 說明
instrumentcluster false 布林值 啟用儀表板。新增視窗至使用者介面,即可顯示導航和手機狀態。
navcluster false 布林值 啟用儀表板。新增視窗至使用者介面,即可顯示導航狀態。
phonecluster false 布林值 啟用儀表板。新增視窗至使用者介面,即可顯示手機狀態。
playbackstatus false 布林值 啟用播放狀態。新增視窗至使用者介面,即可顯示播放狀態訊息。
driverposition left 字串 只能設定為 leftcenterright 之一。
windowleft 整數 設定主視窗的左側位置。
windowtop 整數 設定主視窗的頂部位置。
fueltypes unleaded 字串 可為下列一或多個值 (以「,」分隔):
  • unleaded
  • leaded
  • diesel-1
  • diesel-2
  • biodiesel
  • e85
  • lpg
  • cng
  • lng
  • hydrogen
  • electric
  • other
  • unknown
evconnectors 字串 可為下列零個或多個值 (以「,」分隔):
  • j1772
  • mennekes
  • chademo
  • combo-1
  • combo-2
  • roadster
  • hpwc
  • gbt
  • supercharger
  • other
  • unknown
只有在 fueltypes 包含 electric 時,才需要設定。

DHU 使用手冊 (1.1 版)

DHU 指令利用 Android Auto 功能測試應用程式,例如播放語音輸入,或切換日間/夜間顯示模式。請在啟動 DHU 的終端機視窗中向 DHU 發出指令。或者選取 DHU 視窗,並使用鍵盤快捷鍵來發出指令。如要進一步瞭解所有控制功能的 DHU 指令和金鑰繫結,請參閱「DHU 指令和金鑰繫結」

切換日間模式和夜間模式

Android Auto 為日間模式和夜間模式提供不同的色彩配置。請以日間模式和夜間模式對應用程式進行測試。您可以透過下列方式切換夜間模式和日間模式:

  • 於啟動 DHU 的終端機中,執行 daynight 指令。
  • 選取 DHU 視窗,然後按下 N 鍵。

麥克風測試

DHU 支援麥克風語音輸入功能。您也可以指示 DHU 使用預錄音軌做為輸入來源,就像是 DHU 透過麥克風聽到該音軌一樣。

如要使用預錄音檔做為輸入來源,請輸入以下指令:

mic play <sound_file_path>/<sound_file>.wav

為了方便起見,我們提供了以下常見語音指令的語音檔。這些語音檔安裝在 <sdk>/extras/google/auto/voice/ 目錄中。

檔案名稱 文字
navhome.wav 導航回家
navwork.wav 導航到公司
navsoh.wav 前往雪梨歌劇院
navgoogle.wav 導航到美國加州圓形劇場園道 (Amphitheatre Parkway) 1600號
exitnav.wav 結束導航
howlong.wav 「需要多久才會抵達?」
showtraffic.wav 顯示路況
showalternateroute.wav 顯示替代路線
pause.wav 暫停播放音樂
nextturn.wav 下次何時要轉彎?
DHU 指令與金鑰繫結

DHU 提供下列指令:

表 1:指令和金鑰繫結

類別 指令 子指令 引數 鍵盤快捷鍵 說明
系統 說明 [command] 可顯示完整的指令集。如需指令說明,請指定指令名稱,例如 help day
離開 Alt 鍵 + Q 鍵 關閉資訊娛樂主機。
休眠模式 [seconds] 休眠 1 秒鐘。如要設定系統休眠的秒數,請指定引數,例如 sleep 30。這個指令在編寫 DHU 指令碼時可以派上用場。您可以透過指令列使用 I/O 重新導向以執行指令碼,例如:./desktop-head-unit < script.txt 載入 script.txt 檔案中的指令。
螢幕截圖 filename.png 將螢幕截圖儲存至 filename.png
麥克風 mic 開始 分鐘 啟用麥克風 (相當於點按方向盤的麥克風按鈕),並等待電腦麥克風輸入音訊。
播放 filename.wav 讓 DHU 將 filename.wav 視為語音輸入,就像透過麥克風收音一樣。雖然不會聽到播放中的 WAV 檔案,但會聽到 Android Auto 的回應。
重複播放 重複執行最後一個 mic play 指令,就像使用同一個音檔參數再次呼叫 mic play
輸入 方向鍵


方向鍵 模擬移動旋轉控制器。
左移
右移
Shift + 方向鍵 模擬旋轉控制器的側邊按鈕。
點選 返回 模擬按下旋轉控制器的指令。
返回 Backspace 鍵 模擬旋轉控制器下方的「返回」按鈕。
向左旋轉
向右旋轉
1
2
模擬向左 (逆時針方向) 或向右 (順時針方向) 旋轉旋轉控制器。
向左撥動
向右撥動
Shift 鍵 + 1
Shift 鍵 + 2
將旋轉控制器快速旋轉至左側 (逆時針方向) 或右側 (順時針方向)。
輕觸 x y 以指定的座標模擬觸控事件。例如:tap 50 100
日間/夜間 日間 Shift 鍵 + N 鍵 啟用日間模式 (高亮度、全彩)。
夜間 Control 鍵 + N 鍵 啟用夜間模式 (低亮度、高對比)。
日間/夜間 N 鍵 切換日間/夜間為目前模式。

疑難排解

DHU 首次連線時畫面空白

我們正在解決這個已知問題。如要解決這個問題,請按照下列步驟操作:

  1. 關閉 DHU。
  2. 按照「執行 DHU」 一文中所述的步驟 5 操作,先關閉再重新啟動資訊娛樂主機伺服器。
  3. 重新啟動 DHU。
  4. 此步驟可能需要其他權限,才能使用手機螢幕操作。完成上述步驟後,DHU 可能會再次關機。
  5. 重新啟動 DHU。

測試 Android Automotive OS 應用程式

您可以使用 Android Emulator 測試專為駕駛人設計的應用程式,瞭解應用程式在 Android Automotive OS 汽車螢幕上的執行情況。本節說明如何設定 Android 虛擬裝置 (AVD) 以測試應用程式。

編輯媒體應用程式的執行設定

Automotive OS 應用程式中的媒體應用程式有別於其他 Android 應用程式。Android Automotive OS 只會透過明確意圖以及呼叫您的媒體瀏覽器服務,來與您的媒體應用程式互動。

為了測試應用程式,請先確認應用程式的資訊清單中沒有任何啟動活動,然後按照下列步驟防止車用模組因活動而啟動:

  1. 在 Android Studio 中,依序選取「Run」>「Edit Configurations」。

    「Run/Debug Configurations」(執行/偵錯設定)對話方塊。

  2. 在應用程式模組清單中選取汽車模組。

  3. 選取「Launch Options」(啟動選項) >「Launch」(啟動) >「Nothing」(無)。

  4. 點選「Apply」,然後按一下「OK」

導入系統映像檔

如要建立符合特定製造商硬體的 AVD,則需要透過 Android Studio SDK Manager 導入這些裝置的系統映像檔。建立 AVD 時即可下載這些系統映像檔,以便與 AVD 搭配使用。

導入汽車製造商的系統映像檔

目前在 Polestar 2 和 Volvo 可導入原始設備製造商 (OEM) 的系統映像檔。如要導入系統映像檔,請按照下列步驟操作:

  1. 在 Android Studio 中,選取「Tools」(工具) > SDK Manager。
  2. 按一下「SDK Update Sites」分頁標籤。
  3. 按一下「Add」新增圖示
  4. 輸入以下「Name」(名稱) 和「URL」(網址),然後按一下「OK」(確定):

    名稱:Polestar 2 系統映像檔

    網址:https://developer.polestar.com/sdk/polestar2-sys-img.xml

    名稱:Vovo System 映像檔

    網址:https://developer.volvocars.com/sdk/volvo-sys-img.xml

  5. 點選「Apply」,然後按一下「OK」

安裝一般系統映像檔

Android Studio 也提供適用於 Android Automotive OS 的通用系統映像檔,可用來測試應用程式。這個通用系統映像檔提供了 Google 助理,可用於測試應用程式的整合作業。

如要安裝一般系統映像檔,請按照下列步驟操作:

  1. 在 Android Studio 中,選取「Tools」(工具) > SDK Manager。
  2. 按一下「SDK Platform」分頁標籤。
  3. 按一下「Show Package Details」
  4. 選取「Android 9.0 (Pie)」>「Automotive Intel x86 Atom System Image」。
  5. 點選「Apply」,然後按一下「OK」

    提供一般系統映像檔的 SDK 平台元件清單。

建立車輛 AVD 並執行模擬器

請按照下列步驟建立 Android 虛擬裝置 (AVD),以代表搭載 Android Automotive OS 的車輛,然後使用該 AVD 執行模擬器:

  1. 在 Android Studio 中,選取「Tools」(工具) >「AVD Manager」。
  2. 按一下「Create Virtual Device」
  3. 請在「Select Hardware」(選取硬體) 對話方塊中,選取「Automotive」(車輛),然後選取裝置並按一下「Next」(下一步)。
  4. 選取 Automotive 系統映像檔,例如 Android 9.0 (Automotive),然後點選「Next」(下一步)。
  5. 為您的 AVD 命名,並選取您要自訂的任何其他選項,然後按一下「Finish」
  6. 從工具視窗列選取 Android Automotive OS AVD 做為部署目標。
  7. 按一下「Run」Run 圖示

測試應用程式是否符合手機畫面

請根據以下步驟將應用程式側載到手機上,然後進行測試。

步驟 1:請在 Android Auto 應用程式中,啟用開發人員模式和允許不明的來源。

  1. 請在手機上安裝 Google Play 提供的 Android Auto 應用程式。如果您已安裝 Android Auto,請確認安裝的是最新版本。
  2. 在 Android Auto 應用程式中,打開「漢堡選單」(Hamburger Menu),並選取「設定」。
  3. 接著,捲動到畫面底部「關於」的部分,然後輕觸「版本」,即可顯示所有版本和權限資訊。
  4. 輕觸「版本和權限資訊」10 次

    系統隨即顯示「啟用開發人員設定」對話方塊

  5. 輕觸「確定」
  6. 輕觸畫面右上方的三點圖示以開啟溢位選單,然後輕觸「開發人員設定」。
  7. 輕觸「應用程式模式」,然後選取「開發人員模式」。

    接著應用程式會返回「開發人員設定」清單。

  8. 向下捲動至「不明的來源」,然後輕觸核取方塊。
  9. 請重新啟動 Android Auto。

步驟 2:在手機上啟用 USB 偵錯功能

  1. 在「設定」>「關於手機」中,輕觸「版本號碼」7 次,即可啟用「開發人員選項」。
  2. 返回「設定」>「開發人員選項」,啟用「USB 偵錯」。

步驟 3:在手機上安裝應用程式並進行測試。

  1. 透過 USB 將手機連接至電腦,即可在開發時直接安裝應用程式。請務必使用 adb devices 指令,開發機器才可透過 USB 連線進行偵測。
  2. 透過 USB 設定並連接裝置後,請前往 SDK 的 platform-tools/ 目錄,並執行下列指令,在裝置上安裝 .apk

    adb -d install path/to/your/app.apk
    

    現在請您測試應用程式,確認一切皆能正常運作。

媒體應用程式的其他測試要求

如果您測試的是媒體應用程式,除了在 Android Auto 和/或 Android Automotive OS 上測試應用程式之外,請另外針對本節介紹的情境進行測試。

測試 MediaBrowseService 啟動情境

為了保障駕駛與乘客的安全,在行車過程中,使用者與應用程式互動的方式另有限制。因此,Android Auto 和 Android Automotive OS 必須處理 MediaBrowserService 啟動的情況,您的應用程式必須能處理這類情境,以便使用者在開車時,能隨時使用應用程式的內容。

請務必測試並確認應用程式是否能處理下列情境:

  • MediaBrowserService 會在任何 Activity 啟動前執行。
  • 沒有可顯示 Activity 時,系統會執行 MediaBrowserService
  • MediaBrowserService 會在使用者未登入時執行。

請務必使用以下方法測試這些情境:

  • 強制停止媒體應用程式,然後啟動 Android Auto 或 Android Automotive OS。
  • 清除媒體應用程式資料,然後啟動 Android Auto 或 Android Automotive OS。

此外,請務必視情況設定符合情境的錯誤訊息

媒體測試工具

Media Controller Test 應用程式可讓您在 Android 中測試媒體播放的執行細節,並驗證媒體工作階段的實作情形。如要開始使用這項工具,請參閱「使用媒體控制器測試應用程式」一文。