系列文章请扫关注公众号!
Android Display Graphics系列文章-汇总
Debugging Guide
Display debug方法
1、 Google开发者选项
● 其中的 选项 Disable HW overlays 可以全推GPU合成以判断问题是否与合成方式有关
● 其中的 Window animation/Transition animation/Animator duration scale 选项,可以让一些过场动画变慢,对于在过场中出现一帧异常的情况,
可以看能否通过改变以上选项让异常帧出现停留的时间变长,方便进一步debug
2、 sfdump
BQdump受到一些限制,有些场景和case很难有效发挥作用,
而sfdump是一个执行简单,且内容很丰富的常规debug信息dump手段,包含了当前合成的layer信息,BufferQueue的信息,合成的信息等等,BQ dump中会做这个dump,也可以单独下cmd做这个dump:
adb shell dumpsys SurfaceFlinger > dumpsf.log
3、 sf transaction log
对于一些使用过程中突然出现一帧图像异常的问题,要准确抓到BQ dump或者SF dump是很困难的,所以可以用如下cmd在sf Log中实时印出layer和BufferQueue的信息:
adb shell setprop vendor.debug.sf.log_transaction 1 // dump Layer and SurfaceFlinger composing info
adb shell setprop vendor.debug.sf.log_repaint 1 // dump Layer and SurfaceFlinger composing info
adb shell dumpsys SurfaceFlinger --mtk // dump Layer and SurfaceFlinger composing info
同时可以结合如下录屏cmd,确认问题发生时间点的layer信息:
adb shell screenrecord --bugreport /sdcard/test.mp4 //这个录像左上角会有timestamp
4、HWC Log
详情关注微信公众号
Android Display Graphics系列文章-汇总