1、優選選擇FrameLayout
源碼最簡單
2、RelativeLayout
不用嵌套,減少佈局View層數
3、LinearLayout
當簡單功能LinearLayout可以滿足時,優先選擇LinearLayout,處理邏輯相對RelativeLayout更加簡單。
4、ConstraintLayout
複雜結構,避免嵌套ViewGroup,使用Hiyachview查看佈局結構及其性能。
結構上:View Tree扁平化結構。避免嵌套等佈局實現,減少佈局容器等,減少視圖層數,子節點數減少。
性能上:測量、佈局方面性能更優異,約比RelativeLayout性能高40%。
Overdraw 過度繪製
屏幕上一個像素點,在同一幀的時間內重複繪製的次數,可以通過debug模式,查看過度繪製的情況。一般是:
藍色:過度繪製1次
綠色:過度繪製2次
淺紅色:過度繪製3層 (小範圍內可以接受)
深紅色:過度繪製4層及以上。(這種必須要接受)
避免overdraw的情況
1、合理使用佈局
2、控件的大小控制
3、儘量少的使用背景。