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编辑器介绍,依托于一个复杂场景,讲解了场景视图及其基本操作,属性面板和工具栏的 ...
随机推荐
- docker部署 springboot 多模块项目+vue
之前学习了docker,今天就来试试将这个项目打包成docker镜像并通过运行一个镜像来运行项目.这里使用的项目是el-admin.是一个开源的springboot后端管理框架(前端vue),有兴趣的 ...
- [USACO12FEB]Symmetry
传送门: https://www.luogu.com.cn/problem/P3046 https://ac.nowcoder.com/acm/contest/6306/G 题意 给定n个不同的点,求 ...
- Codeforces Round #650 (Div. 3) B. Even Array
题目链接:https://codeforces.com/contest/1367/problem/B 题意 有一大小为 $n$ 的数组 $a$,问能否经过交换使所有元素与下标奇偶性相同(0 - ind ...
- Java-Swing的JFrame的一些插件使用详解
JFrame介绍: 在 JFrame 对象中可以使用add方法添加 AWT 或者 Swing 组件. JFrame 有一个 Content Pane,窗口能显示的所有组件都是添加在这个 Content ...
- hdu3033 I love sneakers!
Problem Description After months of hard working, Iserlohn finally wins awesome amount of scholarshi ...
- AtCoder Beginner Contest 173 E - Multiplication 4 (思维)
题意:有\(n\)个数,从中选\(k\)个数累乘,求最大的乘积\((mod\ 10^9+7)\). 题解: 1.假如全是负数,并且选奇数个,那么从小到大选. 2.否则,考虑当前状态,假如\(k\)是奇 ...
- 整体算力提升40% 芯片级安全防护 | 阿里云发布第七代ECS云服务器
2 月 8 日,阿里云宣布推出第七代 ECS 云服务器产品家族,基于最新的神龙架构,相较于上一代整体算力提升 40%,容器部署密度最大可提升 6 倍,是最佳的云原生载体,此外全量搭载安全芯片,实现&q ...
- 命令提示符CMD下切换用户
工作中遇到需要在windows环境中命令提示符下切换为Guest用户执行程序,类似Linux中的su操作. 操作步骤如下:1.用管理员权限运行cmd.2:执行命令:runas /user:userna ...
- 设计模式(二十三)——策略模式(Arrays源码分析)
1 编写鸭子项目,具体要求如下: 1) 有各种鸭子(比如 野鸭.北京鸭.水鸭等, 鸭子有各种行为,比如 叫.飞行等) 2) 显示鸭子的信息 2 传统方案解决鸭子问题的分析和代码实现 1) 传统的设计方 ...
- 【非原创】ZOJ - 4062 Plants vs. Zombies【二分】
题目:戳这里 题意:机器人走过一个花,可以给那个花浇水,给定步数下,问花的最小的最大能量值. 学习博客:戳这里 本人代码: 1 #include <bits/stdc++.h> 2 typ ...