android cts测试方法及步骤 Android gts测试方法与步骤

Android10 CTS测试常见问题 记录Android10 CTS测试过程中碰到的问题及解决方案 阅读详情

CTS 是一个兼容性性测试工具。是Android TV 的必备条件。

CTS 是一个自动化测试工具,其中包括两个主要软件组件:

  • CTS tradefed 自动化测试框架会在桌面设备上运行,并管理测试执行情况。
  • 单独的测试用例会在被测设备 (DUT) 上执行。测试用例采用 Java 语言编写为 JUnit 测试,并打包为 Android .apk 文件,以在实际目标设备上运行。

CTS的主要测试模型如下:

这个图是官网上面来的。是CTS运行的主要流程。

在我做CTS测试的过程中,大概是遵照如下一个流程去测试的:

1、准备好你要测试的Android 系统

2、下载CTS 测试工具包

3、下面media测试包

4、配置好测试环境,测试用的服务器

5、进行CTS测试。根据报告重试fail项目。直到你得到一个干净的报告。

这个是一个比较费时的过程,Android 8.0的测试项目有74万多项。测试时间理论时间需要87个小时的样子。但实际上没有一个星期基本上得不到一个结果。测试时间会受到VPN网络的影响。机器跟服务器中断的影响等。

 

Android system的需求

首先你得拿到google的 认证。成为google partner。这样你会得到google的一个指引等等。这是另外一个话题。这里只说一下system的大概需求:首先必须是user模式编译。系统必须有一个device的usb口。需要有widewine playready hdcp2 的drm 等。

 

固件准备好了之后,你必须到google官网下载CTS 测试工具。这个是开放的。谁都能下载到:

https://source.android.com/compatibility/cts/downloads

cts测试工具之外还需要从官网下载media包。大概有4个g的样子,这样能节省你在跑CTS时候的时间。提前内置media,就不需要由盒子在测试过程中去下载媒体了。

 

这里比较重要的一点是服务器的搭建:

 

CTS currently supports 64-bit Linux and Mac OS host machines

google 推荐使用 ubuntu14.04系统。事实证明这个版本的Ubuntu跑起来也是最顺利的。其他版本都有各种中断或者其他小问题。

1、安装 Ubutnu 14.04

2、安装openjdk

3、安装Android SDK 可以参考:https://developer.android.com/studio/command-line/sdkmanager.html

4、配置adb的环境变量。这个比较重要。

google 有比较详细的说明:

参考网站:https://source.android.com/compatibility/cts/setup

 

服务器搭建好,接下来就是进行测试:

1、机器必须有唯一标识 也就是deviceID。

2、打开开发者模式,打开usbdebug 保持屏幕wake

3、把下载好的media包推进机器里面:进入media包 tools目录下面

运行拷贝脚本 ./copy_media.sh all

4、进入CTS 测试套件目录:进入tools目录 :

./cts-tradefed 运行进入cts测试命令行

然后:run cts 进行全模块测试

 

这样一个流程就可以进行cts 测试。在测试过程中有几个比较重要的命令可能会使用到:

 

help all

Display the complete list of available commands

 

这个是最重要的,这个命令可以让你看到所有的cts 命令帮助。一开始的时候,我就是通过这个了解到这些命令的

 

–retry

Retry all tests that failed or were not executed from the previous sessions. Use list results to get the session id.

run cts -r 0

 

cts 一定会中断,测试不会中断的肯定是上一百辈子都拯救了整个宇宙一万次。我跑过最顺利的一次cts用了一个星期,因为只跑了32bit的测试。最正常的加上调试一个多月没跑完的。

 

–module/-m [–module/-m …]

Run the specified test module or modules.

run cts -m module

 

这个命令也比较重要,因为cts测试过程中,可能会涉及到一些软件的更改。修改软件之后,验证是否成功,这个命令就比较有用个,他可以单独测试一个模块。

–abi

