Camera Log 关键字汇总

1.ANR关键字

关键词为”VM TRACES AT LAST ANR”,数据来源”/data/anr/traces.txt”。
若存在该ANR则输出相应traces,否则输出:

NO ANR VM TRACES FILE (/data/anr/traces.txt): No such file or directory

当出现ANR时,我们可以搜索关键字:

WindowManager|ActivityManager|dispatching timed out|NOT RESPONDING|dispatching timed out|pause timeout for ActivityRecord

如果有trace日志的话可以搜索:

Cmd line|main|crashType|ANR

2.systrace

2.1.命令汇总:

//1.遇到卡顿问题可以抓trace 在代码目录:
/LINUX/android/external/chromium-trace$
//2.执行命令: 
python systrace.py camera hal app binder_driver binder_lock -b 20480 -t 10 -o trace.html
//3.指定进程
python systrace.py -b 32768 -t 5 -o mytrace.html wm gfx input view sched freq
//4.指定模块名
python systrace.py -a 模块名 sched freq idle am wm gfx view binder_driver hal dalvik camera input res
//4.输出全部的trace信息
python systrace.py -b 32768 -t 5 -o mytrace.html gfx input view webview wm am sm audio video camera hal app res dalvik rs bionic power sched irq freq idle disk mmc load sync workq memreclaim regulators

2.2. systrace 查看线程状态

1.绿色:运行中

作用: 查看Running状态的线程,查看其运行的时间,与竞品做对比,分析快或者慢的原因

2.蓝色:

作用:Runnable状态的线程持续时间越长,则表示cpu调度越忙,没有及时处理这个任务,是否后台有太多的任务在跑,是否频率太低

3.白色:

作用: 一般都是在等待事情驱动 在互斥锁上被阻塞

4.橘色 不可中断的睡眠态? 一般都是线程在IO上被阻塞 或者等待磁盘操作 IO操作很慢

大量的橘色出现 表明 低内存状态

5.紫色: 可中断的睡眠态

线程在另一个内核上被阻塞

有可能是正常的

也有可能是不正常的

6.Frames

在每个app进程,都有一个Frames行,正常情况以绿色的圆点表示。当圆点颜色为黄色或者红色时,意味着这一帧超过16.6ms(即发现丢帧),这时需要通过放大那一帧进一步分析问题。该问题主要聚焦在UI Thread和Render Thread这两个线程当中。
7.Alerts
Systrace能自动分析trace中的事件,并能自动高亮性能问题作为一个Alerts,建议调试人员下一步该怎么做。

比如对于丢帧是,点击黄色或红色的Frames圆点便会有相关的提示信息;另外,在systrace的最右上方,有一个Alerts tab可以展开,这里记录着所有的的警告提示信息。

8.快捷操作

导航操作作用
w放大,[+shift]速度更快
s缩小,[+shift]速度更快
a左移,[+shift]速度更快
d右移,[+shift]速度更快
常用操作作用
f放大当前选定区域
m标记当前选定区域
v高亮VSync
g切换是否显示60hz的网格线
0恢复trace到初始态,这里是数字0而非字母o
一般操作作用
h切换是否显示详情
/搜索关键字
enter显示搜索结果,可通过← →定位搜索结果
`显示/隐藏脚本控制台
?显示帮助功能

3.Camera 配置信息查找

通过如下方法dump camera service信息到dump.txt:

adb shell dumpsys media.camera > dump.txt

3.1.查看相机支持的preview size和picture size

在dump结果中,搜索android.scaler.availableStreamConfigurations,出来的结果列表形式如下:

[34 4032 3024 OUTPUT ]

其中,第1个参数为format,第2个参数为width,第3个参数为height,第4个参数为streamType(preview看OUTPUT类型)。

主要的format为:

HAL_PIXEL_FORMAT_RAW16 = 32;
HAL_PIXEL_FORMAT_BLOB = 33;
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED = 34;
HAL_PIXEL_FORMAT_YCbCr_420_888 = 35;
HAL_PIXEL_FORMAT_RAW_OPAQUE = 36;
HAL_PIXEL_FORMAT_RAW10 = 37;
HAL_PIXEL_FORMAT_RAW12 = 38;

HAL_PIXEL_FORMAT_BLOB表示是jpeg stream,对应的size即平时所说的picture size; HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED表示preview stream,对应的size即平时所说的preview size.
例如,[34 4032 3024 OUTPUT ]表示preview size支持4032x3024. [33 4032 2016 OUTPUT ]表示picture size支持4032x2016.
所以availableStreamConfigurations的输出结果中,所有format=34且streamType=OUTPUT的size即为相机支持的preview size.
同理,所有format=33且streamType=OUTPUT的size即为相机支持的picture size.

3.2.查看相机支持的FPS

在dump结果中,搜索android.control.aeAvailableTargetFpsRanges,出来的结果列表形式如下:

[7 30 30 30 ]

数据中每2个一组构成一个FPSRange,其中第1个为FPSRange的下限,第2个为FPSRange的上限。

例如,[7 30 30 30 ]表示相机支持的FPSRange为[7 30]和[30 30].

3.3 查看当前打开的相机及其设置

在dump结果,搜索CameraDeviceClient,出来的结果类似:

Device 3 is open. Client instance dump:

Client priority score: 0 state: 2
Client PID: 7358
Client package: com.android.camera

CameraDeviceClient[3] (0xebbc0500) dump:

CameraDeviceClient[3]中括号里的“3”即为当前打开的camera id.

要查看相机当前的设置,只需在该client的“Dumping camera metadata array”中根据对应的key搜索即可。

例如:查看相机当前设置的FPS

在dump结果中,搜索android.control.aeTargetFpsRange,出来的结果即为当前的FPSRange.

例如,[7 30 ]表示当前设定的FPSRange为[7 30 ].

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值