XTS 测试环境搭建和介绍

XTS 测试环境搭建

1. 安装JDK(对于Android Q以后的版本,JDK需要11及以上的版本)

  1. 查看已经安装的 JDK 版本
ls /usr/lib/jvm/ 

运行展示:
查询JDK版本

  1. 如果没有 jdk-11 或以后的版本,使用以下命令安装
# 更新软件包列表
sudo apt-get update
# 安装 openjdk-11-jdk
sudo apt-get install openjdk-11-jdk
  1. 查看当前 java 与 javac 版本
java -version
javac -version
  1. 如果当前 java 版本不是 jdk-11 或 以后版本 使用以下命令
//查看已经注册的服务,调整优先级
sudo update-alternatives --config java 

如果有多个 jdk 版本,需要切到 jdk-11。
可以通过序号选择需要的版本。这里我们需要 jdk-11。
update jdk version

  1. 若在第四步没有发现 jdk-11 的版本,使用以下命令注册服务
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1001 
# ( --install link name path priority)
# 第一个参数--install表示向update-alternatives注册服务名。 
# 第二个参数是注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;
# 第三个参数:服务名,以后管理时以它为关联依据。
# 第四个参数,被管理的命令绝对路径。
# 第五个参数,优先级,数字越大优先级越高。

服务注册成功之后再执行第四步,将 JDK 版本切到 jdk-11。

2. 安装SDK

  1. 安装 adb 命令
sudo apt-get install adb
# 安装好adb之后会自动下载好SDK
  1. 安装 aapt 命令
sudo apt-get install aapt

安装完JDK和SDK之后VTS环境就搭建好了。

3. 进行 XTS 测试(以 VTS 为例)

  1. 选择设备需要的VTS测试包
  2. 在VTS测试包中 /android-vts/tools 目录下执行 vts-tradefed 文件,测试环境就初始化好了
  3. 执行 run vts -m [modulename] 命令就可对对应模块进行测试
run cts -m CtsLocationFineTestCases
  1. 测试单个方法的命令示例
run cts -m CtsLocationFineTestCases -t android.location.cts.fine.LocationManagerFineTest#testAddProviderRequestListener 

XTS 介绍

1. VTS 简介

VTS(Vendor Test Suite,供应商测试套件),在 Android_O 之前系统升级比较麻烦复杂,一般的情况下在有 Google 发布新版本的 AOSP 之后,还需要 SoC (System on Chip,称为芯片级系统,是一个专用目标的集成电路,其中包含了完整系统并有嵌入软件的全部内容) 厂商对 HAL (硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。他隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植) 进行升级,以及 OEM 厂商对 HAL 的 framework 进行升级之后,用户才能在设备上收到 OTA 升级包的推送。为了能更快的将设备升级到新的 Android 版本,Android_O 开始新引入了 Project Treble,Project Treble 适用于搭载 Android_O 及后续版本的所有新设备。Project Treble 中最重要的就是新增 Vendor Interface这一概念,以及相应的 Vendor Test Suite(VTS) 测试。

2. CTS简介

CTS (Compatibility Test Suite,兼容性测试)。只有通过CTS测试的设备才有可能获得 Android 的商标和享受 Android Market 的权限;Android 的 CTS 目的与意义:用户在 android 系统中有更好的用户体验,并且展示 android 应用的优越性,使得 android 开发者更容易编写高质量的 andorid 程序。

3. VTS 和 CTS 对比介绍

CTS作用: APP 层和 Framework 层在设计上是分开的,但通过 CTS 测试,确保了 APP 与 Android Framework 之间有一致的调用接口(API),这使得 APP 开发者编写的同一款程序可以运行在不同系统版本(向前兼容)、不同硬件平台、不同厂商制造的不同设备上。

VTS作用: Project Treble 中引入Vendor Interface 的目的是将 Android Framework 与 HAL 分开,通过对 Vendor Interface 进行测试,确保同一个版本的 Android Framework 可以运行在不同的 HAL 上,或者 Android Framework 可以运行在用一个 HAL,即保证 HAL 的向前兼容性。通过这样的 Framework/HAL 分离设计的接口一致性保证,这就使得 8.0 版本之后的 Android 系统进行升级时,可以直接对 Framework 进行升级而不用考虑 HAL 层的改动,从而缩短了用户手上设备得到系统升级 OTA 推送的时间。

Android 8.0 之后的新框架:
在这里插入图片描述
采用新框架之后的 Android 系统升级过程则直接对 Framework 进行替换,如下图所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43880417/article/details/128128433