【安卓】安卓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都可以正常运行。

测试内容

安卓CTS测试内容|500

这个表列的比较详细了,包含签名,接口测试,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媒体测试包)

  • 下载地址:兼容性测试套件下载 | Android 开源项目 | Android Open Source Project
    请添加图片描述
    arm架构的待测机就下载 兼容性测试套件 (CTS) - ARM 后缀的,下下来是个尾缀linux_x86-arm的zip包,表示这个包只能在x86的Linux上运行,用于测试arm架构的设备。
    请添加图片描述

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已经提供了最基础的功能接口(接口里的功能是否正确还不确定,至少是接口已经有了)

xTS|400

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. 参考文档

  • 谷歌官网介绍页面:兼容性测试套件 | Android 开源项目 | Android Open Source Project
  • AndroidTV CTS/VTS/GTS/STS_gts有多少modules和cases-CSDN博客
  • CTS/GTS/STS/VTS/CTS-Verifier_sts测试

4. 系列

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/228127.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dart多线程双向通信的案例----【小学4年级课程】

下面是运行后的打印顺序 I/flutter (20170): 上班 I/flutter (20170): 这里是校长室:main I/flutter (20170): 这里是饭堂:fantang1 I/flutter (20170): 这里是收发室--检查小孩发回去给他妈妈的信息是:我是秘书的儿子,我来到在校长室了。校长今晚想吃羊…

【SpringCloud系列】@FeignClient微服务轻舞者

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

NX二次开发UF_MTX3_vec_multiply_t 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX3_vec_multiply_t Defined in: uf_mtx.h void UF_MTX3_vec_multiply_t(const double vec [ 3 ] , const double mtx [ 9 ] , double vec_product [ 3 ] ) overview 概述 Ret…

windows10 Arcgis pro3.0-3.1

我先安装的arcgis pro3.0,然后下载的3.1。 3.0里面有pro、help、sdk、还有一些补丁包根据个人情况安装。 3.1里面也是这些。 下载 正版试用最新的 ArcGIS Pro 21 天教程,仅需五步!-地理信息云 (giscloud.com.cn) 1、安装windowsdesktop-…

使用docker-compose优雅部署rocketMQ

使用docker-compose优雅部署RocketMQ 随着市场的发展,越来越多的复杂场景出现在我们日常的开发工作中。随之也越来越多的好的工具,也同步出现在程序员的学习范围清单内。好的工具提高产品性能的同时,也带来了很多安装上的问题,do…

申请免费的ssl证书

申请网站: https://freessl.cn/ 解密域名,添加cname跳转 下载acme.sh 工具脚本,地址:https://github.com/acmesh-official/acme.sh/wiki/Install-in-China 下载成功之后的acme.sh是一个目录,进去之后才是脚本 执行…

深入浅出 Vue 中的插槽 slot

深入浅出 Vue 中的插槽 slot start 最近被问到好几次 Vue 中的插槽相关知识,掌握的还是有些不全面。抱着重新学习的心态,写这篇博客。首先对基础知识做一个回顾,然后再对源码实现做一个学习。作者:番茄编写时间:2023…

ArkTS-WebView内嵌H5页面

鸿蒙开发使用WebView内嵌H5页面 访问在线网页时需添加网络权限:ohos.permission.INTERNET module.json5文件配置 {"module" : {"requestPermissions":[{"name": "ohos.permission.INTERNET"}]} }踩坑日记 加载网页效果无法…

Java---权限修饰符、final、static

文章目录 1. 权限修饰符2. final(最终态)3. static(静态) 1. 权限修饰符 修饰符同一个类中同一个包中的子类和无关类不同包的子类不同包的无关类private√默认√√protected√√√public√√√√ 2. final(最终态) 1. final关键字是最终的意思,可以修饰成员方法、…

《数据结构与测绘程序设计》试题详细解析(仅供参考)

一. 选择题(每空2分,本题共30分) (1)在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入结点s,则执行( B )。 A. s->nextp->next; p->nexts; …

第3章 表、栈和队列

前言 本章讨论最简单和最基本的三种数据结构。实际上,每一个有意义的程序都将至少明确使用一种这样的数据结构,而栈则在程序中总是隐含使用,不管你在程序中是否做了声明。 在这一章,我们将: 介绍抽象数据类型…

Asp.net core WebApi 配置自定义swaggerUI和中文注释

1.创建asp.net core webApi项目 默认会引入swagger的Nuget包 <PackageReference Include"Swashbuckle.AspNetCore" Version"6.2.3" />2.配置基本信息和中文注释&#xff08;默认是没有中文注释的&#xff09; 2.1创建一个新的controller using Micr…