今天在自己工程里面做了一个压缩包下载,解压文件到App目录,测试机是垃圾手机,用了好几个Root软件都没有成功,然后就在我的代码页面中加了列出下载文件目录所有文件名的代码,当然文件是好几千个,文件在日志里面是打印出来了,但是进去后发现页面切换变得异常的卡,我知道应该日志太多影响了性能正好用TraceView验证一下:
在2.2上面Android Studio Tools菜单最下面可以找到传统的DDMS,打开后是这样的如果不选中某个应用的话上面大多功能是灰色的,所以选中你测试的应用进程,点击图中红色地方
点击后会出现下图然后点击OK
这时红点变成了黑色,这时已经开始记录当前操作所用到的方法消耗的时间,操作界面大概5s后再次点击图1的红框部分,这样就会把这段时间的状态日志显示到右边如图3
上图的上面是一个时间轴,黑色的就是调用方法消耗时间多的时段,我们看下面的方法列表,我的目的是找到我写的不合理的方法,所以系统方法我就不看了直接按乱序找到我们写的哪个方法占用的CPU过多的,点开会看到方法内部调用的子方法占CPU的多少,通常子方法是系统提供的,我们因为多次调用占用了太多的CPU导致运行卡顿,然后针对某个方法进行优化即可。
下面列出主要几列的意思:
以下是翻译
Exclusive: 同级函数本身运行的时间
Inclusive 就是说除统计函数本身运行的时间外再加上调用子函数所运行的时间
Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent 和Children子项,就是指被调用和调用。
Incl: inclusive时间占总时间的白分比
Excl: 执行占总时间的白分比。
Calls+Recur Calls/Total: 调用和重复调用的次数
Time/Call: 总的时间。(ms)
最后附上一个完整的TraceView的各种用法的博客