测试 Android 车载应用

测试车载应用可确保用户不会遇到意外结果或糟糕体验。测试应用的方式取决于应用将在 Android Auto 还是 Android Automotive OS 上运行。

如需开始测试,请参阅以下某一部分:

测试 Android Auto 应用

桌面车机 (DHU) 可让您的开发机器模拟 Android Auto 车机,以便您运行和测试 Android Auto 应用。DHU 可在 Windows、macOS 和 Linux 系统上运行。

本部分介绍了如何在开发机器上安装和运行 DHU,以便测试应用。安装 DHU 后,您可以通过 adb 转发功能将手机连接到 DHU 来测试 Android Auto 应用。

如需报告与 DHU 相关的错误或提交与 DHU 相关的功能请求,请使用此问题跟踪器

安装 DHU

DHU 的最新可用版本是 2.0 rc1。此版本包含上一版本 (1.1) 中未提供的功能,因此是建议安装和使用的版本。如果您在使用版本 2.0 rc1 时遇到问题,可以改为安装版本 1.1

安装 DHU 版本 2.0 rc1

如需在开发机器上安装 DHU 2.0 rc1,请按以下步骤操作:

  1. 在搭载 Android 6.0(API 级别 23)或更高版本的移动设备上启用开发者模式,如启用设备上的开发者选项中所述。
  2. 编译应用并在设备上安装应用。
  3. 在设备上安装 Android Auto。如果已安装 Android Auto,请确保您使用的是最新版本。
  4. 打开 Android Studio,然后将 Android Studio 切换为使用 Beta 版。如果系统提示您更新到较新的 Android Studio 版本,您可以忽略更新。
  5. 打开 SDK 管理器并导航到 SDK Tools 标签页,然后下载 2.0 rc1 版的 Android Auto Desktop Head Unit Emulator 软件包。

    显示 DHU 2.0 rc1 的 SDK 管理器。

    DHU 安装在 SDK_LOCATION/extras/google/auto/ 目录中。下载完成后,如果您不想使用 Beta 版的其他工具,可以将 Android Studio 切换回稳定版。

  6. 在 Linux 或 macOS 系统上,运行以下命令以确保 DHU 二进制文件可执行:

    chmod +x ./desktop-head-unit
    
仅适用于 Linux 的额外步骤

如果您是在 Linux 系统上运行版本 2.0 rc1,还需要安装一些其他库。DHU 二进制文件依赖于 GLIBC 版本 2.27 或更高版本。您可以通过运行以下命令来检查系统的 GLIBC 版本:

ldd --version

如果版本低于 2.27,您必须将 GLIBC 更新到 2.27 或更高版本,或者将操作系统升级到与 GLIBC 2.27 或更高版本兼容的版本。

您还必须安装 libc++1libc++abi1 库。安装过程因 Linux 发行版而异。例如,在 Debian 衍生 Linux 发行版中,您可以使用以下命令安装这些库:

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

安装 DHU 版本 1.1

如果您在使用版本 2.0 rc1 时遇到问题,请按以下步骤操作,在开发机器上安装 DHU 1.1:

  1. 在搭载 Android 6.0(API 级别 23)或更高版本的移动设备上启用开发者模式,如启用设备上的开发者选项中所述。
  2. 编译应用并在设备上安装应用。
  3. 在设备上安装 Android Auto。如果已安装 Android Auto,请确保您使用的是最新版本。
  4. 打开 Android Studio,然后检查 Android Studio 使用的是否为稳定版
  5. 打开 SDK 管理器并导航到 SDK Tools 标签页,然后下载 1.1 版的 Android Auto Desktop Head Unit Emulator 软件包。

    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 应用。通过将移动设备连接到开发机器并借助 Android 调试桥 (ADB) 设置与车机服务器的连接来运行 DHU。

如需设置隧道并运行 DHU,请按以下步骤操作:

  1. 执行以下某项操作以打开 Android Auto 设置,具体取决于设备搭载的 Android 版本:

    • Android 10 或更高版本:在设备上,依次点按设置 > 应用和通知 > 查看所有应用 > Android Auto > 高级 > 应用中的其他设置
    • Android 9 或更低版本:在 Android Auto 应用中,点按菜单,然后点按设置
  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. 通过从 SDK_LOCATION/extras/google/auto/ 目录运行 desktop-head-unit.exe 命令(在 Windows 上)或 ./desktop-head-unit 命令(在 macOS 或 Linux 上)来启动 DHU。

    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 rc1 还是 1.1 而异。

