Android 兼容性测试套件验证程序(CTS 验证程序)是对兼容性测试套件 (CTS) 的补充。CTS 用于检测可实现自动化测试的 API 和功能,而 CTS 验证程序则用于测试需要进行手动输入才能在固定设备上测试的 API 和功能(例如音频质量、触摸屏、加速度计、相机等)。
要求
在运行 CTS 验证程序之前,请确保您具有以下设备:
- 一台已验证 Android API 兼容性(即已成功通过 CTS 测试)的 Android 设备。该设备将作为受测设备 (DUT)。
- 一台具有 USB 2.0 兼容端口的 Linux 计算机。与 DUT 的所有连接都将经由此端口。
- 已知可兼容蓝牙、Wi-Fi 直连和 NFC 主机卡模拟 (HCE) 的另一台 Android 设备。
- 一台配置了接入点名称和密码的 Wi-Fi 路由器。该路由器应该能够断开与互联网的连接,但未关机。
设置
将测试设备的系统导航模式更改为三按钮模式,如下所述:
- 打开“设置”。
- 导航到系统 > 手势 > 系统导航。
- 选择任何基于按钮的导航模式,首选三按钮模式(如果可用)。
如需设置 CTS 验证程序测试环境,请按照以下步骤操作:
- 在 Linux 计算机上:
- 在安装 CTS 验证程序之前运行以下命令,以允许访问非 SDK 接口。
adb shell settings put global hidden_api_policy 1
- 安装 Android Studio。
- 下载与受测 Android 版本匹配的 CTS 验证程序 APK。
- 在安装 CTS 验证程序之前运行以下命令,以允许访问非 SDK 接口。
- 将 DUT 连接到 Linux 计算机。
- 通过 Linux 计算机上的终端,在 DUT 上安装
CtsVerifier.apk
。adb install -r -g CtsVerifier.apk
- 对于 Android 10 及更高版本,请运行以下命令以授予应用创建报告的权限。
adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
-
对于 Android 11 及更高版本,请运行以下命令,以使得系统可以将报告保存到设备外部顶层目录下的自定义目录中。
adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
- 确保 DUT 的系统数据和时间已正确设置。
运行
点按 DUT 上的 CTS 验证程序图标,启动 CTS 验证程序应用。

该应用显示了适用于手动验证的多个测试集。

每项测试均包含一组共通的元素(信息、通过、失败),这些元素位于屏幕底部。

- 信息 (?)。点按即可显示测试说明。首次打开测试时,系统也会自动显示这些说明。
- 通过 (✓)。如果 DUT 符合“信息”说明中规定的测试要求,请点按此按钮。
- 失败 (!)。如果 DUT 不符合“信息”说明中规定的测试要求,请点按此按钮。
一些测试(例如 USB 配件模式和相机校准测试)需要额外的测试设置和说明(详见以下各部分)。
CTS 验证程序 8.0 及更高版本中的 USB 配件模式测试


