android布局的优化方案merge、ViewStub的用法

序:由于在android开发工程中需要开发很多界面,每个界面又是以xml布局的形式进行加载。所以在加载这些布局文件的时候是一个开销很大的过程。因此我们在写布局文件的时候需要考虑一些优化来加快程序的性能。


一、性能优化。


        1.尽量避免多层次的嵌套,因为布局可以无限制的进行嵌套。所以写起来难免有些肆无忌惮,但是布局结构尽量要避免多层次的嵌套来减少开销。数量应最多不要超过10层。


        2.使用merge标签。
          android布局的优化方案merge、ViewStub的用法_第1张图片
         如图,使用merge标签可以减少多余的层次结构,多用于一个布局需要包含另一个布局的时候,或者这一个布局用到的重复样式比较多。在加载merge标签的时候,不会加载父控件,只会加载merge标签中的子view。merge标签结合include一起使用可以灵活的、可复用性强的创建布局。
     

       3. 避免过多的view,填充每个view都要花费一些资源和时间,为了更快速加载,应尽量减少view的加载。如果布局包含的view个数超过80,填充布局花费的时间将成为一个显著的问题。
     

       4.使用ViewStub
           android布局的优化方案merge、ViewStub的用法_第2张图片
     android布局的优化方案merge、ViewStub的用法_第3张图片
            ViewStub有一个比较大的优点就是当你用到这个布局的时候才会去加载,例如我们在布局里写了ViewStub并引用一个我们写好的布局。这时候我们可以在我们的activity中使用的时候,必须先设置visible。 这样这个布局才会被加载显示。否则是不会显示的。为了防止都findViewById 方法,我们可以调用inflate()方法,这个方法会返回一个view,我们可以直接对这个view进行操作。


二、代码可视性的优化。

       1、写布局的时候,可以尽量在父控件中做操作,这样会影响到每个子view。例如,我们经常写距离左边距,这个时候一个在父母局中写一次,而不是在每个子控件中都写一遍。


       2、写线性布局的时候可以使用权重,这样也会对屏幕适配起作用。


       3、android studio中可以直接对多次重用的空间进行属性抽取。
             android布局的优化方案merge、ViewStub的用法_第4张图片
           如图,抽取的属性将会在style中,我们在布局文件中就可以直接引用。多次需要用到这个属性的时候我们可以直接用一行代码引用即可。
      4、使用include标签,来引用比较复杂,或者抽象的布局文件。


     目前就这么多吧,后期想到会继续完善,补充笔记。
 
          

你可能感兴趣的:(优化,android,性能优化,布局,界面)