本篇文章主要介绍 Android
开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:
一、CTS 测试 内容
二、GTS 测试 内容
三、STS 测试 内容
四、GSI 测试内容
五、VTS 测试 内容
六、CTS-Verifier 测试 内容
七、CDD 检查测试 内容
第一部分:CTS 测试 内容
一、CTS 是什么?
Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。CTS的目的是让所有的Android设备开发商能够开发出兼容性更好的Android设备(比如:手机)。
二、CTS 测试的意义
Android的CTS测试,是Google推出的Android平台兼容性测试。这是一套包含了上万个自动运行 测试用例的测试框架 。
CTS测试主要用来测试OEM厂商设计的Android平台是不是符合Android的API接口定义。通过 CTS 测试不仅可以保证Android设备具有良好的用户体验 ,而且可保证大量优质的应用在Android设备上正常运行,同时,也能够让应用开发者能够放心地制作高质量的应用程序,因此只有通过 CTS 认证的设备才能合法的安装使用 Google market 等 Google 的应用。
三、CTS 测试需要的准备工作
目前最新cts(9.0_r9)
/(8.1_r16)
/(7.0_r32)
。
CTS 测试工具
CTS 测试脚本
也可以通过下面网址去下载最新的测试工具(需要翻墙)
https://source.android.com/compatibility/cts/downloads.html
-
- 测试版本
-
- 准备刷好版本的测试机
32位的一般是2-4台,大概需要三十个小时左右跑完一轮;
64位的项目需要4-6台,一轮测试需要时间是60个小时左右。
①. 测试需要把锁屏的开关设置为none
(Settings > Security > Screen Lock should be ‘None’).
②. 测试需要设置灭屏时间sleep设置为最长时间或者never
测试需要打开"USB Debugging"
开关(Settings > Developer options > USB debugging).
③. 打开Settings > Developer options > Stay Awake
④. 有GPS的手机需要打开GPS
需要Linux系统电脑、ADB 的环境搭建、修改 adb 的权限等。
四、CTS 测试命令
- 1.CTS 测试常用测试命令
测试项 | 测试命令 |
---|---|
1.全测命令 | run cts |
2.3台一起运行命令 | run cts —shard–count 3 |
3.单测一项 | run cts –m <模块名> -t <单项名称> |
4.继续测试 | run retry —retry <session id> (session id是l r查看结果,最前面的数字序号); |
5.单测一个模块 | run cts –m <测试模块名> |
- 2.CTS 3台手机一起测试命令
CTS 3台手机一起测试命令举例
五、CTS 测试报告解读
CTS 测试结果会自动生成到android-cts/results
中,会存储到日期加时间的文件夹中,其中的test_result_failures.xml
可以用浏览器打开,查看详细的测试结果
六 、CTS测试套件文档目录结构
名称 | 作用 |
---|---|
1.logs | 测试过程中抓取得log |
2.results | 测试结果 |
3.device–info–files | 测试设备的信息 |
4.tools | 测试工具 |
七、CTS 测试过程中需要注意的地方
第二部分:GTS 测试 内容
一、GTS 测试是什么
Google Mobile Services Test Suite,所谓的Google Mobile Services即谷歌移动服务
是谷歌开发并推动Android的动力,也是Android系统的灵魂所在
二、GTS 测试的意义
谷歌移动服务测试套件(Google Mobile Services Test Suite),谷歌移动服务提供了Search、 Search by Voice、Gmail、Contact Sync、 Calendar Sync、Talk、 Maps、 Steet View、 YouTube、 Android Market (Play store)等服务,当用户使用谷歌时,谷歌可以把各种广告嵌入到谷歌的服务中。
三、GTS 测试需要的准备工作
- 最新工具:7.0-r2
- GTS的环境安装、执行、报告分析这一系列操作和CTS类似,只是GTS必须连接VPN。
- user版本
- 设置手机、连接外网
- 打开蓝牙
- 显示中睡眠时间显示最大
- 语言选择英语
- 键盘选择谷歌键盘
- 打开定位、高精度
- 安全中锁屏选择None
- 在开发者模式中打开stay awake和USB debugging
四、GTS 测试命令
-
- GTS 测试命令 如下:
测试项 | 测试命令 |
---|---|
1.全测命令 | run gts |
2.3台一起运行命令 | run gts –shard–count 3 |
3.单测一项 | run gts –m <模块名> -t <单项名称> |
4.继续测试 | run retry —retry <session id> (session id是l r查看结果,最前面的数字序号) |
5.特殊命令 | run gts -m GtsMediaTestCases —test com.google.android.media.gts.MediaDrmTest#testUsageTableCapacity —module–arg “GtsMediaTestCases:test–timeout:3600000″ |
五、GTS 测试报告解读
六、GTS测试过程中需要注意的地方
第三部分:STS测试 内容
一、STS 是什么?
主要是测试 Android Security Patch 是否生效,Goolge最新通告,2019年03月开始STS要全部pass。
二、STS 测试意义
Android Security Test Suite (STS). 是谷歌关于android安全补丁安装情况的一个测试套件STS和security patch相关的,是CTS测试新增加一项安全测试套件。STS是201808才开始测试的。Security patch日期在3个月内是GTS的一个case,如果不通过无法获得google认证。在18年5月之前谷歌对于security patch这个属性都是在build库下面跟着aosp更新的。现在需要通过STS之后由vendor来更新。STS需要通过userdebug版本的targetfile来生成一个user版本的结果
三、STS 测试准备工作
Google STS 释放版本列表
Android 8.1 举例
-
5.链接翻墙 WIFI
四、STS 测试命令
-
- STS 测试命令如下:
测试项 | 测试命令 |
---|---|
1.全测命令 | run sts-engbuild |
2.单测一项 | run sts-engbuild –m <模块名> -t <单项名称> |
3.继续测试 | run sts-engbuild —retry <session id> (session id是l r查看结果,最前面的数字序号) |
-
-
STS 全测举例如下:
STS 全测举例
-
五、STS 测试报告解读
-
- STS 测试报告目录
目录 | 用途 |
---|---|
logs | 测试过程中抓取得log |
results | 测试结果 |
tools | 测试工具 |
STS报告目录
STS 报告头
六、STS 测试过程中需要注意的地方
这是GTS的一个case,如果不通过无法获得google认证。
例子 :
GtsOsTestCases–com.google.android.os.gts.SecurityPatchTest#testSecurityPatchDate
junit.framework.AssertionFailedError: ro.build.version.security_patch should be “2018-08” or later. Found “xxxx-xx-xx”
第四部分:GSI 测试 内容
一、GSI 是什么
(Generic system image)— Reference AOSP system image通用系统映像上的兼容性测试套件
这个文件包也是签约获取授权后才能获取,Google也会定期更新GSI包Android O要求测试VTS和CTS on GSI,此时对应版本必须是GSI版本,测试包都为VTS。
二、GSI 测试的准备工作
9.0-r11 8.1_r17
-
- Media 媒体包
要求 CTS Media 1.4 及以上版本,在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时
VTS测试要求刷入谷歌提供AOSP的system.img (GSI)。在user版本中,如果直接使用flash tool单独烧录GSI时,会导致无法开机。之所以会出现这种问题,是由于在user/userdebug版本中,dm-verity是使能的,替换GSI后导致dm-verity不能通过。 如果要解决这个问题,就需要进行unlock操作
,并且要用fastboot来刷入刷入谷歌提供的system.img .
①在设置中打开 OEM unlocking 选项
②在设置中打开 USB debugging 选项
③长按音量 + 和电源键进入fastboot模式
或者执行
adb reboot bootloader
④连接到电脑上,分别执行fastboot flashing unlock
和fastboot oem unlock
。
⑤执行命令后需要选择音量 + 来确认unlock。
⑥执行 fastboot 命令刷入google提供的 system.img (GSI)fastboot flash system system.img
(需要根据软件版本的信息来选择GSI版本)
(Android P版本需要执行) fastboot flash vbmeta vbmeta.img
⑦重启:fastboot reboot
刷版本过程中将system文件替换为system.img文件,正常刷机
(Android P版本需要执行) VB文件替换为最新的 vbmeta.img
②展讯平台Research DownLoad 单独替换方法:
sudo apt-get install python-dev
sudo apt-get install python-protobuf protobuf-compiler
sudo apt-get install python-virtualenv python-pip
-
- Media 媒体包
要求 CTS Media 1.4 及以上版本,在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media
路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media
路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时
VTS测试要求刷入谷歌提供AOSP的system.img (GSI)
。在user版本中,如果直接使用flash tool
单独烧录GSI时,会导致无法开机。之所以会出现这种问题,是由于在user/userdebug
版本中,dm-verity
是使能的,替换GSI后导致dm-verity不能通过。 如果要解决这个问题,就需要进行unlock操作,并且要用fastboot来刷入刷入谷歌提供的system.img .
三、GSI 测试命令
-
- GSI 测试命令如下表格:
测试项 | 测试命令 |
---|---|
1.全测命令 | run cts-on-gsi -s+SN |
2.3台一起运行命令 | run cts-on-gsi –shard–count 3 |
3.单测一项 | run cts-on-gsi –m <模块名> -t <单项名称> |
4.继续测试 | run cts-on-gsi-retry –retry <session id> |
5.单测一个模块 | run cts-on-gsi –m <测试模块名> |
-
- 2台手机一起测试方法举例
2台手机一起测试方法举例
四、GSI 测试过程中需要注意的事项
第四部分:VTS测试 内容
一、VTS 是什么
VTS的全称是 Vendor Test Suite(供应商测试套件)
二、VTS 的测试意义
三、VTS 测试前的准备工作
替换谷歌system.img和gsi准备工作一样,替换img文件之前需要确保手机解锁,展讯的项目解锁如下:
使用unbuntu系统解锁
解锁前请先进入fastbootbootloader状态,指令如下:
1. adb reboot bootloader
2. cd 到当前文件
3. ./fastboot oem get_identifier_token(获取设备号)
-
sudo ./signidentifier_unlockbootloader.sh 53433938363331413130313833323330313437 rsa4096_vbmeta.pem signature.bin rsa4096_vbmeta.pem
密匙文件请自行到对应软件中获取 -
sudo ./fastbootflashing unlock_bootloader signature.bin
(用户根据相
应提示使用“volume down”键进行解锁确认
四、VTS 测试命令
-
- VTS 测试命令如下:
测试项 | 测试命令 |
---|---|
1.全测命令 | run vts |
2.单测一项 | run vts –m <模块名> -t <单项名称> |
3.继续测试 | run vts –retry <session id> |
4.单测一个模块 | run vts –m <测试模块名> |
五、VTS 测试过程中需要注意的地方
第六部分:CTS-Verifier 测试 内容
一、CTS-Verifier 是什么
CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机、传感器等。由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能
二、CTS-Verifier 测试前的准备工作
- 把测试机刷成需要测试的版本。
- 安装*/android-cts-verifier/CtsVerifier.apk。
- 设置手机语言为English。
- 打开蓝牙,无需配对。
- 打开并连接可用wifi。
- 请再另外准备一台手机,以便测server和client相关的case。
三、CTS-Verifier 测试的主内容
- 1.CTS-Verifier 测试的主内容 如下:
· Camera
· Clock
· Device administration
· Features
· Hardware
· Job scheduler
· Location
· Managed Provisioning
· Networking
· Notifications
· Others
· Projection tests
· Security
· Sensors
· Streaming
四、CTS-Verifier 需要注意的地方
手动测试选项 | 意义 |
---|---|
Pass | 如果待测设备满足 Info 中说明的测试要求,单击 Pass 按钮 |
Info | 对该项测试方法的说明,它将出现在第一次进入该测试项或者每次单击 Info 按钮的时候 |
Fail | 如果待测设备不满足 Info 中说明的测试要求,单击 Fail 按钮 |
第七部分:CDD检查测试 内容
一、CDD检查是什么?
CDD checklist全称Compatibility Definition Document 安卓兼容性定义文档。
二、CDD 检查的意义
CDD列举兼容的Android设备的软件和硬件要求。
因为Android源代码的开放性,众多手机厂商都在Android源代码的基础上添加了自己的定制,可能包括从Linux kernel层到上面的framework层都有修改,为了打造一个共同的生态系统,让不同的APP开发者开发出来的APP在所有的Android设备上都能正常运行,保证用户的使用体验,Google就提出了一些限制,这些限制就是CDD文档。
三、CDD 检查的内容
-
1.首先确认自己做的项目是哪个系统
9.0 ,8.1 还是 7.0 ;然后确认是不是Go的项目,对Go的区分是以1g的RAM来要求的,大于1G的 都属于非Go;最后一定要知道这个项目是做哪种版本:init(初次送测) ,MR版本 , Smr版本 ,每个版本都有自己不一样的检查cdd的方式,输入adb shell pm list features
查看什么类型的项目。 -
- 出欧洲项目应为:
<feature name="com.google.android.feature.EEA_DEVICE" />
<feature name="com.google.android.paid.chrome" />
<feature name="com.google.android.paid.search" />
- 6.查看 API Level
使用以下命令adb shell "getprop | grep first_api_level"
可以查看API level。
Google 对不同版本的 API Level 要求如下:
Android 版本 | API level 要求 |
---|---|
对于9.0项目 | 不管Init还是MR版本 都需要设置为28 |
对于8.1项目 | Init项目需要设置为空;MR版本需要设置为27 |
对于7.0的项目 | Init项目需要设置为空;MR版本需要设置为24 |
对于6.0项目 | Init项目需要设置为空;MR版本需要设置为23 |
- 7.Check Default Home Screen
Duo必须放在default home screen(适应于非Go项目)
Android Messages和Chrome必须放在Hotseat。
适应于非Go项目
- 8.Check Google Folder 非Go项目
打开google文件夹按照“ 从左到右,从上到下” 的顺序,摆放core app (如右图)
分别有Google Search、Gmail、Maps、YouTube、Drive、Play Music(11月以后的新项目替换YouTu Music 老项目延续之前所用)、Play Movies、Photos
。
Google Folder 举例
对于Android P GMS Express+设备 (不管是新版本还是维护版本), 请确保有设置该属性 “ro.base_build = noah”
.
可用如下命令检查:
adb shell “getprop | grep ro.base_build”
搭载 Android 9 或更高版本的 GMS 设备必须支持DNS over TLS ,并且必须提供UI界面,以便用户从 AOSP 中定义的关闭、自动或私人 DNS 提供商主机名之一中选择 DNS 隐私模式设置。
当设备在开箱后进行设置时,其默认的 DNS 隐私模式设置应为自动。
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
原文地址:https://blog.csdn.net/m0_66587877/article/details/130659789
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_18919.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!