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、尽量少的使用背景。