一、如何识别项目布局过度绘制
进到开发者模式,选择打开“调试GPU过度绘制”显示过度绘制区域。如图所示效果
从图中我们可以看到四块不同颜色的色块,从上往下以次是:
深红: GPU过度绘制了 4倍。像素绘制了五次或者更多。这是错误的,要修复它们。
淡红: GPU过度绘制了 3倍。像素绘制了四次,小范围可以接受。
绿色: GPU过度绘制了 2倍。像素绘制了三次。中等大小的绿色区域是可以接受的但你应该尝试优化、减少它们。
蓝色: GPU过度绘制了 1倍。像素绘制了两次。大片的蓝色还是可以接受的(若整个窗口是蓝色的,可以摆脱一层)。
二、如何解决过度绘制
2.1 移除Window默认的Background,getWidow.setBackgroundDrawable(null);
2.2 移除XML布局文件中非必需的Background,减少多层Background
2.3 按需求显示占位背景图片
2.4 减少布局嵌套(扁平化的一个体现,减少View数的深度,也就减少了View树的遍历时间,渲染的时候,前后期的工作,总是 按View树结点来)这些都是一些常识了,我简单带过。
2.5 引入include引入布局,merge,一般推荐使用RelativeLayout。
三、总结
布局过度绘制带来了页面加载缓慢,影响用户的使用体验,造成用户流失,减少过度绘制对App性能有一定的提高。 在日常开发中,要时刻注意页面过度绘制,不仅要完成功能,更重要的是尽己所能更好的完成任务,在结束某项功能之后回头看看,在项目准备上线的时候也应全页面浏览,及时发现及时改正。能提高用户体验提高Ap质量才是做事态度。