之前有简单了解过Method Trace,之前对他的了解是可以用来分析性能问题,比如某个方法的耗时,由于SysTrace 分析性能问题更优,就把Method Trace 渐渐忘记了.
最近看到网上有人用Method Trace 来分析代码流程,发现对自己平时分析系统源码太有用了,就记录一下使用的办法.
1.打开Android Studio 的Profile 窗口
正常操作的情况下点击工具栏的Profile 按钮就可以,如果点击Profile 后,窗口消失了,可以把鼠标放到Android Studio 左下方的白色矩形图标上,会弹出一个窗口,里面会有Profile 菜单项,点击就可以重新出来.
2.选择要分析进程
点击Profile窗口中的+ 按钮,选择要分析的进程,之后就可以看到app 相关资源信息,包含:CPU /内存/网络/ENERGY .这里讨论的是使用Method Trace 分析代码流程,主要是用CPU 这一项.
点击CPU 后就会出现一个新的页面.在下面第2个图片中的位置选择Trace Java Methods 后,在点击Record. 然后去操作手机里面的app,操作完成后在stop 就可以了
3.分析Method Trace
Summay 有介绍使用办法:
放大: 按W 键或者向前滑动鼠标的同时按下Ctrl 键
缩小: 按S 键或者向前滑动鼠标的同时按下Ctrl 键
左移: 按A 或者左移鼠标的同时按下空格键
右移: 按D 或者右移鼠标的同时按下空格键
这里以分析主线程Main 为例,点击Main左边的图标可以展开更新的信息.
右边还有几个按钮,Top Down 是从上到下显示方法的调用信息,Bottom Up 相方就是从上到下. 个人习惯Top Down的方式,也是正常的调用流程. 实际使用的时候可以直接在Top down 的搜索框中搜索,字体是深黑色的就是搜索的方法调用的地方,一一点开就可以了上面截图右上角还有4个按钮:
减号:可以缩小时间线视图
加号:放大时间线视图
重置:恢复默认状态
选中:鼠标选择时间线下方的某个函数后,点击选择键(或者按下M) 可以直接放到视图并显示当前函数具体调用情况
Top Down 搜索效果图:
鼠标选择时间线下方的某个函数后,点击选择键(或者按下M) 可以直接放到视图并显示当前函数具体调用情况效果图: