CTS camera的基础操作和debug
手机端
设置永久不锁屏
1 CTS
进入cts目录tools
运行以下命令
./cts-tradefed
adb devices找设备数串
整跑
run cts -m CtsCameraTestCases --skip-preconditions
run cts -m CtsMediaTestCases
单测格式如下 -t 后面是单跑的内容
run cts -m CtsCameraTestCases -t android.hardware.camera2.cts.StillCaptureTest#testAeCompensation --skip-preconditions
查看设备状态
l d
查看报告状态
l r
查看当前命令
l c
打开报告
nautilus ./
run retry --retry <session-number>
重跑(注意:重跑需要同一个机子同一个版本)
run retry --retry session
run retry --retry 0
以上的是在环境中跑cts.
cts 的本质是下载测试的apk到手机中(在谷歌释放包中CtsCameraTest.apk),这个apk集成了测试相关的内容来调用手机的一些功能完成测试项目
以下命令在终端运行即可,替换成你需要跑的单项和abi
adb shell am instrument -e android.hardware.camera2.cts.CameraDeviceTest#testSessionParametersStateLeak --abi arm64-v8a -w android.camera.cts/androidx.
2 VTS(需要镜像)
vts 需要python 相关的环境包配置,相关命令如下:
sudo apt-get install python-dev
sudo apt-get install python-protobuf
sudo apt-get install protobuf-compiler
sudo apt-get install python-virtualenv
sudo apt-get install python-pip
sudo apt-get install python-numpy
sudo apt-get install python-scipy
sudo apt-get install python-matplotlib
sudo apt-get install python-opencv
2.1进入fastbootd模式
adb unroot
adb reboot fastboot #进入这个模式刷system.img,bootloader模式没有这个分区
2.2 system.img
刷入谷歌 system.img
fastboot flash system system.img
查看gsi版本日期
strings system.img | grep ro.build.version.security_patch
adb shell getprop ro.build.version.security_patch
重新进入fastboot
fastboot reboot bootloader
fastboot -w
2.3 boot-debug.img
vts需要debug的权限,所以需要刷debug的镜像,另外fastboot 的版本不能太旧,太久分区不对,刷system.img会破坏分区,导致无限重启无法进去到系统里面进去.
fastboot flash boot boot-debug.img
fastboot -w
fastboot reboot
2.4 手机配置
进入设置打开开发者模式,usb调试模式,不锁定屏幕,语言设置成英语(这个语言无所谓)
2.5 命令
需要连接外网(电脑)
./vts-tradefed
VTS camera 相关的三个模块
run vts -m VtsHalCameraProviderV2_4Target --skip-preconditions
run vts -m VtsHalCameraProviderV2_5Target --skip-preconditions
run vts -m VtsHalCameraServiceV2_0Target --skip-preconditions
单跑
run vts --include-filter VtsHalCameraProviderV2_4Target --include-filter VtsHalCameraProviderV2_5Target --include-filter VtsHalCameraServiceV2_0Target --include-filter VtsVndkDependency -s xxx;
单跑命令
run vts -m xxx -t xxx -s xxx
run vts -s
vts常用命令
列出所有的跑测结果
l r
列出所有渐层到或已知的设备
l d
列出当前运行的模块内容
l i
单跑某个模块
run vts -m <模块>
可用选项
run vts -s <device_id> --logcat-on-failure --screenshot-on-failure --shard-count <shards>
3 ITS
its以来python环境(不建议使用ubuntu20测试,默认python包可能太新,跑不起来)
3.1 环境包
sudo apt install python-numpy
sudo apt install python-scipy
sudo apt install python-matplotlib
sudo apt install python-opencv
3.2 手机端
手机需要安装CtsVerifier.apk
adb install CtsVerifier.apk
进入到手机apk,所有的权限都打开,选择its测试项目

然后选择测试的场景和摄像头

