effective java中有一篇介绍到要谨慎的进行优化。
优化前要有绝对清晰的优化方案,否则不要轻易选择优化。特别是当API已经被广泛使用的时候。
每次试图做优化之前和之后,请对性能进行测量。
要做优化,首先要弄明白你的程序把时间花在了什么地方,这一点并不容易。很有可能你花费了大量的时间进行了优化,反而导致性能更坏。
性能剖析工具有助于我们做出决定:应该把重心放在什么地方。
android里面也提供了这样的工具,叫做traceview。
要使用traceview首先要生成*.trace文件。
生成方法如下:
在开始跟踪的地方加入下面红色框中代码
结束位置加
注意:生成的文件路径可以自己指定,sdcard或者别的地方,写在data可能会没有权限写,我是直接放入了my_tracker.trace文件,又改了权限。
最后代码之行结束后,执行adb pull /data/my_tracker.trace XXXX到一个目录
进入android sdk的tools 目录 执行
traceview trace文件的绝对路径
即可打开如下界面:
在traceview的右半部统计字段中:
Exclusive:统计函数本身运行的时间
Inclusive 就是说除统计函数本身运行的时间外再加上调用子函数所运行的时间
Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent 和Children子项,就是指被调用和调用。
Incl: inclusive时间占总时间的白分比
Excl: 执行占总时间的白分比。
Calls+Recur Calls/Total: 调用和重复调用的次数
Time/Call: 总的时间。(ms)
抛砖引玉,android优化的入了门,才能发挥大家的潜力,否则空有浑身力气却只能望“优化”二字兴叹。
大家有好的优化的方法,愿意分享的,欢迎您的指点。
相关参考:http://developer.android.com/guide/developing/debugging/debugging-tracing.html
http://blog.csdn.net/xiaominghimi/article/details/6105212
源码不知如何用附件,放到了网盘:
http://115.com/file/dne2x5rg#TrackerViewDemo.rar