Force the test to run on the given ABI, 32 or 64. By default CTS runs a test once for each ABI the device supports.

 

这个命令简直是一个神一样的存在,对于一些64bit的机器。你跑直接run cts 他是需要跑 64bit 跟32bit的两份测试的。但是你加上 -abi 可以指定单独跑32bit 或者64bit的测试,相当于只需要一半的时间可以跑完cts的测试。

 

可能有些没有vpn的没有办法看到google上面的资料,下面是我从google网站上面抄下来的关于环境配置的一些东西:

 

设置 CTS

物理环境

蓝牙 LE 信标

如果 DUT 支持蓝牙 LE 功能,则应在与 DUT 的距离不超过五米的范围内放置至少三个蓝牙 LE 信标,以进行蓝牙 LE 扫描测试。这些信标可以为任何类型,不需要进行配置或发射任何特定信号,并且可以包括 iBeacon、Eddystone,甚至模拟 BLE 信标的设备。

GPS/GNSS

如果 DUT 支持全球定位系统 (GPS)/全球导航卫星系统 (GNSS) 功能,则应该以合适的信号电平向 DUT 提供 GPS/GNSS 信号(GPS 部分符合 ICD-GPS-200C 标准),以便其接收到相应信号并计算 GPS 位置。GPS/GNSS 信号源的种类不限(可以是卫星模拟器,也可以是室外 GPS/GNSS 信号中继器),只需将 DUT 放在距离窗口足够近的位置以使其可以直接接收到足够强的 GPS/GNSS 信号即可。

请注意:在进行 GPS 测试时,请确保互联网连接设置未屏蔽 supl.google.com 的 7276 端口的连接。该端口将用于下载 GPS 辅助数据,以便在本地设备上测试位置计算。

WLAN 和 IPv6

CTS 测试需要满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离客户端,并可以连接到互联网。隔离客户端是一种配置,可使 DUT 无法接收子网络上的广播/多网消息;这种配置可通过 WLAN AP 配置或通过在未连接其他设备的隔离子网络上运行 DUT 来实现。

如果您无法访问原生 IPv6 网络、IPv6 运营商网络或 IPv6 VPN,以致无法通过基于 IPv6 的一些测试,则可以改为使用 WLAN 接入点和 IPv6 隧道。请参阅维基百科 IPv6 隧道代理列表。

台式机设置

注意:CTS 目前支持 64 位 Linux 和 Mac OS 主机。CTS 无法在 Windows 操作系统上运行。

ADB 和 AAPT

在运行 CTS 之前,请确保您已安装最新版本的 Android 调试桥 (adb) 和 Android 资源打包工具 (AAPT),并将这些工具的位置添加到计算机的系统路径中。

要安装 ADB,请下载适用于您的操作系统的 Android SDK 工具包,打开它,然后按照附带的 README 文件中的说明进行操作。要了解问题排查相关信息,请参阅安装独立 SDK 工具。

确保 adb 和 aapt 位于您的系统路径下。以下命令假定您已在主目录中打开了软件包归档文件:


export PATH=$PATH:$HOME/android-sdk-linux/build-tools/<version>

注意:请确保起始路径和目录名称均准确无误。

Java 开发套件 (JDK)

安装正确版本的 Java 开发套件 (JDK)。对于 Android 7.0 -

如需了解详情,请参阅 JDK 要求。

CTS 文件

下载并打开与您设备的 Android 版本以及您的设备支持的所有应用二进制接口 (ABI) 相匹配的 CTS 包。

下载并打开最新版本的 CTS 媒体文件。

设备检测

请按照相应的步骤设置您的系统以检测设备,例如为 Ubuntu Linux 创建 udev 规则文件。

Android 设备设置

用户版本

兼容的设备被定义为具有 user/release-key 签名版本的设备,因此您的设备应运行基于代号、标签和版本号中已知兼容的用户版本(Android 4.0 及更高版本)的系统映像。

