Android性能优化(一)布局优化

今天来总结一下Android中的性能优化,在很多面试过程中这个是一个提问频率很高的知识点之一。Android性能优化主要从几个方面来着手,主要包括布局优化,内存泄漏优化,响应速度优化,ListView优化,线程优化等,本篇博客将从布局优化中开始总结。

布局优化实质上就是减少布局的层级数,可以查看一下下面的布局,用到了多层布局嵌套,实际上上不合理的,需要优化的部分还很多。


   
       
           
       
   

第一步,删除布局中无用的控件和层级;


   

第二步,使用性能较低的ViewGroup,官方推荐使用RelativeLayout,FrameLayout和LinearLayout都是一种简单高效的ViewGroup,很多时候单纯的通过LinearLayout或者FrameLayout不能满足布局效果,需要通过嵌套来完成,这种情况下使用RelativeLayout;

  有没有想过为什么官方推荐使用RelativeLayout而不是LinearLayout?
  使用了ViewGroup实际上就相当于增加了布局嵌套,RelativeLayout可以有利的降低使用多层布局嵌套带 来的问题;通俗一点来说,RelativeLayout中的子view可以通过id来控制位置方向,减少了多层布局嵌套,而LinearLayout的orientation属性已经确定了子view的位置方向,如有改变只能增加布局嵌套。

第三步,采用标签,主要为
一、 标签


  @layout/layout_test指定的事另外一个布局文件,主要用来引用多个相同的布局,比如常用的titleBar就可以单独的写成一个布局文件并用include引用;

二、标签
标签一般和标签配套使用,如果当前布局的根布局是一个LinearLayout,并且include引用的外部布局的根布局也是LinearLayout的话,一般可以将外布局的根布局用标签来引用


    

三、标签,需要用到布局的时候再加载
ViewStub继承View且宽高都是0

 

id:ViewStub本身的id
inflateId----->no_data_import:网络异常layout_test的根布局的id;
在需要加载ViewStub中的布局的时候,调用一下方法

  ViewStub no_data_view = (ViewStub) findViewById(R.id.no_data_view);
  no_data_view.setVisibility(View.VISIBLE);

以上为布局优化的重点,欢迎评价!

你可能感兴趣的:(Android性能优化(一)布局优化)