1、功耗问题需要哪种log
功耗问题抓log请遵循几条原则:
---------------------------------------------------------------------------------------------------------------------
(1)测试功耗数据的过程务必使用user版本,并且关闭所有log
(2)除非有特殊需求,任何时候请关闭modem log(包括C2K modem log)
(3)mobile log部分,不要只提供kernel log(或者uart log),务必提供完整的mobile log包
(3)有丰富处理经验,且真的需要打开modem log,务必提供之前没有开modem log时的mobile log分析说明
log的抓取原则:
什么时候提供 |
数据连接关闭 |
数据连接打开 |
必要 |
mobile log(关闭modem log) |
mobile log + net log(关闭modem log) |
如果mobile + net log无法定位问题 |
mobile log + modem log |
mobile log + net log + modem log |
2、量测电流波形需要的工具
量测电流波形需要采样精度高,而且能保存整个电流变化为文件形式的专业工具。
这里推荐:PowerMonitor
官网介绍:
https://www.msoon.com/LabEquipment/PowerMonitor/
其图形界面为
有些量测电流波形提供的波形图为
对比之下精度太低,只能看图,问题不太好定位。
- Powermonitor的使用
1.连接假电池到powermonitor,假电池尽量不要使用大电容【注:假电池需要带NTC 电阻,否则可能不能正常开机】
2.如果开机powermonitor 出现红灯现象,可以设置Parameters à Power-up current limit 滑动到值比较大的地方
这样可以避免开机大电流,因为powermonitor的默认设定较低值,容易出现过流保护,从而导致powermonitor 红灯亮起
3.设置好电压4V【Set Vout】,然后点击 Vout Enable
4.点击Run 查看波形
5.录制好所需的波形后,可以点击Save 保存波形
3、thermal log
- 为什么需要抓thermal log
我们使用WhatsTemp 这个APP来抓取thermal log
thermal log里面包含了CPU/GPU使用信息,以及thermal limit的状况
对我们分析动态场景的功耗问题是极为有用的
- APP哪里下载
WhatsTemp可以在online上下载到:Home > Tool > WhatsTemp
- APP使用方法
4、systrace/ftrace
systrace/ftrace 也是我们分析功耗问题常用的工具
-------------------------------------------------------------------------------------------------------------
thermal log只能帮你粗略看CPU的loading状况,
而systrace/ftrace可以帮你定位到是谁在使用CPU,也可以用来分析idle状态下的毛刺波形是谁触发的
我们通常会把两者结合起来用:
用thermal log做初步分析比较loading的差异,用systrace/ftrace来定位root cause
5、wireshark
- 为什么要使用wireshark
wireshark是我们用来分析netlog的一个工具
通常用来定位开数据连接的待机功耗问题,查找是哪个APP/Process在使用数据
- 哪里可以下载
wireshark可以在公共网络上下载到,一般公司负责协议/TCP/Wifi这些部门也会有这个工具
- 怎么使用wireshark
首先需要在抓log时,打开mtklog中的netlog,就可以找到netlog对应的文件
用wireshark打开这个.cap文件,界面如下
有时候最前面的【时间戳】格式会不对,会跟mobile log对不上,如果遇到了,可以通过如下菜单调整
[View]->[Time Display Format]
6、layerdump
命令:adb shell dumpsys SurfaceFlinger
下面问launcher的图层:
h/w composer state:
h/w composer present and enabled
Hardware Composer state (version 01050000):
mDebugForceFakeVSync=0
Display[0] configurations (* current):
* 0: 1080x1920, xdpi=368.114990, ydpi=368.114990, refresh=16553550, colorTransform=0
numHwLayers=5, flags=00000000
type | handle | hint | flag | tr | blnd | format | source crop (l,t,r,b) | frame | name
-----------+----------+------+------+----+------+-------------+--------------------------------+------------------------+------
HWC | 7d2f027f00 | 0002 | 0000 | 00 | 0100 | RGBx_8888 | 0.0, 0.0, 1080.0, 1920.0 | 0, 0, 1080, 1920 | com.android.systemui.ImageWallpaper
HWC | 7d2f027680 | 0002 | 0000 | 00 | 0105 | RGBA_8888 | 0.0, 0.0, 1080.0, 1920.0 | 0, 0, 1080, 1920 | com.android.launcher3/com.android.launcher3.Launcher
HWC | 7d2f027200 | 0002 | 0000 | 00 | 0105 | RGBA_8888 | 0.0, 0.0, 1080.0, 54.0 | 0, 0, 1080, 54 | StatusBar
HWC | 7d2b367d80 | 0002 | 0000 | 00 | 0105 | RGBA_8888 | 0.0, 0.0, 1080.0, 108.0 | 0, 1812, 1080, 1920 | NavigationBar
FB TARGET | 7d2f626e80 | 0000 | 0000 | 00 | 0105 | RGBA_8888 | 0.0, 0.0, 1080.0, 1920.0 | 0, 0, 1080, 1920 | HWC_FRAMEBUFFER_TARGET