标签归档:traceview

Android APP启动速度优化

使用traceview跟踪启动速度

1.在application的onCreate中添加

2.在首个展示的页面中添加

3.从sdk从获取trace文件并使用android studio打开

call chart图,按调用栈分开

call chart图 , 按调用栈和时序来绘制,适合分析一个流程中的耗时

flame chart 图,调用栈从底部到顶部,一般遇到平顶的情况表示可能有性能问题

flame chart 图 相同调用栈合并,适合看频繁callback导致耗时问题

4.分析call chart图或者flame chart

从call chart图可以看到,每个第一列都是一次主线程的消息循环,

第一次循环回调了Application.oncreate,鼠标移动到目标位置可以看到 Application .onCreate耗时500毫秒

第二次消息循环做了hanldeLunchActivity,耗时1.4秒

第三次消息循环是做了performtraversals ,耗时130毫秒

整个启动时间耗时两秒左右,从这里可以看出 hanldeLunchActivity 和 Application.oncrate是非常耗时的

再分析这两次回调, 可以从下一格图,占用上一格的百分比 看出执行耗时比例。 查看更多

Android 使用systrace进行卡顿分析

前面说到使用traceview来分析启动速度,但是traceview用于分析卡顿并不是很合适的,原因是traceview对性能的损耗很大,即使不卡顿使用traceview之后也会卡得飞起

1.调用方法

systrace可以通过命令直接调用,也可以通过sdk里的android device monitor 调用

systrace所在的目录:AndroidSdk\platform-tools\systrace\systrace.py

android device monitor :AndroidSdk\tools\monitor.bat (实际上调用的也是 systrace.py )

打开 monitor 后选中 systrace 可以看到以下内容

monitor界面

系统根据不同的category,如Graphics绘制 Cpu调度 等 已经在源码里的关键位置提前埋好了点。选项中的Appliation表示用户app自己埋的点是否启用 查看更多