注意:使用 CTS 确认最终系统映像的 Android 兼容性时,您必须在具有用户版本的设备上执行 CTS。

初始 API 级别版本属性

某些 CTS 要求取决于设备最初搭载的版本。例如,如果设备最初搭载的是较低的版本,则不一定需要遵循适用于搭载较高版本的设备的系统要求。

为了保证 CTS 可读取到这些信息,设备制造商可以定义编译时属性:ro.product.first_api_level。该属性的值是对该设备进行商业化发布时所采用的初始 API 级别。

OEM 可以将 PRODUCT_PROPERTY_OVERRIDES 添加到其 device.mk 文件以设置这项属性,具体如以下示例所示:

#ro.product.first_api_level indicates the first api level, device has been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_api_level=21

注意:对于产品的第一个版本,ro.product.first_api_level 属性应未设置 (0);而对于所有后续版本,该属性应设置为正确的 API 级别值。通过这种方式,该属性可以正确标识新产品,而且我们不会丢失任何关于产品初始 API 级别的信息(值为 0 意味着 ro.product.first_api_level = Build.VERSION.SDK_INT)。

CTS Shim 应用

Android 7.0 包含以下预编译的应用(根据此处的源代码编译),这些应用不包含除清单以外的任何代码:

CTS 会使用这些应用来测试特权和权限。要通过测试,您必须将应用预加载到系统映像上的相应目录下,但不能对它们重新签名。

存储空间要求

CTS 媒体压力测试要求将视频剪辑存放在外部存储设备 (/sdcard) 上。大部分剪辑来自 Big Buck Bunny,其版权归 Blender Foundation 所有并采用 Creative Commons Attribution 3.0 许可。

所需空间取决于设备支持的最高视频播放分辨率(要查看所需分辨率的平台版本,请参阅兼容性定义文档中的第 5 部分)。请注意,被测设备的视频播放功能将通过 android.media.CamcorderProfile API(针对早期 Android 版本)和 android.media.MediaCodecInfo.CodecCapabilities API(针对 Android 5.0)进行检测。

以下是按最大视频播放分辨率列出的存储空间要求:

  • 480x360:98 MB
  • 720x480:193 MB
  • 1280x720:606 MB
  • 1920x1080:1863 MB

屏幕和存储空间

  1. 任何没有嵌入式屏幕的设备一律需要连接到屏幕。
  2. 如果设备具有存储卡插槽,请插入空的 SD 卡。请使用支持超高速 (UHS) 总线且具有 SDHC 或 SDXC 容量的 SD 卡,或使用至少具有 Class 10 速度的 SD 卡,以确保设备能够通过 CTS。

    警告:CTS 可能会修改/清空插入设备的 SD 卡上的数据。

  3. 如果设备具有 SIM 卡插槽,请将激活的 SIM 卡插入每个插槽。如果设备支持短信,则应填充每个 SIM 卡的号码字段。

开发者 UICC

为了执行 CTS 运营商 API 测试,该设备需要使用运营商授权的 SIM 卡。请参阅准备 UICC。

