在执行自动化 CTS 测试之前,请准备物理环境、设置工作站并配置您要测试的设备。
设置物理环境
某些 CTS 测试要求在 DUT 附近使用外部设备进行设置。如需设置物理环境,请执行以下操作:
- (可选)如果您的 DUT 支持蓝牙 LE,请在 DUT 周围 5 米内放置至少三个蓝牙 LE 信标,以便进行蓝牙 LE 扫描测试。此外: - 这些信标不需要进行配置或者发射特定信号。
- 信标的种类不限,可以是 iBeacon、Eddystone,甚至可以是模拟 BLE 信标的设备。
 
- 将手机放置在场景(例如墙或天花板)前,距离与 DUT 的最小对焦距离相等。此外: - 场景中必须光线充足,以使被测传感器达到并维持在 CONTROL_AE_TARGET_FPS_RANGE中指定的最高配置目标每秒帧数 (FPS)。
- 这种设置适用于 getCameraIdList报告的所有相机传感器,因为测试会循环访问列出的所有设备并逐个测评其性能。
- 如果 DUT 支持外部相机(如 USB 摄像头),请在运行 CTS 时插上外部相机。否则,CTS 测试将失败。
 
- 场景中必须光线充足,以使被测传感器达到并维持在 
- (可选)如果您的 DUT 支持全球定位系统 (GPS) 或其他全球导航卫星系统 (GNSS),请以合适的信号电平向 DUT 提供 GNSS 信号,以便其接收到相应信号并计算位置。此外: - GPS 必须符合 ICD-GPS-200C 标准。
- GNSS 信号种类不限(可以是卫星模拟器或者室外信号中继器)。
- 您可将 DUT 放在靠近窗户的位置,以便它能直接收到足够强的 GNSS 卫星信号。
 
- 确保您的 Wi-Fi 网络支持 IPv4 和 IPv6,可连接到互联网,具有适用于 IPv4 和 IPv6 的 DNS,支持 IP 多播,且可将 DUT 视为独立客户端。 - 如果您无法访问原生 IPv6 网络、IPv6 运营商网络或 VPN,导致无法通过 IPv6 测试,请使用 Wi-Fi AP 和 IPv6 隧道。 
- 确保 DUT 的 Wi-Fi 接口设有 - UP、- BROADCAST和- MULTICAST标志。
- 确保 Wi-Fi 接口已获配 IPv4 和 IPv6 地址。如需检查 Wi-Fi 接口属性,请运行 - adb shell ifconfig。
- (可选)如果您的 DUT 支持 Wi-Fi STA 或 STA 并发,请至少设置 2 个 Wi-Fi 网络。这些 Wi-Fi 网络必须在具有不同 SSID 的不同频段上运行,或在具有不同 BSSID 的同一 SSID 上运行。 
- (可选)如果您的 DUT 支持 Wi-Fi 往返时间 (RTT),请设置支持 Wi-Fi RTT 的设备: - 将 Wi-Fi RTT 设备放置在距离 DUT 不超过 40 英尺的位置。
- 为 Wi-Fi RTT 设备接通电源。
 - 我们推荐两款支持 Wi-Fi RTT 的设备: - Google Wifi - Compulab 的 Fitlet2 接入点(使用 5 GHz 频段,带宽设为 40 MHz)。 
设置桌面设备
在运行自动化 CTS 测试之前,请确保您的桌面设备满足硬件和操作系统要求,并且安装了适当的软件,如以下部分所述。
满足硬件要求
您的 CTS 桌面设备应该达到或超出以下硬件要求:
- 一个 64 位 x86 系统 
- 至少 256 GB 的可用磁盘空间,以满足 CTS 测试用例数量的增加以及 Tradefed 中 Java 堆空间预留量增大的要求 
- 至少 32 GB RAM 
满足操作系统要求
您的开发机器必须运行采用 GNU C 库 (glibc) 2.17 或更高版本的 64 位 Linux 发行版。
安装桌面软件
如需为 CTS 安装适当的桌面软件,请执行以下操作:
- 安装最新版本的 Android 调试桥 (adb) 和 Android 资源打包工具 (AAPT2),并将这两个工具的位置信息添加到计算机的系统路径中: - 按照 SDK 管理器文档开头的说明安装 sdkmanager命令行工具。命令行工具下载链接位于 Android Studio 下载页面底部的仅限命令行工具部分中。
- 更新系统路径,以包含新安装的 sdkmanager的位置。
- 使用 sdkmanager命令安装最新的platform-tools和build-tools软件包。这些软件包包含 adb 和 AAPT2。如需了解如何安装软件包,请参阅安装软件包。
- 更新路径,以包含新安装的 adb 和 AAPT2 工具的位置。
- 确认 adb 和 AAPT2 是否位于您的路径中。
 