CTS 验证程序 7.x 及更低版本中的 USB 配件模式测试
为了运行 USB 配件测试,您需要配备一台 Linux 计算机来运行 USB 台式机(主机)程序。
- 将 DUT 连接到 Linux 计算机。
- 在计算机上,执行 CTS 验证程序软件包中的
cts-usb-accessory
程序:./cts-usb-accessory
- 等待 DUT 上显示弹出消息,然后选择确定。
图 6. USB 配件测试 - 转到 DUT 上 CTS 验证程序应用中的 USB 配件测试。
- 在计算机上,通过控制台查看输出信息。输出示例:
CTS USB Accessory Tester Found possible Android device (413c:2106) - attempting to switch to accessory mode... Failed to read protocol versionfigure3 Found Android device in accessory mode (18d1:2d01)... [RECV] Message from Android device #0 [SENT] Message from Android accessory #0 [RECV] Message from Android device #1 [SENT] Message from Android accessory #1 [RECV] Message from Android device #2 [SENT] Message from Android accessory #2 [RECV] Message from Android device #3 [SENT] Message from Android accessory #3 [RECV] Message from Android device #4 [SENT] Message from Android accessory #4 [RECV] Message from Android device #5 [SENT] Message from Android accessory #5 [RECV] Message from Android device #6 [SENT] Message from Android accessory #6 [RECV] Message from Android device #7 [SENT] Message from Android accessory #7 [RECV] Message from Android device #8 [SENT] Message from Android accessory #8 [RECV] Message from Android device #9 [SENT] Message from Android accessory #9 [RECV] Message from Android device #10 [SENT] Message from Android accessory #10
校准相机视野范围
使用视野范围校准程序以适中的精确度快速确定设备的视野范围。
- 设置测试环境:
- 在尺寸为 11 x 17 英寸或 A3 尺寸的纸张上打印 calibration-pattern.pdf 目标文件。
- 将打印出来的图案贴在一个硬质底板上。
- 将相机设备和打印出来的目标按如下方位摆放。
图 7. 相机打印目标
- 设置目标宽度:
- 测量目标图案上两条实线之间的距离(以厘米为单位),以计入打印误差(约 38 厘米)。
- 启动校准应用。
- 按设置按钮,然后选择“Marker distance”。
- 测量并输入到目标图案的距离(大约 100 厘米)。
- 按后退按钮返回到校准预览。
- 检查设备和目标是否已放在图中所示的位置,以及是否在设置对话框中输入了正确的距离。在预览中,图像上会显示一条叠加的垂直线;该垂直线应与目标图案的中心线对齐。透明网格可与其他垂直线配合使用,以确保光轴与目标正交。
- 运行校准测试:
- 选择图像分辨率(使用左下角的选择器),然后点按屏幕拍摄照片。测试会进入校准模式,并且照片将显示叠加在图像上的两条垂直线。
- 确定精确度:
- 如果这两条线与目标图案上的垂直线是对齐的(误差控制在几厘米之内),则针对选定分辨率报告的视野范围是准确的。
- 如果没有对齐,则意味着所报告的视野范围不准确。要纠正这个问题,请调整屏幕底部的滑块,直到叠加的垂直线尽可能与目标图案对齐。当叠加的垂直线与目标图案图像对齐时,所显示的视野范围将接近于正确的值。所报告的视野范围与校准值的误差应在 +/- 1 度范围内。
- 按后退按钮,对 DUT 所支持的所有图片分辨率执行上述校准测试操作。
导出结果
完成所有测试后,您可以将结果另存为报告并下载到计算机上。报告名称会自动加上基于 DUT 系统时间的时间戳。
- 点按保存(磁盘)图标。
图 8. CTS 验证程序保存图标 - 等待弹出消息显示报告保存路径(例如
/sdcard/verifierReports/ctsVerifierReport-date-time.zip
),然后记录该路径。
图 9. CTS 验证程序报告保存路径 - 将 DUT 连接到 Linux 计算机。
- 通过在 Linux 计算机上安装的 Android SDK,使用
adb shell content read
或adb pull CTSVerifierReportPath
在已连接的设备中下载报告。- 对于 Android 7.x 及更高版本,请使用以下命令下载所有报告:
adb pull /sdcard/verifierReports
- 对于 Android 6.0 及更低版本,请使用以下命令下载所有报告:
adb pull /mnt/sdcard/ctsVerifierReports/
-
对于 Android 10 及更高版本,如果是以次要用户身份运行车载系统和设备,请使用以下命令下载最新报告:
adb shell content read --user CURRENT_USER --uri
content://com.android.cts.verifier.testresultsprovider/reports/latest > report.zip如需列出所连接的设备中提供的所有报告,请运行以下命令:
adb shell content query --user CURRENT_USER --uri
content://com.android.cts.verifier.testresultsprovider/reports如需下载列表中的报告,您可以指定行 ID 或文件名。例如:
adb shell content read --user CURRENT_USER --uri
content://com.android.cts.verifier.testresultsprovider/reports/0 > report.zip
adb shell content read --user CURRENT_USER --uri
content://com.android.cts.verifier.testresultsprovider/reports/ctsVerifierReport-date-time.zip > report.zip
- 对于 Android 7.x 及更高版本,请使用以下命令下载所有报告:
- 如需清除通过/失败结果,请在 CTS 验证程序应用中选择这些结果,然后依次选择“Menu”>“Clear”。