Android 设备配置

  1. 将设备恢复出厂设置:设置 > 备份和重置 > 恢复出厂设置

    警告:这将清空设备中的所有用户数据。

  2. 将设备的语言设置为英语(美国):设置 > 语言和输入法 > 语言
  3. 如果设备具有 GPS 或 WLAN/移动网络功能,则打开位置信息设置:设置 > 位置信息 > 开启
  4. 连接到满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离的客户端(请参阅上文的物理环境部分),并可连接到互联网:设置 > WLAN
  5. 确保设备上未设置锁定图案或密码:设置 > 安全 > 屏幕锁定 > 无
  6. 在设备上启用 USB 调试:设置 > 开发者选项 > USB 调试。

    注意:在 Android 4.2 及更高版本中,默认情况下会隐藏开发者选项。要显示这些选项,请依次转到设置 > 关于手机,然后点按版本号七次。返回上一屏幕以查找开发者选项。要查看其他详细信息,请参阅启用设备上的开发者选项。

  7. 确保将时间设置为 12 小时格式:设置 > 日期和时间 > 使用 24 小时制 > 关闭
  8. 依次选择:设置 > 开发者选项 > 不锁定屏幕 > 开启
  9. 依次选择:设置 > 开发者选项 > 允许模拟位置 > 开启

    注意:此模拟位置设置仅适用于 Android 5.x 和 4.4.x。

  10. 依次选择:设置 > 开发者选项 > 通过 USB 验证应用 > 关闭

    注意:此验证应用步骤在 Android 4.2 中为必需步骤。

  11. 启动浏览器并关闭任何启动/设置屏幕。
  12. 使用 USB 数据线连接用于测试设备的台式机

    注意:将运行 Android 4.2.2 或更高版本的设备连接到计算机时,系统会显示一个对话框,询问您是否接受允许通过此计算机进行调试的 RSA 密钥。选择“允许 USB 调试”。

  13. 在设备上安装和配置帮助程序应用。

    注意:对于 CTS 版本 2.1 R2 至 4.2 R4,请通过以下命令设置您的设备(或模拟器),以便执行无障碍测试:
    adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
    在设备上,依次启用:设置 > 无障碍 > 无障碍 > Delegating Accessibility Service

    注意:对于 7.0 之前的 CTS 版本,请在声明 android.software.device_admin 的设备上,使用以下命令设置您的设备,以便执行设备管理测试:
    adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk

    依次选择“设置”>“安全”>“设备管理器”,然后启用两个 android.deviceadmin.cts.CtsDeviceAdminReceiver* 设备管理器。确保 android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver 和任何其他预加载的设备管理器均保持停用状态。

  14. 将 CTS 媒体文件复制到设备上,如下所示:

    注意:对于 CTS 2.3 R12 及更高版本,如果设备支持视频编解码器,则必须将 CTS 媒体文件复制到设备上。

    • 导航 (cd) 到下载并解压缩媒体文件的目标路径。
    • 更改文件权限:chmod u+x copy_media.sh
    • 运行 copy_media.sh:
      • 要复制分辨率不超过 720x480 的剪辑,请运行:./copy_media.sh 720x480
      • 如果您不确定最大分辨率,请尝试运行 ./copy_media.sh all,以便复制所有文件。
      • 如果 adb 下有多个设备,请将 -s(序列号)选项添加到末尾。例如,要将分辨率不超过 720x480 的文件复制到序列号为 1234567 的设备,请运行:./copy_media.sh 720x480 -s 1234567

 

 

 

 

 

 

Camrea测试-- CTS测试 1、名词解释 2、环境准备 3、测试步骤 4、view失败项 阅读详情

相关推荐

CTS,GTS,CTS Verifier失败项总结(持续更新)

在CTS,GTS,CTS Verifier测试中经常会遇到许多问题,需要寻找相应的解决方法以便通过测试,出来IP V6及Google 豁免项外不允许出现其他问题。那么其他问题通常又会是由以下一些原因导致的。 软件问题(软件人员配置或是定制Framework导致) 驱动问题(如Camera2问题) 测试方法问题 网络问题(有些项需要使用静态ip地址测试,有些需要使用动态ip) 签名问题(找软件帮忙)

宿罪的博客 9380

CTS/GTS/STS/VTS/CTS-Verifier

CTS/GTS/STS/VTS/CTS-Verifier 知识点,未完成的草稿

李予浙的博客 1万+

CTS分析思路

Cts环境搭建和测试方法,大家可以自行查询网上资料。

风和先行的专栏 951

设置 CTS

设置 CTS物理环境蓝牙 LE 信标如果 DUT 支持蓝牙 LE 功能,则应在与 DUT 的距离不超过五米的范围内放置至少三个蓝牙 LE 信标,以进行蓝牙 LE 扫描测试。这些信标可以为任何类型,不需要进行配置或发射任何特定信号,并且可以包括 iBeacon、Eddystone,甚至模拟 BLE 信标的设备。GPS/GNSS如果 DUT 支持全球定位系统 (GPS)/全球导航卫星系统 (GNSS)...

