布局(layout)、以及绘制(draw)过程中的时间消耗(见图3)。很明显,该项(LinearLayout)花费了最长的时间去
测量、布局、绘制,你应该花点精力去优化它们。
完成该布局文件渲染的时间分别为:
测量过程:0.977ms
布局过程: 0.167ms
绘制过程:2.717ms
修改布局文件
由于上图中布局效率的低下是因为一个内嵌的 LinearLayout控件,通过扁平化布局文件----让布局变得
更浅更宽,而不是变得更窄更深层次 ,这样就能提升效率了。 一个RelativeLayout 作为根节点也能提供如上
的布局效果(即图1)。 因此, 使用RelativeLayout 改变布局的设计,你可以看到现在我们的布局层次只有2层了。
新的布局层次树如下:
现在,完成该布局文件渲染的时间分别为:
测量过程:0.977ms
布局过程:0.167ms
绘制过程:2.717ms
也许它只是一点点微小的改进,但这次它会被多次调用,因为是ListView会布局所有的Item,累积起来,
改进后效果还是非常可观地。
大部分的时间差异是由于使用了带有layout_weight 属性的LinearLayout ,它能减缓测量过程的速度。这仅仅
是一个例子,即每个布局都应该合适地被使用以及你应该认真考虑是否有必要采用“layout_weight" 属性。












