一、五种布局方式的使用频率(由高到低)布局
RelativeLayout(相对布局) 性能
LinearLayout(线性布局)xml
FrameLayout(帧布局)内存
TableLayout(表格布局)it
AbsoluteLayout(绝对布局)效率
最后两种布局方式是最经常使用到的,基本上全部的Activity中很难摆脱这两种布局方式。layout
二、Android布局原则di
尽可能多使用LinearLayout(线性布局)和RelativeLayout(相对布局),不要使用AbsoluteLayout(绝对布局);文件
在布局层次同样的状况下,建议使用LinearLayout(线性布局)代替RelativeLayout(相对布局),由于LinearLayout的性能稍高一些;vi
将可复用的组件抽取出来经过include标签使用;
使用ViewStub标签来加载一些不经常使用的布局;
使用merge标签来减小布局的嵌套层次。
三、< include /> 的使用
做用:将共用的组件抽取出来单独放到一个xml文件中,而后使用include标签导入共用布局。
效果:提升UI的制做和复用效率,也能保证制做的UI布局更加规整和易维护。
使用:<include layout="@layout/xxxx" />
四、使用merge合并UI布局
做用:合并UI布局,使用该标签能减低UI布局的嵌套层次
使用场景:布局根节点是FrameLayout且不须要设置background或padding等属性,能够用merge代替;某布局做为自布局被其余布局include时,使用merge当作该布局的顶结点,这样在被引入时顶结点会被自动忽略。
五、使用ViewStub进行惰性加载
做用:ViewStub标签同include标签同样能够用来引入一个外部布局,不一样的是,ViewStub引入的布局默认不会扩张,既不会占用显示也不会占用位置,从而在解析Layout时节省CPU和内存。