Android应用开发中View绘制的一些优化点解析

2019-12-10 18:40:55刘景俊

    布局(layout)、以及绘制(draw)过程中的时间消耗(见图3)。很明显,该项(LinearLayout)花费了最长的时间去
    测量、布局、绘制,你应该花点精力去优化它们。

Android应用开发,View

 完成该布局文件渲染的时间分别为:
                测量过程:0.977ms
                布局过程: 0.167ms
                绘制过程:2.717ms
 
 修改布局文件
 
       由于上图中布局效率的低下是因为一个内嵌的 LinearLayout控件,通过扁平化布局文件----让布局变得
  更浅更宽,而不是变得更窄更深层次 ,这样就能提升效率了。 一个RelativeLayout 作为根节点也能提供如上
  的布局效果(即图1)。 因此,  使用RelativeLayout 改变布局的设计,你可以看到现在我们的布局层次只有2层了。
  新的布局层次树如下:

Android应用开发,View

  现在,完成该布局文件渲染的时间分别为:
                      测量过程:0.977ms
                      布局过程:0.167ms
                      绘制过程:2.717ms
   
      也许它只是一点点微小的改进,但这次它会被多次调用,因为是ListView会布局所有的Item,累积起来,
 改进后效果还是非常可观地。

      大部分的时间差异是由于使用了带有layout_weight 属性的LinearLayout ,它能减缓测量过程的速度。这仅仅
 是一个例子,即每个布局都应该合适地被使用以及你应该认真考虑是否有必要采用“layout_weight" 属性。