一、五種佈局方式的使用頻率(由高到低)佈局
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和內存。