Android应用性能优化最佳实践.2.4 避免过度绘制
2.4 避免过度绘制
过度绘制(Overdraw)是指在屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的UI结构(如带背景的TextView)中,如果不可见的UI也在做绘制的操作,就会导致某些像素区域被绘制了多次,从而浪费多余的CPU以及GPU资源。
当设计上追求更华丽的视觉效果时,我们很容易陷入采用复杂的多层次重叠视图来实现这种视觉效果的怪圈。这很容易导致大量的性能问题,为了获得最佳性能,必须尽量减少Overdraw情况发生。
我们一般在XML布局和自定义控件中绘制,因此可以看出导致过度绘制的主要原因是:
XML布局->控件有重叠且都有设置背景
View自绘-> View.OnDraw里面同一个区域被绘制多次
2.4.1 过度绘制检测工具
要知道是否有过度绘制的情况,可以通过手机设置中的开发者选项,打开Show GPU