3.3 电脑端
进入到对应的tools目录下
android-cts-verifier/CameraITS
source ./build/envsetup.sh
整跑命令
python tools/run_all_tests.py device=017650f70401 camera=0 scenes=1
单跑命令
python ./tests/xxx/xxx.py camera=x(执行tests目录下的对应scenes的报错项)。
python tools/run_all_tests.py camera=0 scenes=1
3.4 场景说明
| 场景 | 说明 |
|---|---|
| 场景0 | 无任何要求 |
| 场景1 | 相机位于三脚架上, 指向一个静态场景, 其中包含灰色卡和白色背景, 在恒定 (稳定) 相对明亮的光照源下。这是 CTS 验证程序物理设置上面描述的场景。镜头视野中,灰卡大致放在中间,周围为白色背景 |
| 场景 2 | 这是测试人脸检测的场景。相机位于三脚架上, 指向一张包含3人脸的静态图片, 在恒定 (稳定) 相对明亮的照明光源下。 |
| 场景3 | 这是测试图像清晰度的场景。相机位于三脚架上, 指向包含某些边缘的静态图片, 如打印的 ISO 12233 图表。现场应在一个恒定 (稳定) 相对明亮的照明源。 |
| 场景4 | 这是测试纵横比的场景。相机位于三脚架上, 指向一个静态测试页, 其中包含一个黑色圆圈和一个方块。现场应在一个恒定 (稳定) 相对明亮的照明源 |
| 场景5 | 这是测试镜头着色和颜色均匀性的场景。在摄像机前放置一个扩散器。相机位于三脚架上,指向恒定的 (稳定) 相对地明亮的照明源。 |
我们这边就用的一张白色餐巾纸代替了扩散器,将镜头对着光源,用餐巾纸挡住镜头即可。(很好使,反正不用钱)场景的具体说明看its的官方文档
3.5 创建报告
单跑是空的,显示在终端上。暂不创建报告
adb shell
appops set com.android.cts.verifier android:read_device_identifiers allow
exit
adb pull /storage/emulated/0/verifierReports ~/桌面/
4 GTS
进入到tool目录下,手机电脑需要挂VPN
run gts -m GtsCameraTestCases -s xxx
run gts -m GtsCameraTestCases -s 008bcdcf0405
5 STS
安全补丁包测试以后再说
6 GSI
需要烧录谷歌镜像
进入fastboot模式
adb reboot fastboot
刷入对应的谷歌镜像system.img
fastboot flash system system.img
fastboot reboot bootloader
fastboot -w
fastboot oem unlock
adb reboot bootloader
fastboot reboot
打开开发者选项,打开stay awake和USB debugging
进入vts目录,运行 ./vts-tradefed
全跑
run cts-on-gsi -m CtsCameraTestCases
单跑
run cts-on-gsi --include-filter CtsCameraApi25TestCases --include-filter CtsCameraTestCases -s xxx
run cts-on-gsi -m CtsCameraTestCases -t xxx
run cts-on-gsi -o
CTS camera的基础操作和debug的更多相关文章
- 【代码笔记】Java常识性基础补充(二)——数组、ArrayList集合、ASCII编码、 eclipse基础操作、eclipse调试、eclipse项目导入、eclipse快捷键
1.0 如何定义数组以及访问数组中的元素,如下所示.ArrayDemo01.java public class ArrayDemo01 { public static void main(String ...
- 笔记-flask基础操作
笔记-flask基础操作 1. 前言 本文为flask基础学习及操作笔记,主要内容为flask基础操作及相关代码. 2. 开发环境配置 2.1. 编译环境准备 安装相关Lib ...
- python基础操作以及hdfs操作
目录 前言 基础操作 hdfs操作 总结 一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- 【Learning Python】【第二章】Python基础类型和基础操作
基础类型: 整型: py 3.0解决了整数溢出的问题,意味着整型不必考虑32位,64位,有无符号等问题,你写一个1亿亿亿,就是1亿亿亿,不会溢出 a = 10 ** 240 print(a) 执行以上 ...
- Emacs学习心得之 基础操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础操作 1.前言与学习计划2.Emacs基础操作 一. 前言与学习计 ...
- Git基础操作
配置秘钥 1.检查本机有没有秘钥 检查~/.ssh看看是否有名为d_rsa.pub和id_dsa.pub的2个文件. $ ~/.sshbash: /c/Users/lenovo/.ssh: Is a ...
- activiti基础操作
package activitiTest; import java.io.InputStream; import java.util.List; import java.util.zip.ZipInp ...
- 《Genesis-3D开源游戏引擎-官方录制系列视频教程:基础操作篇》
注:本系列教程仅针对引擎编辑器:v1.2.2及以下版本 G3D基础操作 第一课<G3D编辑器初探> G3D编辑器介绍,依托于一个复杂场景,讲解了场景视图及其基本操作,属性面板和工具栏的 ...
随机推荐
- Inceptor常用SQL
1.创建数据库 建一个数据库exchange_platform. DROP DATABASE IF EXISTS exchange_platform CASCADE; CREATE DATABASE ...
- Java常用类库2
1.java.util.Date类 package LESSON9; import java.util.Date; public class demo1 { public static void ma ...
- 2019牛客暑期多校训练营(第九场)J Symmetrical Painting (思维)
传送门 大体思路就是:枚举所有可能的水平对称线,计算面积更新答案. 所有可能的水平对称线:\(L_i,R_i,{L_i+R_i\over 2}\) 计算面积:将所有可能的水平对称线从小到大排序,然后依 ...
- 【noi 2.6_9290】&【poj 2680】Computer Transformation(DP+高精度+重载运算符)
题意:给一个初始值1,每步操作将1替换为01,将0替换为10.问N步操作后有多少对连续的0. 解法:f[i]表示第i步后的答案.可以直接打表发现规律--奇数步后,f[i]=f[i-1]*2-1;偶数步 ...
- 【转】Docker 核心技术与实现原理
转自:https://draveness.me/docker 提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段 ...
- 网站日志统计以及SOA架构
网站日志统计相关术语 PV(Page View):页面浏览量或点击量,衡量用户访问的网页数量 UV(Unique Visitor):独立设备的访问次数,根据客户端发送的 Cookie 区分 IP(In ...
- c++ cin 读入txt的问题
源程序 #include <iostream> using namespace std; struct Stack { int tos; int stackarray[1000]; }; ...
- Leetcode(17)-电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[&quo ...
- Vue Cheat Sheet & Nuxt.js Cheat Sheet
Vue Cheat Sheet & Nuxt.js Cheat Sheet Vue Cheat Sheet https://www.vuemastery.com/pdf/Vue-Essenti ...
- OTA development
OTA development OTA update OTA Over the Air / 无线下载 https://en.wikipedia.org/wiki/Over-the-air_progra ...