绘制优化主要是界面流畅度的优化。
View 绘制流程:measure、layout、draw,运行在系统应用框架层,真正将数据渲染到屏幕上的是系统 Native 层 SurfaceFlinger 服务来完成。
FPS:帧数, 1 秒时间内传输数据的图片的量,View 的最佳绘制频率为 60fps,要求每帧绘制时间 <= 16ms。
- 布局 Layout 过于复杂,无法在 16ms 完成渲染。
- 同一个时间动画执行的次数过多,导致 CPU 或 GPU 负载过重。
- View 过度绘制,导致某些像素在同一帧时间内被绘制多次。
- 在 UI 线程中做了耗时操作。
- GC 回收时暂停时间过长或者频繁的 GC 产生大量的暂停时间。
Android手机上自带的一个辅助图形监测工具,用于渲染、绘制性能追踪。
RelativeLayout 存在性能低的问题,原因是 RelativeLayout 会对子 View 做两次测量。但如果在 LinearLayout 中有 weight 属性,也需要进行两次测量,但是因为没有更多的依赖关系,所以仍然会比RelativeLayout的效率高。
参考阅读