Android的GPU过度绘制的优化
2015-05-15 15:29
351 查看
GPU过度绘制指的是在屏幕一个像素上绘制多次(超过一次),比如一个TextView后有背景,那么显示文本的像素至少绘了两次,一次是背景,一次是文本。GPU过度绘制或多或少对性能有些影响。
如何查看是否过度绘制:
设置-开发者选项-调试GPU过度绘制(过度渲染等,不同机器可能不同)
开启后,启动我们的应用,可以看到各种颜色的区域,其中:
蓝色 1x过度绘制
绿色 2x过度绘制
淡红色 3x过度绘制
红色 超过4x过度绘制
最理想的是蓝色,一个像素只绘制一次。这里需要说明的是,如果你的Activity使用了自定义的Theme,在Theme里设了背景,这个不算第一层,但如果在xml的根节点加background,那要算一层.
写了个demo做测试,Activity里除了onCreate里setContentView以外,没有其他逻辑代码。
最深的是TextView和ImageView,位于第4层,几个外层的LinearLayout都设了背景(不设就是透明,像素不会重绘),效果如下图:
可以看到,位于第三层的LinearLayout已经是淡红色,位于第四层的TextView和ImageView呈红色。
如何优化?
1、优化布局,减少层级。
2、减少没必要的背景。
如何查看是否过度绘制:
设置-开发者选项-调试GPU过度绘制(过度渲染等,不同机器可能不同)
开启后,启动我们的应用,可以看到各种颜色的区域,其中:
蓝色 1x过度绘制
绿色 2x过度绘制
淡红色 3x过度绘制
红色 超过4x过度绘制
最理想的是蓝色,一个像素只绘制一次。这里需要说明的是,如果你的Activity使用了自定义的Theme,在Theme里设了背景,这个不算第一层,但如果在xml的根节点加background,那要算一层.
写了个demo做测试,Activity里除了onCreate里setContentView以外,没有其他逻辑代码。
最深的是TextView和ImageView,位于第4层,几个外层的LinearLayout都设了背景(不设就是透明,像素不会重绘),效果如下图:
可以看到,位于第三层的LinearLayout已经是淡红色,位于第四层的TextView和ImageView呈红色。
如何优化?
1、优化布局,减少层级。
2、减少没必要的背景。
相关文章推荐
- Android UI性能优化 -- GPU过度绘制
- Android之GPU过度绘制与图形渲染优化——Hierarchyviewer时间不显示
- 【Android端 APP GPU过度绘制】GPU过度绘制及优化
- Android性能优化之GPU过度绘制与图形渲染优化
- Android开发:GPU过度绘制的优化
- Android端 APP GPU过度绘制及优化
- Android 性能优化——避免过度绘制
- Android过度绘制深度优化---View提前绘制
- 【Android】の基础——布局优化和过度绘制
- Android过度绘制优化心得
- ANDROID应用性能优化之优化列表头像过度绘制
- Android 自定义View过度绘制性能优化<7>
- Android应用性能优化之优化列表头像过度绘制[一]
- Android布局优化之过度绘制
- Android布局优化之过度绘制
- Android过度绘制优化心得
- Android过度绘制的优化
- Android 优化性能之 如何避免--过度绘制
- Android性能优化课程:过度绘制
- # Android UI性能优化—过度绘制篇