android UI 优化系之工具traceview (转)

工欲善其事必先利其器。很多时候,学会使用一些工具能大大提高我们的开发效率,使我们事半功倍。所以,我要来分享一下一个工具:traceview。
Traceview是androidSdk里的一个性能分析工具,在优化UI的时候特别有用。这个工具可以在以下目录中找到,如下图: 
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)
 
这个工具可以用来分析android 程序产生的  .trace 文件。下面我们就来看看如何产生这个.trace. 
现在假设我有一个叫做doDraw 的方法,我想对它进行性能分析。那么我需要在方法的开头加上 
android.os.Debug.startMethodTracing("/sdcard/myView"); 
方法的结尾加上   
android.os.Debug.stopMethodTracing(); 
加完后如下图所示
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)  
加了以上两个语句之后,执行程序,可以看到  模拟器的sd 卡上多了一个文件。 
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)  
下面我们用ddmsmyView.trace文件push到本地。之后使用Traceview查看此文件,Traceview使用方法如下图: 
 
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转) 
打开后得到如下的一个窗口如下图: 
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)  
 
 
从上图可以看出,程序的大部分时间花在了绿色部分上。我们可以查看下半部分的详细分析,如下图
 
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)  
 
我们可以看到,绿色部分占用时间为e.3 – 20.3% = 45%. 也就是说,绿色部分花去了整个时间长度的45%,这个就是我们程序的瓶颈所在。单击绿色条目左侧的加号,可以展开明细,如下图
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)  
 
我们可以看到,这45%的时间中,所有时间都被Canvas.drawBitmap占用了。那么Canvas.drawBitmap是哪里调用的呢?我们单击此条目,这个时候展开了调用关系,如下图: 
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)  
我们看到,调用Canvas.drawBitmap的是BitmapDrawable.draw.对应我们doDraw方法中的d.draw语句,因为d是一个BitmapDrawable的对象。如下图: 
android <wbr>UI <wbr>优化系之工具 <wbr>traceview <wbr> <wbr>(转)  
通过以上的分析,我们找到了程序的瓶颈就在于d.draw,所以 绘制一个BitmapDrawable在模拟器上是非常慢的我们可以用此方法找出你程序的瓶颈,进而进行相应的优化
一些统计字段的解释:

Exclusive: 同级函数本身运行的时间

Inclusive 就是说除统计函数本身运行的时间外再加上调用子函数所运行的时间

Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent 和Children子项,就是指被调用和调用。

Incl: inclusive时间占总时间的白分比

Excl: 执行占总时间的白分比。

Calls+Recur Calls/Total: 调用和重复调用的次数

Time/Call: 总的时间。(ms)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值