面向未来 2637

Google XTS TV认证测试经验总结

销往海外的Android电视,若想使用Google的应用程序和服务,如YouTube、Gmail、Google Play Store等,必须通过此认证,获得Google授权。此贴详细介绍了Google XTS认证的环境搭建及测试方法。

weixin_41982551的博客 4196

从VTS到CTS:一文读懂Android系统兼容性测试的“前世今生”与实战命令

本文深入解析Android系统兼容性测试从VTS到CTS的技术演进与实战应用,涵盖XTS测试体系的核心原理、命令操作及测试环境搭建。通过详细的技术架构分析和实用命令示例,帮助开发者高效实施兼容性测试,确保设备符合Android生态标准。

weixin_30279671的博客 529

android CTS/GTS---常用测试命令

android CTS/GTS---常用测试命令

gujinf2008的专栏 4078

使用am instrument验证CTS问题

【前言】CTS 测试某个testcase常用的测试方法:CTS tool or atest都可以满足,选哪个使用要结合当前开发测试环境,这里简单介绍另一种方法:instrumentation,详细介绍参考:https://source.android.google.cn/compatibility/tests/development/instrumentation 【使用】 adb install “cts apk“ adbshell pm list instrumentation,列出来的结果填在.

平凡之路 3974

CTS、CTS-V、GTS版本更新,及其注意事项

更新频率 Name Freq CTS 每月更新 CTS-V 随CTS更新 GTS 不定期,3-6更新一次 Media Files 不定期,发布后需要使用最新版的Media Files CTS下载地址https://source.android.com/compatibility/cts/downloads?hl=zh-cn (国内,版本比较旧) https:

*持续学习* 2914

Android TV CTS 测试认证汇总

CTS兼容性测试的主要目的和意义在于使得用户在Android系统的应用过程中,有更好的用户体验,并展现出Android系统的优越特性;使得Android应用程序编写者更容易编写高质量的应用程序;充分展现Android Market的优势,让获得CTS认证的终端得到Android Market的使用许可。

学无止境 9173

Android的xTS测试概览解析:CTS、VTS、GTS等

Android拥有数十亿的设备,其成功归功于其对兼容性的承诺。这意味着为一个Android手机设计的应用程序通常应该在另一个上正常工作,即使它们具有非常不同的硬件。这种兼容性不是偶然的;它是通过广泛的测试精心设计的。xTS测试套件在这个过程中起着关键作用。

虎哥LoveDroid 3182

CTS(2)---CTS、CTS-V、GTS版本更新,及其注意事项

CTS、CTS-V、GTS版本更新,及其注意事项阅读数:354更新频率NameFreqCTS每月更新CTS-V随CTS更新GTS不定期,3-6更新一次Media Files不定期,发布后需要使用最新版的Media FilesCTS下载地址https://source.android.com/compatibility/cts/downloads?hl=zh-cn (国内,版本比较旧) https:...

zhangbijun1230的专栏 1128

Xilinx-复旦微-FPGA-眼图BlockDesign系统制作-针对PCIE系统

XIlinx-复旦微电子-FPGA-眼图BlockDesign系统制作-针对PCIE系统,手把手教你如何建立眼图测试

weixin_43444334的博客 2588

Windows CTS环境的安装

1.  准备JDK,CTS package,android SDK for windows 我用的是JDK:1.6.0_29 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html (或者直接去oracal官网下载需要的jdk版本) CTS下载地址:http://source.android.com

qq_20288995的博客 1304

LAN8720芯片硬件设计避坑指南:从晶振选择到PHY地址配置的5个关键细节

