【安卓】安卓xTS之Media模块 学习笔记(1) xTS介绍

1.背景

Media的安卓xTS相关测试和功能修复已经进行了一段时间了。

在此整理总结下xTS工作总结,留待后续查阅整理。

2. xTS介绍 - 什么是xTS

谷歌的xTS是对谷歌发布的CTS/GTS/VTS/STS/BTS/CTS-on-GSI等一系列测试的统称。

因为安卓系统比较庞大,模块多,并且维护者、参与厂家、贡献者都很多。

为了确保安卓系统的正常功能,谷歌发布了xTS测试系统。

作为安卓的伴生测试系统,xTS为安卓内部各个模块各个层级提供了大量的测试用例,用以维护安卓的兼容性和功能正确。

2.1 CTS

介绍

CTS(Compatibility Test Suite)是Android设备的兼容性测试,主要测试apk与framwork之间的兼容性,测试Android设备是否符合Android系统的兼容性要求。

CTS测试包括_CTS基本测试_和_CTS Verifier测试_两部分,后者是前者的补充,CTS检查的是API和功能,而CTS Verifier是测试在静态设备上测试无法自动测试的API和功能,例如音频质量,触摸屏,加速度计,相机等等

在CTS测试中,会运行和安装一系列dex和APK文件,模拟不同的场景,测试Android标准的接口是否正常返回。通过CTS测试的设备可以获得Android的商标,并享受Android Market的权限。

CTS是xTS测试中比较重要的一项,且测试内容比较全面,case数量众多。CTS会模拟apk的各种行为来测试framework的接口。

CTS的通过意味着基本可以提供安卓系统所要求的功能,在这个系统上,通用的apk都可以正常运行。

测试内容

这个表列的比较详细了,包含签名,接口测试,Dalvik虚拟机 等等,测的是比较详细的。

部署方式

简单介绍下CTS的部署情况,在PC主机上下载CTS测试套件。PC主机最好是linux,谷歌原生支持,如果是windows就需要做一些魔改才能实现。

然后通过USB连接安卓待测设备。

然后在PC主机上安装依赖的环境(AAPT、JDK、ADB......),之后运行CTS Trade Federation自动化测试框架,CTS会从测试包里通过ADB push 一些测试软件(单独的测试用例是用java语言编写的JUnit测试,并打包成Android.apk)和资源文件到安卓待测机中,并进行运行。

运行过程中,PC主机会实时的去监控一些状态,抓取logcat等日志。

等待测试完成后,通过ADB把测试结果抓出来。

CTS的测试包可以自行编译,或从安卓官网下载 (媒体测试需要另外下载 CTS媒体测试包)

2.2 VTS

VTS(vendor test suite),意为供应商测试套件。主要测试Framework与Vendor的HAL层实现之间的兼容性,主要通过AIDL或者HIDL接口。

如图所示,VTS主要测试的是Framework到vendor这一层的接口。

vendor这一层的实现主要是芯片厂家维护,通过AIDL/HIDl接口供Framework调用的。

VTS的测试没有CTS那么全面,VTS的更多的是测试一下vendor接口和少量功能,可以看做是CTS的基础吧。VTS能通过,代表vendor已经提供了最基础的功能接口(接口里的功能是否正确还不确定,至少是接口已经有了)

2.3 GTS

GTS(Google Test Suite)是Google为Android设备提供的测试套件,主要是为了测试Android设备是否符合Google的服务要求。在GTS测试中,会测试Google的各种服务,如Google Play商店、Google地图、YouTube等,以确保这些服务在Android设备上能够正常运行。GTS测试旨在保证Android设备能够提供最佳的用户体验,并确保Google的服务能够在各种设备上稳定运行。

2.4 NTS

对于TV类型的产品,除了上述的VTS、CTS和GTS测试外,还需要进行Netflix认证(NTS)。NTS认证主要是为了确保Android设备的硬件和软件都符合Netflix的要求,以保证用户在使用Netflix应用时能够获得最佳的观影体验。

2.5 STS

STS(Android Security Test Suite)是谷歌关于android安全补丁安装情况的一个测试套件STS和security patch相关的,是CTS测试新增加一项安全测试套件。

2.6 GSI

GSI(Generic system image)--- Reference AOSP system image通用系统映像上的兼容性测试套件

这个文件包也是签约获取授权后才能获取,Google也会定期更新GSI包Android O要求测试VTS和CTS on GSI,此时对应版本必须是GSI版本,测试包都为VTS。

2.7 其他

3. 参考文档

4. 系列

相关推荐
wuwu_q几秒前
用通俗易懂 + Android 开发实战的方式讲解 Kotlin Flow 中的 filter 操作符
android·开发语言·kotlin
li星野几秒前
打工人日报#20251109
笔记
nenchoumi311924 分钟前
ROS2 Humble 笔记(四)ROS 的最小工作单元-- Node 节点
笔记·机器人·ros2
搞机械的假程序猿1 小时前
普中51单片机学习笔记-流水灯
笔记·学习·51单片机
lally.1 小时前
未来的一些想法和规划
笔记
stevenzqzq2 小时前
Android Hilt 入门教程_注解汇总
android
xian_wwq2 小时前
【学习笔记】《孙子兵法》与网络安全
网络·笔记·学习
d111111111d2 小时前
STM32外设学习-ADC模数转换器(代码部分)四个模块,光敏,热敏,电位,反射式红外。
笔记·stm32·单片机·嵌入式硬件·学习
nenchoumi31192 小时前
ROS2 Humble 笔记(八)动作 action
笔记·机器人·ros2
峰哥的Android进阶之路2 小时前
Android的binder机制理解
android·binder