从 Android 13 开始,Camera ITS 包括对折叠屏设备进行测试的支持。折叠屏设备具有一些摄像头,这些摄像头是否可用取决于设备是处于折叠状态还是展开状态。
摄像头 ID 会因设备类型、型号和品牌而异;物理前置摄像头的可用性也会因状态而异。因此,Camera ITS 会动态确定要用于测试的场景和摄像头组合。由于需要在折叠和展开状态下测试摄像头,因此折叠屏设备测试需要在测试过程中重新安装 DUT。
前置和后置摄像头测试
折叠屏设备上可用的摄像头传感器取决于设备是处于折叠状态还是展开状态。对于折叠屏设备,前置摄像头的可用性会因状态而异。例如,前置摄像头在折叠状态下不可用。由于前置摄像头的可用性发生这种变化,因此必须在折叠和展开状态下测试前置摄像头。Camera ITS 假定后置摄像头的可用性在设备折叠或展开时保持不变,因此后置摄像头只需测试一次。
根据设备的状态,Camera ITS 会滤除不可用的摄像头设备,并且这些摄像头设备不会显示在摄像头和场景组合列表中。
下表介绍了每种摄像头方向的 Camera ITS 测试行为。
摄像头方向 | Camera ITS 测试行为 |
---|---|
后置摄像头 | 在折叠或展开状态下测试摄像头一次 |
主前置摄像头 | 在折叠状态和展开状态下各测试摄像头一次。 |
物理前置摄像头 | 仅在摄像头可用的状态下测试摄像头。 |
测试步骤
本节介绍了测试折叠屏设备摄像头的步骤。
设置设备
有关设置信息,请参阅设置。
授予测试 API 访问权限
为了让 Camera ITS 确定设备是否为折叠屏设备,您必须在调用测试之前授予测试 API 访问权限。如果未授予访问权限,运行 Camera ITS 测试会导致应用崩溃。
要授予访问权限,请运行以下 ADB 命令。此命令只需针对单个设备运行一次。如果使用其他版本重新安装 CTS 验证程序,则必须再次运行该命令。
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
配置文件
要指定设备为折叠屏设备,请在 config.yml
文件中的 tablet
和 sensor_fusion
测试平台中添加 foldable_device
参数。Camera ITS 使用此参数来确定折叠和展开状态的 camera_id
和场景组合。
以下是折叠屏设备的 config.yml
文件示例。
TestBeds:
- Name: TABLET_SCENES
# Test configuration for scenes[0:4, 6]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "quotes" needed
chart_loc_arg: ""
camera: 0
scene: scene2_a
lighting_cntl: arduino # can be "arduino" or "None"
lighting_ch: 1
foldable_device: "True" # "False" for non-foldable DUTs
运行测试
要在折叠屏设备上运行 ITS 测试,请运行 run_all_tests.py
命令。有关详情,请参阅调用测试。
在折叠屏设备上运行 Camera ITS 时,主前置摄像头会在折叠和展开两种状态下进行测试。如果设备已折叠,结果会显示在 CTS 验证程序应用中的 camera1_SCENE_NAME_folded
选项下。根据设备状态,某些前置物理摄像头 ID 不可用,因此不会进行测试。后置摄像头只需在一个状态(最好是折叠状态)下进行测试,并且后置摄像头的结果没有 _folded
后缀。
要确保折叠场景是在设备折叠的情况下执行的并检查折叠屏 DUT 的状态,请运行以下命令。
adb shell cmd device_state state
在折叠状态下执行测试时,Camera ITS 会在终端中显示一条消息,提示用户在 ITS 箱上正确设置设备。要在提示后继续执行测试,请按 Enter 键。
如果您要在折叠和展开状态下运行所有场景,则先执行折叠场景,然后再执行展开场景。这样可以最大限度地减少测试期间所需的重新安装次数。
Camera ITS 还会将 folded
后缀添加到为折叠状态场景创建的 tmp
目录。
示例命令
以下是在折叠屏设备上执行测试的示例命令。
命令 | 说明 |
---|---|
python tools/run_all_tests.py |
运行所有场景。 |
python tools/run_all_tests.py scenes=scene0 |
运行 scene0。如果设备已折叠且用户正在测试主前置摄像头,则脚本会确定设备状态并在场景名称中添加后缀 _folded 。用户无需添加后缀即可运行折叠场景。 |
python tests/scene0/ |
运行特定测试。 |