【写在前面】
网上资料梳理,侵删烦请联系。或有表达错误,欢迎指出纠正。
【参考引用】
https://blog.youkuaiyun.com/sgzy001/article/details/14648081
CTS
CTS是什么
为了保证开发的应用在所有兼容Android的设备上正常运行,并保证一致的用户体验,Google制定了CTS(Compatibility Test Suite)来确保设备运行的Android系统全面兼容Android规范,Google也提供了一份兼容性标准文档(Compatibility Definition Document, CDD)。
CTS测试过程
cts一般采用全包测试(测一半,效果高)命令。
①连接手机,测试时不能黑屏;(adb devices查看已识别和连接设备)
②进入:Desktop/CTS/CTS10R3(版本自选)/android-cts
③该目录下右键open in Terminal:
/android-cts# ./tools/cts-tradefed
④出现cts-tf > :复制全包测试(测一半,效果高)命令
整个测试时间会很长,甚至持续一周。
⑤测试结束后
Desktop/CTS/CTS10R3(版本自选)/android-cts/results里会自动生成所有文档,进入当前文档可查看test_result结果。
Desktop/CTS/CTS10R3(版本自选)/android-cts/logs进入生成的对应文档,打开device_logcat_setup_***查看日志,据此查看具体错误。
注:测试环境执行测试命令后,若出现安装,则始终允许并安装,直到开始出现passed。
CTS测试
全包测试
run cts -m CtsCameraTestCases -a arm64-v8a --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker
run cts -m CtsCameraTestCases -a armeabi-v7a --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker
单包测试
将failed项单独进行测试。
run cts -m CtsCameraTestCases -t android.hardware.camera2.cts.MultiViewTest#testDualCameraPreview -a arm64-v8a --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker
其中,android.hardware.camera2.cts.MultiViewTest#testDualCameraPreview
为failed项,可进行更改。
测试问题
①输入命令无反应
直接执行:
run cts -m CtsCameraTestCases -t android.hardware.camera2.cts.MultiViewTest#testDualCameraPreview
②单包自测cts,failed项与success项一直为0
run cts -m CtsCameraTestCases -t android.hardware.camera2.cts.StillCaptureTest#testJpegExif[1] -a arm64-v8a
fail项修改
修改cts的bug不是修改cts testcase的代码。
过cts的目的是为了让系统可以兼容更多的app,当cts某条case fail时,说明系统存在问题,需要修改系统代码去让cts pass。
修改cts bug时,通过查看android-cts/results目录下的testResult.xml文件,找到fail原因,一般testResult.xml文件中会标示出fail的test class 所在行。
查找关键词 Test result=“fail”
camera参数配置检查:
adb shell dumpsys media.camera -v 1 > xxx.log
检查camera参数与报错参数是否一致。
常见报错
①android.hardware.camera2.cts.RecordingTest#xxxxx
报错类似:
Camera 0: Video duration doesn't match: recorded 2564.000000ms, expected [4640.000000,6960.000488]ms.
解决方法:
第一种修改media profiles对应Camera,对应fail项size的frameRate和drvier输出的帧率一致;
第二种修改drvier对应video size的帧率和media profiles一致。
另:media profiles的文件在手机中的位置(可以直接修改push验证,也可以确认修改是否正确生效):/vendor/etc/media_profiles_V1_0.xml