本文深入解析LAN8720以太网PHY芯片硬件设计的五个关键细节,涵盖晶振模式选择、PHY地址配置、复位电路设计、电源滤波与接口布线。重点阐述了REF_CLK Out与REF_CLK In两种时钟模式的配置逻辑与应用场景,提供了避免通信失败与信号完整性问题的实战方案,是嵌入式网络硬件开发的实用避坑指南。

i1j2k的博客 508

从生成到检测:全面解析Deepfake技术的演进与对抗策略

本文全面解析了Deepfake技术的演进与对抗策略,从GAN生成技术到先进的检测手段,探讨了其在娱乐与安全领域的双重影响。文章详细介绍了Deepfake的核心原理、技术迭代关键节点以及最新的检测方法,揭示了AI生成与识别的激烈博弈。同时,展望了量子计算和生物特征认证在未来攻防战中的潜在应用。

jenkins8butler的博客 248

Android CTS 测试

CTS 全称(Compatibility Test Suite),兼容性测试工具,GTS全称Google Mobile Services Test Suite,主要用来测试google服务。这里我记录一下自己工作中的经验。 在做CTS之前,要先做到下面几条。 手机手机安全要打开,不要锁定屏幕:设置->安全->屏幕锁定方式-> 设置为“无” 手机不能休眠: 设置->开发人员选项-> 不锁定屏幕

armwind的专栏 7175

AFE芯片做什么用的?AFE(Analog Front End) 模拟前端

AFE采样精度的影响因素非常多,需要综合考虑各种因素,并根据实际应用场景来选择合适的参数和方法。通过减少噪声、提高采样频率、调节放大器增益、降低电源噪声、优化传输线路、进行温度补偿、选择合适的ADC分辨率、根据信号类型选择合适的AFE参数、进行器件匹配和校准等方法,可以提高AFE的采样精度,从而更好地满足各种应用需求。版权声明:本文为CSDN博主「czf.Forver」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

学海无涯的专栏 4万+

Android Google XTS

GMS全称为Google Mobile Service,即谷歌移动服务。GMS是Google开发并推动Android的动力,是Google提供的Mobile Device上的一系列应用服务。

qq_27672101的博客 2098

避坑指南:海康MV_CC_SetIntValue接口的7个典型报错解决方案

本文深度解析海康工业相机SDK中MV_CC_SetIntValue接口的典型报错,提供7个实战解决方案。针对MV_E_CALLORDER、MV_E_PARAMETER等高频错误码,从设备状态、参数值域、依赖关系等核心约束入手,给出清晰的诊断流程与根治代码,帮助开发者构建健壮的参数设置模块,提升开发效率。

y2z3a4b5c的博客 1068

esp32移植canopen协议栈(二)

本文续接上一篇文章,之前我们已经搭建好了esp32的开发环境,以及初始工程。接下来我们开始实现can驱动相关,以及使用c++封装can接口。本文使用esp32实现c++实现can驱动层的封装。下一步移植canopen!!!嘻嘻。

qq_50267418的博客 1897

手机蓝牙兼容性测试框架与用例

# 手机蓝牙兼容性测试框架与用例 在移动应用与智能硬件深度耦合的今天,蓝牙连接的稳定性与跨设备互操作性直接决定用户体验。**优测(UTest 腾讯优测)**作为一站式云测试平台,提供覆盖 Android、iOS 与跨平台的蓝牙兼容性自动化测试能力,依托真机实验室与标准测试用例库,可帮助企业快速搭建并落地蓝牙连接稳定性与互操作性验证体系。本文旨在帮助您建立一套可落地的蓝牙兼容性测试思路,并同步呈现

2501_92406411的博客 247

【AI智能体】Codex 高级进阶使用技巧项目实战操作详解

Codex 高级进阶使用技巧项目实战操作详解

congge 1万+
上一篇: ddr原理 ddr3详解
下一篇: android o android 8.0 cts on aosp cts on gsi 测试 ATV cts 测试
v我:13692207637
博客等级 码龄18年 61粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值