XTS 测试环境搭建

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

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

运行展示:

  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。

  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 进行替换,如下图所示:

XTS 测试环境搭建和介绍相关推荐

  1. Elasticsearch环境搭建和介绍(Windows)

    一.Elasticsearch介绍和安装 1.1 介绍  Elastic Elastic官网:https://www.elastic.co/cn/ Elastic有一条完整的产品线:Elasticse ...

  2. Activiti Workflow HelloWorld 示例与测试环境搭建

    作者:Rock 出处:http://www.ecmkit.com/zh-hans/2012/03/21/activiti-workflow-hell Activiti Workflow HelloWo ...

  3. 高版本Android真机逆向测试环境搭建

    高版本Android真机逆向测试环境搭建 618购入了新机Xiaomi K50,真滴便宜又好用,续航很强界面很丝滑.正好拿来做逆向测试机? 怎么可能!这也太奢侈了!不过淘汰的Xiaomi Note 7 ...

  4. CTS测试中Camera FOV Calibration标准测试环境搭建

    CTS测试分为自动测试和手动测试,CTS Verifier测试是CTS测试的手动测试部分.以下是CTS Verifier测试的Camera FOV Calibration测试环境搭建. 安装CTS V ...

  5. Robot Framework测试环境搭建(python3.7.2,pip在线安装)及RIDE的简单操作演示

    Robot Framework测试环境搭建(python3.7.2,pip在线安装)和RIDE的简单操作演示 1.框架介绍 Robot Framework 框架是一个通用的测试框架(基于python) ...

  6. Istio测试环境搭建和功能演示

    Istio 测试环境搭建和功能演示 本文提供Windows 10下Istio环境的配置安装步骤,以及简单的Bookinfo示例功能验证.首先搭建一个基于Minikube和VirtualBox的本地Ku ...

  7. web应用如何确定能同时允许多少用户连接?_Web测试环境搭建+测试要点汇总

    一.Web测试环境搭建 软硬件包括:电脑一台.JDK1.6.Tomcat7.0.mysql.IE浏览器.Firefox浏览器.Chrome浏览器.SVN客户端 通过SVN客户端导出最新的Web工程部署 ...

  8. Celery简介及Docker测试环境搭建

    Celery 简介 任务队列一般用于线程或计算机之间分配工作的一种机制. 任务队列的输入是一个称为任务的工作单元,有专门的工作进行不断的监视任务队列,进行执行新的任务工作. Celery 通过消息机制 ...

  9. 微信开发——本地测试环境搭建

    版权声明:欢迎转载,请注明沉默王二原创. https://blog.csdn.net/qing_gee/article/details/52858939 微信开发的本地测试环境搭建起来颇为繁琐(对微信 ...

最新文章

  1. 【问链-EOS公开课】第七课 EOS 宪法草案与 BP 协议
  2. Android事件机制详解
  3. ThinikPhp 将数据库模型的增、删、改操作写入日志
  4. python内存消耗大吗_如何减少python内存的消耗?
  5. 【UVA - 1335】Beijing Guards (贪心,二分)
  6. .Net Micro Framework导航总贴(新手必看)
  7. 内部服务器如何提供访问服务
  8. JS获取页面中Url的某个参数
  9. 微信小程序支付异常:requestPayment:fail no permission
  10. 并发编程学习之AQS抽象队列同步器
  11. WIZ ConfigTool-批量配置WIZnet S2E模块
  12. 微信公众号数据2019_微信公众号精准数据对比 让公众号运营更顺利
  13. 三代测序数据分析实战
  14. 三角形顺时针逆时针判断
  15. 详解去中心化代币发行机制IDO:七大平台的特性与现状 |链捕手
  16. python语言提供的数字类型有哪些_Python语言中数字类型有哪些?
  17. 个人管理:“唐僧”之五项修炼
  18. 武松杀潘金莲时为何先扯开其衣服?得知真相才明白武松多么机智!
  19. STM32F1和F4的区别
  20. STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)

热门文章

  1. SpringCloud —— Config 配置中心
  2. 微信小程序之跳转wx.switchTab的使用
  3. 2020-01-09——麦肯锡2019年中国报告
  4. JAVA中stacksize是什么意思_【Java Thread StackSize】如何理解Java中Thread构造器中的stackSize的默认值为0?...
  5. nyoj 236 心急的C小加(偏序集问题)
  6. 基于SpringBoot框架的协同过滤算法的体育用品商城设计与实现
  7. 【专题】#34;白领工资标准#34;惹争议(转)
  8. 乐鑫Esp32学习之旅 24 分享在 esp32 SDK实现冷暖光色温RGB/HSV平滑调节的封装,轻松集成到您的项目去。(附带Demo)
  9. 机器人学(五):机器人工具坐标系标定
  10. Cesium粒子效果之雨、雪、雾