当前位置: 首页 > news >正文

Android 系统的兼容性测试 - CTS

前言

  • 最权威的文档当然是参考:链接: Google文档-兼容性。
  • 作为Android系统开发工程师,CTS(Compatibility Test Suite)一直都是发布版本前的关键测试,CTS一旦不通过,那就意味着今天该加班了。
  • 此专栏,用于记录我对CTS的总结(注意:其中也包含对其他同行的经验文章的参考)。
  • 另外,还有 CTS Verifier、GTS、VTS、STS 等。我们把它们统称为 XTS 或者 *TS。
  • 通篇我以 AOSP anroid-9.0.0_r61 系统为例。

1 Google为何要搞一个CTS呢?

Google发布了AOSP版的Android源码,很多手机厂商会在AOSP的基础上做自己的定制化(小米、OPPO、VIVO等厂商),尽管很多都是针对底层的修改,不管他叫MIUI或者ColorOS,其实依然还是Android系统,越来越多的厂商导致了Android系统的碎片化。

那么问题来了:

  1. 一旦系统改出问题,无法确定是谷歌本身的逻辑缺陷,还是手机厂自己DIY出的问题,排查问题的时候有着各种不确定的因素。
  2. 运行在系统上的应用可能会因为Android底层的改动发生运行时崩溃、闪退、功能无法使用等问题,影响用户体验。

鉴于以上原因,Google 推出了CTS测试,将各种定制系统的底层Android接口API统一规范,来兼容Android原生底层的API。这是一套包含了上万个自动运行 测试用例的测试框架 。CTS测试主要用来测试OEM厂商设计的Android平台是不是符合Android的API接口定义。通过 CTS 测试不仅可以保证Android设备具有良好的用户体验 ,而且可保证大量优质的应用在Android设备上正常运行,同时,也能够让应用开发者能够放心地制作高质量的应用程序。

Google官方文档也提到,按以下三个步骤操作即可打造与 Android 兼容的移动设备:

  1. 使用 AOSP 在您的设备上实现 Android。
  2. 确保您的设备符合 Android 兼容性定义文档的要求 。CDD 列出了与 Android 兼容的设备应遵循的软件和硬件要求。
  3. 通过兼容性测试套件 (CTS) 测试。在开发过程中可随时借助 CTS 评估兼容性。

实现兼容性后,您的设备会被视为与 Android 兼容,您可以考虑获得 Google 移动服务 (GMS) 许可并准备好使用 Android 商标。如需查看品牌推广指南,请参阅合作伙伴营销中心的 Android 部分。

针对CTS的常见的一些疑问,也可以在兼容性常见问题解答 (FAQ)查看。正如其中的解答,CTS并非强制性的,如果你的设备是个行业定制化的设备,并不是个传统意义的手机,也不需要获得GMS许可,只需要把你关注的部分CTS跑通即可。

2 CTS的测试内容

测试用例涵盖以下领域,以确保兼容性:

  1. 签名测试:每一个 Android 版本的释放,都会有一些 XML 配置文件用于描述公有 API 的签名。CTS 会检查设备这些公有的 API 签名情况;
  2. 平台 API 测试:测试 SDK 中的核心库和 Android 应用框架的 API 正确性,保证类、方法、参数等正确性;
  3. Dalvik 测试:重点测试 Dalvik 的可执行格式;
  4. 平台数据模型:CTS 会测试通过 content provider(如 SDK android.provider 软件包中所述)提供给应用开发者的核心平台数据模型(包括通讯录、浏览器和设置)
  5. 平台 Intent 测试:测试 Intent 相关是否符合要求;
  6. 平台权限测试:测试平台 Permission 相关是否符合要求;
  7. 平台资源测试:测试设备是否可以正确地处理核心平台资源类型,如 SDK 中提到的动画资源、布局资源、等等。

CTS 重点测试的是 App 和 Framework 之间的兼容性。这样做的目的,至少可以确保 App 开发者编写的同一应用可以运行在不同的 Android 版本(向前兼容)、不同的硬件平台、不同的厂商制造的设备上。

3 如何获取CTS呢?

  1. 从兼容性测试套件下载获得对应Android版本的CTS。
    在这里插入图片描述

  2. 从 AOSP platform/cts源码中编译获得(在Android源码目录中执行:make cts ,之后会在out/host/linux-x86/cts/下生成android-cts文件夹)。
    在这里插入图片描述

4 测试设备预置条件

可参考: 设置 CTS 自动化测试,其中有针对被测设备的,也有针对测试服务器的。

4.1 设置PC和被测设备之外的物理环境

参考:设置物理环境。

4.2 PC端预置条件

参考:设置您的桌面设备。

4.3 测试机端预置条件

参考:准备DUT(被测设备)
还需要网络可以链接到www.google.com

5 运行自动化CTS测试

5.1 CTS命令

参考:CTS v2 命令控制台

6 CTS测试结果分析

分析测试报告和Log

解释 CTS 结果

添加Log分析

如果缺少log,CTS测试源码添加log,环境编译,编译apk替换原有APK进行分析

相关文章:

  • 【Part 2安卓原生360°VR播放器开发实战】第二节|基于等距圆柱投影方式实现全景视频渲染
  • 探索大语言模型(LLM):语言模型从海量文本中无师自通
  • ASP.NET8.0入门与实战
  • Netmiko 源码关键流程图
  • Web Workers
  • 更快的图像局部修改与可控生成:Flex.2-preview
  • 多级缓存架构设计与实践经验
  • (即插即用模块-特征处理部分) 四十二、(2024 TPAMI) FreqFusion 频率特征融合
  • 睿享会丨走进西安御品轩
  • 无人机超声波避障技术要点与难点!
  • 攻击 WordPress 目标的 5 种方法
  • 海底世界-第16届蓝桥第4次STEMA测评Scratch真题第5题
  • JVM指令手册:深入理解字节码执行机制
  • 每日c/c++题 备战蓝桥杯(P2392 kkksc03考前临时抱佛脚)
  • adb devices 报权限错误
  • 深度解析丝杆升降机维护保养技术:从原理到实践,保障工业设备高效运行​​
  • Coding Practice,48天强训(25)
  • 分布式GPU上计算长向量模的方法
  • 2.脚本文件初识
  • python 如何把元组拆成几个包并输出
  • 巴菲特执掌60年,伯克希尔市值如何增长5.5万倍?详解五大经典投资案例
  • 思政课也精彩,“少年修齐讲堂”开讲《我的中国“芯”》
  • 为治理商家“卷款跑路”“退卡难”,预付式消费司法解释5月起实施
  • 零食连锁鸣鸣很忙递表港交所:去年营收393亿元,门店超1.4万家,净利润率2.1%
  • 市场监管总局:2024年查办商标、专利等领域违法案件4.4万件
  • 从腰缠万贯到债台高筑、官司缠身:尼泊尔保皇新星即将陨落?