使用 CTS 验证程序

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 路由器。该路由器应该能够断开与互联网的连接,但未关机。

NFC 测试的 UICC 要求

CTS 验证程序具有以下 NFC 测试用例:

  • 字段关闭(使用 0x54 中的事务数据)
  • 取消选择(使用 0x52 中的事务数据)
  • HCI 命令 (0025000000)(使用 0x02 中的事务数据)

事务事件测试需要两台设备,其中一台设备必须具有符合以下访问规则的 SecureElement UICC:

  • CtsVerifier APK 哈希:61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
  • 用于访问 NFC 事件的授权应用标识符 (AID):0xA000000476416E64726F696443545341

在模拟器端,我们希望事务事件将相应的 activity 推送到前台。

设置

将测试设备的系统导航模式更改为三按钮模式,如下所述:

  1. 打开“设置”。
  2. 依次转到系统 > 手势 > 系统导航
  3. 选择任何基于按钮的导航模式,首选三按钮模式(如果可用)。

如需设置 CTS 验证程序测试环境,请执行以下操作:

  1. 在 Linux 计算机上:

    • 在安装 CTS 验证程序之前运行以下命令,以允许访问非 SDK 接口。

      adb shell settings put global hidden_api_policy 1
      
    • 安装 Android Studio

    • 下载与受测 Android 版本匹配的 CTS 验证程序 APK

  2. 将 DUT 连接到 Linux 计算机。

  3. 通过 Linux 计算机上的终端,在 DUT 上安装 CtsVerifier.apk

    adb install -r -g CtsVerifier.apk
    
  4. 对于 Android 10 及更高版本,请运行以下命令以授予应用创建报告的权限。

    adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
    
  5. 对于 Android 11 及更高版本,请运行以下命令,以使得系统可以将报告保存到设备外部顶层目录下的自定义目录中。

    adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
    
  6. 对于 Android 13 及更高版本,请运行以下命令以向 CTS 验证程序授予测试 API 访问权限。

    adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
    
  7. 确保 DUT 的系统数据和时间已正确设置。

运行 CTS 验证程序

点按 DUT 上的 CTS 验证程序图标,启动 CTS 验证程序应用。

启动器中的 CTS 验证程序图标

图 1. CTS 验证程序图标

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

CTS 验证程序测试菜单

图 2. CTS 验证程序测试菜单

每项测试均包含一组共通的元素,这些元素位于屏幕底部。

流式视频品质验证程序

图 3. 突出显示常见测试元素的测试屏幕

  • 通过 (✓) - 如果 DUT 符合“信息”说明中规定的测试要求,请点按此按钮。
  • 信息 (?) - 点按即可显示测试说明。首次打开测试时,系统也会自动显示这些说明。
  • 失败 (!) - 如果 DUT 不符合“信息”说明中规定的测试要求,请点按此按钮。

一些测试(例如 USB 配件模式和相机校准测试)需要额外的测试设置和说明(详见以下各部分)。

CTS 验证程序 8.0 及更高版本中的 USB 配件模式测试

CTS 验证程序 USB 配件测试

图 4. CTS 验证程序 8.0 及更高版本中的 USB 配件测试程序

CTS 验证程序 USB 配件测试

图 5. CTS 验证程序 8.0 及更高版本中的 USB 配件模式测试

CTS 验证程序 7.x 及更低版本中的 USB 配件模式测试

为了运行 USB 配件测试,您需要配备一台 Linux 计算机来运行 USB 台式机(主机)程序。

  1. 将 DUT 连接到 Linux 计算机。
  2. 在计算机上,执行 CTS 验证程序软件包中的 cts-usb-accessory 程序:

    ./cts-usb-accessory
  3. 等待 DUT 上显示弹出消息,然后选择 OK
    CTS 验证程序 USB 配件测试

    图 6. USB 配件测试

  4. 转到 DUT 上 CTS 验证程序应用中的 USB 配件测试。

  5. 在计算机上,通过控制台查看输出信息。输出示例:

    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
    

校准相机视野范围