版本 2.0 rc1
选项 说明
c--config=FILE 使用指定的 .ini 配置文件。如需了解详情,请参阅配置 DHU 部分。
i--input=INPUT 使用指定的输入模式,可以是 touchrotaryhybrid 其中之一。
-a--adb=HOSTPORT 使用 ADB 传输(可选的 host:portport)。默认为端口 5277。
v--version 显示版本信息。
l--licenses 显示开源许可。
h--headless 在无头模式(无界面)下运行。
?--help 显示此帮助列表。
版本 1.1
选项 说明
i--input=INPUT 使用指定的输入模式,可以是 touchrotary 其中之一。
-a--adb=HOSTPORT 使用 ADB 传输(可选的 host:portport)。默认为端口 5277。
v--version 显示版本信息。
l--licenses 显示开源许可。
h--headless 在无头模式(无界面)下运行。

DHU 用户指南 (2.0 rc1)

本部分介绍了 2.0 rc1 版的 DHU 支持的功能以及如何使用这些功能。

在您启动 DHU 的终端窗口中输入命令。多个命令可以在同一行上运行,只需用 ; 隔开即可。

系统

命令 说明
help [command] 显示完整的命令集。如果指定了命令名称(例如 help day),将显示该命令的帮助。
quit
exit
Alt+Q 退出车机。
sleep [seconds] 休眠一秒。如果指定了延迟,则休眠那么多 seconds。此命令可用于为车机编写脚本 (./desktop-head-unit < script.txt),例如在 CI 环境中。
screenshot filename.png 将屏幕截图保存为 filename.png.
licenses 显示 DHU 中所用库的许可
keycode keycode 发送 keycode,它是键码部分中列出的某个名称。

触摸和触控板

启用触摸或触控板后,会将显示窗口(针对触摸)或触控板窗口(针对触控板)中的点击操作注册为触摸事件。

对于触摸,您可以通过右键点击第一根手指的位置,然后针对第二根手指点击并按住右键来模拟多点触控。双指的中心点保持固定,移动鼠标可让您围绕中心旋转双指和/或双指张合。

对于触控板,点击并按住左键可在屏幕上的不同界面元素之间滚动。点击右键可选择当前获得焦点的元素。

命令 说明
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 退格键 某些旋控器下方的返回按钮。
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 Navigate to home.(导航到家。)
navwork.wav Navigate to work.(导航到单位。)
navsoh.wav Navigate to Sydney Opera House.(导航到悉尼歌剧院。)
navgoogle.wav Navigate to 1600 Amphitheatre Parkway, California, USA.(导航到美国加利福尼亚露天剧场大道 1600 号。)
exitnav.wav Exit navigation.(退出导航。)
howlong.wav How long until I get there?(要多久才能到达那里?)
showtraffic.wav Show traffic.(显示路况。)
showalternateroute.wav Show alternate routes.(显示备选路线。)
pause.wav Pause music.(暂停播放音乐。)
nextturn.wav When is my next turn?(到达下一个转弯是什么时候?)

如需在 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 支持通过以下命令和按键组合模拟日间模式与夜间模式之间的变化。

命令 说明
day Shift+N 激活日间模式(高亮度,全彩色)。
night Ctrl+N 激活夜间模式(低亮度,高对比度)。
daynight
nightday
N 切换当前的日间模式或夜间模式。

限制/驾驶状态

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

示例配置文件位于 SDK_LOCATION/extras/google/auto/config/ 文件夹下,演示了您可以测试的不同车机设置。如需了解更高级的用例,请参阅下面支持的设置。

输入配置
名称 默认 类型 说明
inputmode default 字符串 定义输入模式。touchrotaryhybrid 选项可启用和停用触摸屏和旋转支持并视情况设置默认的键码,而 default 遵循下面的 touchcontroller 选项。
controller false 布尔值 启用旋控器输入。除非 inputmodedefault,否则会被忽略。
touch true 布尔值 启用触摸屏。除非 inputmodedefault,否则会被忽略。
touchpad false 布尔值 启用触控板。
touchpadnavigation false 布尔值 允许使用触控板进行界面导航。
touchpadtapasselect false 布尔值 如果为 true,点按触控板是选择事件。
touchpaduiabsolute false 布尔值 如果 touchpadnavigationtrue,可设置应将触摸视为绝对触摸还是手势。
视频配置

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 浮点数 在视频配置中使用。
其他
名称 默认 类型 说明
instrumentcluster false 布尔值 启用仪表板。向界面中添加一个窗口,以显示导航和手机状态。
navcluster false 布尔值 启用仪表板。向界面中添加一个窗口,以显示导航状态。
phonecluster false 布尔值 启用仪表板。向界面中添加一个窗口,以显示手机状态。
playbackstatus false 布尔值 启用播放状态。向界面中添加一个窗口,以显示播放状态消息。
driverposition left 字符串 可以是 leftcenterright 其中之一。
windowleft 整数 设置主窗口的左侧位置。
windowtop 整数 设置主窗口的顶部位置。

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 Navigate to home.(导航到家。)
navwork.wav Navigate to work.(导航到单位。)
navsoh.wav Navigate to Sydney Opera House.(导航到悉尼歌剧院。)
navgoogle.wav Navigate to 1600 Amphitheatre Parkway, California, USA.(导航到美国加利福尼亚露天剧场大道 1600 号。)
exitnav.wav Exit navigation.(退出导航。)
howlong.wav How long until I get there?(要多久才能到达那里?)
showtraffic.wav Show traffic.(显示路况。)
showalternateroute.wav Show alternate routes.(显示备选路线。)
pause.wav Pause music.(暂停播放音乐。)
nextturn.wav When is my next turn?(到达下一个转弯是什么时候?)
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 Ctrl+N 激活夜间模式(低亮度,高对比度)。
daynight n 切换当前的日间/夜间模式。

