测试车载应用可确保用户不会遭遇到意外的结果或糟糕的体验。用户可通过车载控制台和手机屏幕访问您的应用,因此您需要针对这两种类型的屏幕测试应用。
本文为您演示了如何针对驾驶员可用于访问您的应用的各类屏幕测试您的应用。此外,本文提供了测试其他必要功能的说明。
针对 Android Auto 兼容车载显示屏测试应用
DHU 可让您的开发机器模拟 Android Auto 音响主机,方便您轻松运行和测试 Android Auto 应用。DHU 可在 Windows、macOS 和 Linux 主机上运行。
本部分介绍了如何在开发机器上安装和运行 DHU,以便测试应用。安装 DHU 后,您可以通过 USB 连接手机和工作站来测试 Android Auto 应用。
安装 DHU
如需在开发机器上安装 DHU,请按以下步骤操作:
- 在移动设备上启用开发者模式,如启用设备上的开发者选项中所述。
- 在开发环境中编译应用,并在运行 Android 5.0(API 级别 21)或更高版本的实体移动设备上安装应用。如需在 Nexus 设备上查看 Android 版本,请依次转到设置 > 关于手机(或关于平板电脑)> Android 版本。
- 在移动设备上安装 Android Auto 应用。如果已安装 Android Auto,请确保您使用的是最新版本。
-
打开 SDK 管理器,然后从“SDK Tools”标签页下载 DHU 软件包 Android Auto Desktop Head Unit emulator。DHU 将安装到
<sdk>/extras/google/auto/
目录中。
如果您是在 Linux 上运行 DHU,还必须安装 portaudio、libpng、sdl2 和 sdl2_ttf 库。安装过程因 Linux 发行版而异。例如,在 Debian 衍生 Linux 发行版中,您可以使用以下命令安装这些库:
sudo apt-get install libsdl2-2.0-0 libsdl2-ttf-2.0-0 libportaudio2 libpng12-0

图 1. 包含开发者选项的上下文菜单。

图 2. 表示音响主机服务器正在运行的通知。
安装 DHU 后,您可以通过 USB 连接手机和工作站来测试 Android Auto 应用。
运行 DHU
将移动设备连接到开发机器并通过 Android 调试桥 (ADB) 建立与音响主机服务器的连接,以运行 DHU。
如需建立隧道并运行 DHU,请按以下步骤操作:
- 在 Android Auto 应用中,点按 Hamburger 菜单,然后点按 Settings。
- 滚动到底部附近的 About 部分,再点按 Version 以显示所有版本和权限信息。
点按 Version and permission info 部分 10 次。
系统会显示 Allow development settings 对话框。
点按 OK。
开发者模式现已启用,您可以在溢出菜单中访问开发者选项。您只需在首次运行 Android Auto 应用时启用开发者模式。
如果音响主机服务器尚未运行,请点按屏幕右上角的三个圆点以打开溢出菜单,然后选择 Start head unit server。
设备上的通知区域会显示前台服务。
在 Android Auto 应用中,按返回按钮返回主屏幕,然后打开抽屉式导航栏中的 Settings > Connected cars,并确保启用 Add new cars to Android Auto。
通过 USB 将移动设备连接到开发机器。
确保移动设备的屏幕处于解锁状态,否则无法启动 DHU。
在开发机器上,运行以下
adb
命令,将套接字连接从开发机器的端口 5277 转发到 Android 设备上的相同端口号。此配置使 DHU 能通过 TCP 套接字连接到手机上运行的音响主机服务器。adb forward tcp:5277 tcp:5277
从
<sdk>/extras/google/auto/
目录运行desktop-head-unit.exe
命令(Windows 上)或./desktop-head-unit
命令(Mac 或 Linux 上),以启动 DHU。cd <sdk>/extras/google/auto
./desktop-head-unit
启动 DHU 后,您可以使用 DHU 命令和快捷键来运行和测试您的应用。

图 3. Android Auto 已在移动设备上启动。