- 按照 SDK 管理器文档开头的说明安装 
- 安装正确版本的 Java 开发套件 (JDK): - 对于 Android 11 或更高版本,请安装 JDK 11。
- 对于 Android 10 或更低版本,请参阅设置 CTS(AOSP 10 或更低版本)。
 
- (可选)对于 Android 13 或更高版本,请安装 virtualenv。多设备测试需要使用 virtualenv 工具。 
- 如需确保 Python 已正确安装,请输入 - python3。系统应该会显示 Python 版本和日期,以指明 Python 已正确安装。
- 从兼容性测试套件下载页面下载与您设备的 Android 版本以及您设备支持的所有应用二进制接口 (ABI) 相匹配的 CTS 软件包,并将其打开。 
- 下载并打开最新版本的 CTS 媒体文件。 媒体文件包括来自 Big Buck Bunny 的视频剪辑,剪辑版权归 Blender Foundation 所有并采用知识共享署名 3.0 许可。 
- (可选)首次运行 CTS 时,CTS 会动态下载一些与 Mainline 相关的 CTS 文件。此下载操作会使 CTS 运行时间增加 10 分钟或更久,具体取决于您的网速。 - 如要避免上述增加的 CTS 运行时间,您可按照以下说明,在运行 CTS 之前下载 Mainline 相关 CTS 文件。如需了解如何下载 Mainline 相关 CTS 文件,请参阅下载 Mainline 相关 CTS 文件。 
准备 DUT
设置桌面设备后,您必须设置和配置 DUT。
设置 DUT
要设置 DUT,请执行以下操作:
- 确保 DUT 运行的系统映像基于代号、标记和 build 号中已知兼容用户 build(Android 4.0 或更高版本),并使用 - userbuild 变体。如需详细了解 build 变体,请参阅选择目标。
- 如果 DUT 搭载的是 Android 13 或更高版本,请确保 build 已将 - ro.product.first_api_level设置为设备在商业化发布时采用的 API 级别。如需设置此值,请对- device.mk文件进行以下更改:- PRODUCT_SHIPPING_API_LEVEL := 21- 某些 CTS 要求取决于设备最初搭载的 build。例如,如果设备最初搭载的是较低的 build,可能就不需要遵循适用于搭载较高 build 的设备的系统要求。如需了解有效的 API 级别值,请参阅代号、标记和 build 号。如需详细了解 - ro.product.first_api_level,请参阅供应商 API 级别。- 对于 Android 10 或更低版本,请参阅设置 CTS(AOSP 10 或更低版本)。 
- 如果您的设备支持 APEX 软件包管理,请执行以下操作: - 下载适用于特定 Android 版本和硬件架构的 APEX shim 软件包。shim 软件包表格中左侧的两列提供了指向所要下载的软件包的链接。
- 将下载好的软件包复制到 /system/apex。
- 将文件重命名为 com.android.apex.cts.shim.apex。
 
- 如果您的设备不支持 APEX 软件包管理: - 下载适用于特定 Android 版本和硬件架构的 APEX shim 软件包。shim 软件包表格中右侧的两列提供了指向所要下载的软件包的链接。
- 将 CtsShim.apk复制到/system/app/
- 将 CtsShim.apk重命名为CtsShimPrebuilt.apk
- 将 CtsShimPriv.apk复制到/system/priv-app/
- 将 CtsShimPriv.apk重命名为CtsShimPrivPrebuilt.apk
 
- 如果您的设备报告了多个安全元件: - 下载 google-cardlet.cap。
- 将下载的文件复制到 /data/uicc/cardlets/。
 