使用视野范围校准程序以适中的精确度快速确定设备的视野范围。

  1. 设置测试环境:

    1. 在尺寸为 11 x 17 英寸或 A3 的纸张上打印 calibration-pattern.pdf 目标文件。
    2. 将打印出来的图案贴在一个硬质底板上。
    3. 将相机设备和打印出来的目标按下图方位摆放。
      相机打印目标

      图 7. 相机打印目标

  2. 设置目标宽度:

    1. 测量目标图案上两条实线之间的距离(以厘米为单位),以计入打印误差(约 38 厘米)。
    2. 启动校准应用。
    3. 按设置按钮,然后选择“Marker distance”
    4. 测量并输入到目标图案的距离(大约 100 厘米)。
    5. 按后退按钮返回到校准预览。
  3. 检查设备和目标是否已放在图中所示的位置,以及是否在设置对话框中输入了正确的距离。在预览中,图像上会显示一条叠加的垂直线;该垂直线应与目标图案的中心线对齐。透明网格可与其他垂直线配合使用,以确保光轴与目标正交。

  4. 运行校准测试:

    1. 选择图像分辨率(使用左下角的选择器),然后点按屏幕拍摄照片。测试会进入校准模式,并且照片将显示叠加在图像上的两条垂直线。
    2. 确定精确度:
      • 如果这两条线与目标图案上的垂直线是对齐的(误差控制在几厘米之内),则针对选定分辨率报告的视野范围是准确的。
      • 如果没有对齐,则意味着所报告的视野范围不准确。 如要纠正这个问题,请调整屏幕底部的滑块,直到叠加的垂直线尽可能与目标图案对齐。当叠加的垂直线与目标图案图像对齐时,所显示的视野范围将接近于正确的值。所报告的视野范围与校准值的误差应在 +/-2 度范围内。
    3. 按返回按钮,对 DUT 所支持的所有图片分辨率执行上述校准测试操作。

针对替代模式运行 CTS 验证程序

从 CTS 10 R6 和 CTS 11 R2 版本开始,CTS 验证程序支持需要对具有替代模式或多种屏幕模式的设备进行的测试。

CTS 验证程序的主列表视图的顶部会显示一个按钮,用于在展开和折叠显示模式之间切换。CTS 验证程序将显示所选显示模式的必要测试。如需在 CTS 验证程序中执行替代模式,应将按钮切换到适当的显示模式并运行所显示的测试列表。

CTS-V 切换开关

系统会将在同一份报告中记录折叠模式测试和展开模式测试的结果。为了标识组成测试集的每项测试结果,系统会为折叠模式下的每个测试名称添加一个后缀。

<Test result="fail" name="com.android.cts.verifier.deskclock.DeskClockTestsActivity[folded]">
  <RunHistory subtest="CREATE_ALARM[folded]">
    <Run start="1594176663973" end="1594176665841" isAutomated="false" />
  </RunHistory>
</Test>

导出结果

完成所有测试后,您可以将结果另存为报告并下载到计算机上。报告名称会自动加上基于 DUT 系统时间的时间戳。

  1. 如需保存测试结果,请点按测试类别列表顶部的保存(磁盘)图标。

  2. 等待系统弹出显示已保存报告的文件路径(例如 /sdcard/verifierReports/ctsVerifierReport-date-time.zip)的消息,然后记下该路径。

  3. 将 DUT 连接到 Linux 计算机。

  4. 通过在 Linux 计算机上安装的 Android SDK,使用 adb shell content readadb pull CTSVerifierReportPath 在已连接的设备中下载报告。

    • 对于 Android 7.x 及更高版本,请使用以下命令下载所有报告:

      adb pull /sdcard/verifierReports
      
    • 对于 Android 6.0 及更低版本,请使用以下命令下载所有报告:

      adb pull /mnt/sdcard/ctsVerifierReports/
      
    • 对于 Android 10 及更高版本、实现 Automotive 以及以次要用户身份运行的设备,请使用以下命令下载最新报告:

      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
      
  5. 如需清除通过/失败结果,请在 CTS 验证程序应用中选择这些结果,然后依次选择“Menu”>“Clear”。