图 4. DHU 已在开发计算机上启动。
命令行标记
默认情况下,音响主机服务器通过端口 5277 进行连接。如需替换主机或端口(例如,通过 SSH 转发),请使用 --adb <[localhost:]port>
标记,如以下示例所示:
./desktop-head-unit --adb 5999
默认情况下,DHU 会模拟 Android Auto 兼容音响主机的最常见形式,这种形式会使用触摸屏界面。您可以通过鼠标点击 DHU 来模拟用户轻触操作。如需模拟使用旋控器进行输入的音响主机,您可以使用 -i controller
标记,如以下示例所示:
./desktop-head-unit -i controller
当 DHU 处于旋控器模式时,您可以使用键盘快捷键模拟控制器操作,如 DHU 命令和快捷键中所述。在旋控器模式下,DHU 会忽略鼠标点击;您必须使用模拟的旋控器操作来操控 Android Auto。
发出 DHU 命令
借助 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/
目录中。
-
exitnav.wav
- “Exit navigation.”(退出导航。)
-
navgoogle.wav
- “Navigate to 1600 Amphitheatre Parkway, Mountain View.”(导航到 1600 Amphitheatre Parkway, Mountain View。)
-
navsoh.wav
- “Navigate to Sydney Opera House.”(导航到悉尼歌剧院。)
-
nextturn.wav
- “When is my next turn?”(到达下一个转弯是什么时候?)
-
showalternateroute.wav
- “Show alternate routes.”(显示备选路线。)
-
howlong.wav
- “How long until I get there?”(要多久才能到达那里?)
-
navhome.wav
- “Navigate to home.”(导航到家。)
-
navwork.wav
- “Navigate to work.”(导航到单位。)
-
pause.wav
- “Pause music.”(暂停播放音乐。)
-
showtraffic.wav
- “Show traffic.”(显示路况。)
DHU 命令和快捷键
DHU 支持以下命令。
表 1. 命令和快捷键
类别 | 命令 | 子命令 | 参数 | 键盘快捷键 | 说明 |
---|---|---|---|---|---|
系统 | help | [命令] |
显示完整的命令集。指定命令名称(例如 help day )会使系统显示该命令的帮助。 |
||
quit | Alt + Q | 退出音响主机。 | |||
sleep | [秒] |
休眠一秒。指定参数(例如,sleep
30 )会使系统休眠指定的秒数。如果您要为 DHU 编写脚本,此命令非常有用。(您可以在命令行中使用 I/O 重定向运行脚本:./desktop-head-unit < script.txt 会加载来自文件 script.txt 的命令。)
|
|||
screenshot | filename.png |
将屏幕截图保存为 filename.png 。
|
|||
麦克风 | mic | begin | M | 激活麦克风(相当于按下方向盘上的麦克风按钮),然后等待计算机麦克风输入。 | |
play | filename.wav |
使 DHU 将 filename.wav 视为语音输入,就好像该声音是通过麦克风输入的一样。您不会听到播放的声音文件,但您的确可听到 Android Auto 的响应。
|
|||
repeat |
重复最后一条 mic play 命令,就好像您使用相同的声音文件参数再次调用 mic play 一样。
|
||||
输入 | dpad | up down left right |
箭头键 | 模拟旋控器的移动。 | |
soft left soft right |
Shift + 箭头键 | 模拟按某些旋控器上的侧边按钮。 | |||
click | 回车键 | 模拟按旋控器。 | |||
back | 退格键 | 模拟按某些旋控器下方的后退按钮。 | |||
rotate left rotate right |
1 2 |
模拟旋控器向左(逆时针)或向右(顺时针)旋转。 | |||
flick left flick right |
Shift+1 Shift+2 |
模拟旋控器向左(逆时针)或向右(顺时针)快速旋转。 | |||
tap | x y |
模拟指定坐标处的轻触事件。例如,tap 50 100
|
|||
日间/夜间 | day | Shift+N | 激活日间模式(高亮度,全彩色)。 | ||
night | Control + N | 激活夜间模式(低亮度,高对比度)。 | |||
daynight | N | 切换当前日间/夜间模式。 |
测试 Android Automotive OS 应用
您可以使用 Android 模拟器测试您的驾驶员优化应用在 Android Automotive OS 汽车显示屏上的运行情况。本部分介绍如何设置可用于测试应用的 Android 虚拟设备 (AVD)。
修改运行配置
Automotive OS 应用与其他 Android 应用有所不同。Android Automotive OS 使用显式 Intent 并通过向媒体浏览器服务发送调用来与您的应用互动。
为了测试应用,请验证应用的清单中是否没有任何启动 Activity,并按照以下步骤阻止汽车模块启动 Activity:
在 Android Studio 中,依次选择 Run > Edit Configurations。
从应用中的模块列表中选择您的汽车模块。
在 Launch Options > Launch 下,选择 Nothing。
点击 Apply,然后点击 OK。
添加系统映像
您需要先通过 Android Studio SDK 管理器为设备添加系统映像,然后才能创建符合特定制造商硬件要求的 AVD。以后创建 AVD 时,您可以下载这些系统映像以用于 AVD。
按照以下步骤为 Polestar 2 添加系统映像:
- 在 Android Studio 中,依次选择 Tools > SDK Manager。
- 点击 SDK Update Sites 标签页。
- 点击 Add
。
输入以下 Name 和 URL,然后点击 OK:
Name:Polestar 2 System Image
URL:
https://developer.polestar.com/sdk/polestar2-sys-img.xml
点击 Apply,然后点击 OK。
创建汽车 AVD 并运行模拟器
按照以下步骤创建代表 Android Automotive OS 车辆的 Android 虚拟设备 (AVD),然后使用该 AVD 运行模拟器:
- 在 Android Studio 中,依次选择 Tools > AVD Manager。
- 点击 Create Virtual Device。
- 在 Select Hardware 对话框中,选择 Automotive,然后选择一个设备并点击 Next。
- 选择以 Automotive 为目标的系统映像,如 Android 9.0 (Automotive),然后点击 Next。
- 为您的 AVD 命名,再设置其他要自定义的选项,然后点击 Finish。
- 在工具窗口栏中,选择您的 Android Automotive OS AVD 作为部署目标。
- 点击 Run
。
针对手机屏幕测试应用
按照以下步骤将应用旁加载到手机上并进行测试。
第 1 步:在 Android Auto 应用中启用开发者模式和未知来源
- 在手机上安装 Google Play 上提供的 Android Auto 应用。如果已安装 Android Auto,请确保您使用的是最新版本。
- 在 Android Auto 应用中,点按 Hamburger 菜单,然后点按 Settings。
- 滚动到底部附近的 About 部分,再点按 Version 以显示所有版本和权限信息。
- 点按 Version and permission info 部分 10 次。
系统会显示 Allow development settings 对话框。
- 点按 OK。
- 点按屏幕右上角的三个圆点以打开溢出菜单,然后点按 Developer Settings。
- 点按 Application Mode,再选择 Developer。
应用会返回到开发者设置列表。
- 向下滚动,直到看到 Unknown sources,然后点按该复选框。
- 重新启动 Android Auto。
第 2 步:在手机上启用 USB 调试
- 在设置 > 关于手机中,点按版本号七次以启用开发者选项。
- 返回设置 > 开发者选项,启用 USB 调试。
第 3 步:将您的应用安装到手机上并进行测试
- 通过 USB 将手机连接到机器,以便在开发时将应用直接安装到手机上。使用
adb devices
命令确保开发计算机可以在通过 USB 连接时检测到您的设备。 设备设置完毕并通过 USB 连接后,导航至 SDK 的
platform-tools/
目录,然后运行以下命令将.apk
安装到设备上:adb -d install path/to/your/app.apk
您现在可以测试您的应用,并验证是否一切正常。
其他测试要求
除了在车载控制台和手机屏幕上测试应用的行为之外,您还应确保它可以处理以下场景。
测试媒体应用“冷启动”
即使没有打开任何 Activity,Android Auto 媒体应用也应该能正常工作。在以下情况下,您的应用应做出适当响应:
-
MediaBrowserService
在任何 Activity 打开之前运行。 - 用户没有登录。
- 不能显示任何 Activity。
此外,测试以下情况:
- 强行停止媒体应用,然后启动 Android Auto。
- 清除媒体应用数据,然后启动 Android Auto。
如果应用无法执行请求的行为,请设置相应的错误消息。
媒体测试工具
您可以使用媒体控制器测试应用为 Android Auto 和 Android Automotive OS 验证媒体集成。
如需了解详情,请参阅以下资源:
- 博文:验证 Android 上的 Google 助理媒体操作集成
- GitHub:MCT 工具
- 测试:验证测试