- 下载 
- 如果您的设备报告存在多个安全元件,请将示例小程序安装到 DUT 的嵌入式安全元件 (eSE) 或 DUT 所使用的 SIM 卡中。如需了解详情,请参阅针对安全元件的 CTS 测试。 
- 如果您的设备没有嵌入式屏幕,请将一个屏幕连接到设备。 
- 如果设备具有存储卡插槽,请插入空的 SD 卡。 请使用支持超高速 (UHS) 总线且具有 SDHC 或 SDXC 容量的 SD 卡,或速度不低于 Class 10 的 SD 卡,以确保设备能通过 CTS 测试。 
- 如果设备有 SIM 卡插槽,请在每个插槽中插入一张已激活的 SIM 卡。如果设备支持短信,必须填充每个 SIM 卡的号码字段。对于搭载 Android 12 或更高版本的设备,所有 SIM 卡都必须支持存储缩位拨号 (ADN) 号码。具有电信专用文件 (DFTelecom) 的 GSM 和 USIM 卡满足此要求。 
- 确保您的设备有具备 CTS 运营商权限的 SIM 卡,且该 SIM 卡满足准备 UICC 中规定的要求。 
配置 DUT
按照以下步骤配置 DUT,以便与 CTS 搭配使用。
在 DUT 上:
- 将设备恢复出厂设置。 
- 将设备的语言设置为 English (United States)。 
- 如果设备支持自定义默认字体,请确保默认 sans-serif 字体系列设置为 Roboto。 
- 如果设备具有 GPS 或 WLAN/移动网络功能,请开启位置信息设置。 
- 连接到满足以下要求的 Wi-Fi 网络:支持 IPv6、可将 DUT 视为独立客户端,且可连接到互联网。如需获取有关独立客户端的说明,请参阅设置物理环境。 
- 确保设备未设置锁屏图案或密码。 
- 启用 USB 调试: - 依次前往设置 > 关于手机,然后点按 build 号 7 次。开发者选项会显示在系统设置类别中。 
- 点按 USB 调试。 
 - 若要在 Android 10 或更低版本中启用 USB 调试,请参阅设置 CTS(AOSP 10 或更低版本)。 
- 将时间设置为 12 小时制。 
- 启用开发者选项 > 不锁定屏幕。 
- 停用 USB 应用验证功能: - 前往开发者选项。 
- 点按验证通过 USB 安装的应用。 
 
- 在 Android 13 或更高版本中,启用模拟调制解调器: - 前往开发者选项。 
- 点按允许运行模拟调制解调器。 
 - 特定的电话测试需要启用此设置。 
在桌面设备上,执行以下操作:
- 启动浏览器并关闭任何启动/设置屏幕。 
- 使用 USB 线将 DUT 连接到桌面设备。 
- 如果系统提示您接受允许通过此计算机进行调试的 RSA 密钥,请点击允许 USB 调试。 
- 使用可供用户访问(非隐藏)的设置将 Roboto2 设置为 Sans Serif 字体。 
- 将 CTS 媒体文件复制到 DUT: - 导航 (cd) 到下载并解压缩媒体文件的目标路径。
- 更改文件权限: - chmod u+x copy_media.sh
- 复制以下文件: - 如需复制分辨率最高为 720x480 的剪辑,请运行以下命令: - ./copy_media.sh 720x480
- 如果您不确定最大分辨率,请复制所有文件: - ./copy_media.sh all
- 如果有多部 DUT,请在末尾添加特定设备的序列号选项 ( - -s)。例如,如需将分辨率最高为 720x480 的文件复制到序列号为 1234567 的设备,请运行以下命令:- ./copy_media.sh 720x480 -s 1234567
 
 
- 导航 (
下载 Mainline 相关 CTS 文件
如需下载 Mainline 相关 CTS 文件,请执行以下操作:
- 通过运行以下命令,获取设备上的 Android API 级别: - adb shell getprop ro.build.version.sdk
- 按照 - download_mcts.sh脚本中的说明下载 Mainline CTS 文件。- 下载过程至少需要 10 分钟,具体取决于您的网络速度。 
shim 软件包
下表列出了适用于各种设备版本和架构的软件包:
| 设备版本 | 软件包(如果支持 APEX) | 软件包(如果不支持 APEX) | ||
|---|---|---|---|---|
| ARM | x86 | ARM | x86 | |
| Android 15 | 15-arm-release | 
   android15-x86-release | 
   android15-arm-CtsShim.apk | 
   android15-x86-CtsShim.apk | 
| Android 14 | 
   android14-arm-release | 
   android14-x86-release | 
   android14-arm-CtsShim.apk | 
   android14-x86-CtsShim.apk | 
| Android 13 | 
   android13-arm-release | 
   android13-x86-release | 
   android13-arm-CtsShim.apk | 
   android13-x86-CtsShim.apk | 
| Android 12 | 
   android12-arm-release | 
   android12-x86-release | 
   android12-arm-CtsShim.apk | 
   android12-x86-CtsShim.apk | 
| Android 11 | android11-arm-release | android11-x86-release | android11-arm-CtsShim.apk | 
   android11-x86-CtsShim.apk | 
| Android 10 | 
   android10-release | 
   android10-arm-CtsShim.apk | 
   android10-x86-CtsShim.apk | |
| Android 9、O 和 O-MR1 | 不适用 | 不适用 | 
   arm-CtsShim.apk | 
   x86-CtsShim.apk | 
后续操作
读完本文档后,请继续阅读运行自动化 CTS 测试。