测试 Android Automotive OS 应用

您可以使用 Android 模拟器测试您的驾驶员优化应用在 Android Automotive OS 车载显示屏上的运行情况。本部分介绍了如何设置 Android 虚拟设备 (AVD) 以测试应用。

修改运行配置

Automotive OS 应用与其他 Android 应用有所不同。Android Automotive OS 使用显式 intent 并通过向媒体浏览器服务发送调用来与应用交互。

为了测试应用,请验证应用的清单中是否没有任何启动 activity,然后按照以下步骤阻止汽车模块启动 activity:

  1. 在 Android Studio 中,依次选择 Run > Edit Configurations

    “Run/Debug Configurations”对话框。

  2. 从应用中的模块列表中选择您的汽车模块。

  3. Launch Options > Launch 下,选择 Nothing

  4. 点击 Apply,然后点击 OK

添加系统映像

您需要先通过 Android Studio SDK 管理器为设备添加系统映像,然后才能创建与特定制造商硬件匹配的 AVD。以后创建 AVD 时,您可以下载这些系统映像以用于 AVD。

添加来自汽车制造商的系统映像

目前,您可以为 Polestar 2 和 Volvo 添加 OEM 专属系统映像。如需添加系统映像,请按以下步骤操作:

  1. 在 Android Studio 中,依次选择 Tools > SDK Manager
  2. 点击 SDK Update Sites 标签页。
  3. 点击 Add “Add”图标
  4. 输入以下 NameURL,然后点击 OK

    Name:Polestar 2 System Image

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

    Name:Volvo System Image

    URL: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 Platforms 标签页。
  3. 点击 Show Package Details
  4. Android 9.0 (Pie) 下,选择 Automotive Intel x86 Atom System Image
  5. 点击 Apply,然后点击 OK

    SDK 平台组件的列表 - 选择了通用系统映像。

创建汽车 AVD 并运行模拟器

如需创建代表 Android Automotive OS 车辆的 Android 虚拟设备 (AVD),然后使用该 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 应用中,点按汉堡式菜单,然后点按设置
  3. 滚动到底部附近的关于部分,然后点按版本以显示所有版本和权限信息。
  4. 点按版本和权限信息部分 10 次。

    系统会显示允许开发设置对话框。

  5. 点按确定
  6. 点按屏幕右上角的三个点以打开溢出菜单,然后点按开发者设置
  7. 点按应用模式,然后选择开发者

    应用会返回到开发者设置列表。

  8. 向下滚动,直到您看到未知来源,然后点按该复选框。
  9. 重新启动 Android Auto。

第 2 步:在手机上启用 USB 调试

  1. 设置 > 关于手机中,点按版本号七次以启用开发者选项。
  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 启动场景,以便用户在驾车时继续享受您的内容。

测试您的应用,以确保它可以处理以下各种场景:

  • 在打开任何 Activity 之前运行 MediaBrowserService
  • 当无法显示任何 Activity 时运行 MediaBrowserService
  • 当用户未登录时运行 MediaBrowserService

在测试这些场景时,请务必尝试以下方法:

  • 强行停止媒体应用,然后启动 Android Auto 或 Android Automotive OS。
  • 清除媒体应用数据,然后启动 Android Auto 或 Android Automotive OS。

此外,还应确保在必要时设置适当的错误消息

媒体测试工具

媒体控制器测试应用可让您在 Android 系统上测试媒体播放的复杂性,并帮助验证您的媒体会话实现。如需开始使用此工具,请参阅使用媒体控制器测试应用