Android 过渡绘制检测和部分解决方法

本文探讨了Android应用中的过渡绘制问题,它会导致GPU资源浪费和设备卡顿。过渡绘制可通过颜色标记(原色、蓝色、绿色、粉色、红色)进行检测。过度绘制的影响包括延长渲染时间和降低用户体验。解决方案包括移除window背景、避免重复背景、使用ViewStub懒加载、采用ConstraintLayout以及利用include标签优化布局。Android Studio的HierarchyViewer和开发者选项提供了检测工具。
摘要由CSDN通过智能技术生成

过渡绘制

1.什么是过渡绘制

过度绘制(Overdraw)是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的 UI 结构里面,如果不可见的 UI 也在做绘制的操作,会导致某些像素区域被绘制了多次,同时也会浪费大量的 CPU 以及 GPU 资源.

这里写图片描述
原色:没有过度绘制
蓝色:1 次过度绘制
绿色:2 次过度绘制
粉色:3 次过度绘制
红色:4 次及以上过度绘制

会造成什么问题?

加载页面是会大量消耗GPU,导致渲染时间延长,手机卡顿不流畅。

2.绘制限制

手机屏幕由很多像素点组成,通过变换每个像素点的颜色,形成各种各样的图像。那么每个像素点的色值数据保存在哪里?

GPU控制的一块缓冲区中,这块缓冲区叫做Frame Buffer(也就是帧缓冲区)。可以简单理解成一个二维数组,数组中的每一个元素对应着手机屏幕上的一个像素点,元素的值代表着屏幕上对应的像素点要显示的颜色。优化屏幕画面不断变化,需要这个buffer不断地更新数据,一个FrameBuffer肯定是应接不暇的,因此GPU除了Frame Buffer,用以交给手机屏幕进行绘制外,还有一个缓冲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值