Android系统每隔16ms发出信号,触发ui渲染,帧率60fps,人眼无法感知。渲染超过16ms就会出现掉帧现象,不流畅。
可以用系统工具Hierarchy View分析布局层级
导致UI性能问题原因:
1. 太多重叠的背景
2. 太多重叠的view
3. layout太多层级
解决方法:
1. 去除一些在最底层的永远不会显示的背景
2. 使用<include>、<merge>(避免include的layout又产生多一层级)、<viewstub>(可指定view,需要显示的时候再加载) 标签优化布局
3. 尽量用RelativeLayout、ConstrainLayout布局
PS:可用于替换目前相对比较复杂控件的Material Design控件
CardView 带圆角的FrameLayout,可用于列表的单项中
GridLayout 网格布局,替换tablelayout
AppBarLayout 顶部栏
CoordinatorLayout 可实现滑动悬浮