Android UI渲染流程及优化

末蓝、 2023-10-10 10:30 120阅读 0赞

CPU和GPU

CPU作为”中央处理器”,除了负责逻辑运算外,还需要做内存管理,显示操作,因此随着各种复杂App的出现,其实际运算的性能会大打折扣。
设计原由: 为了提高图像显示效率以及显示复杂的图像,设计出了GPU
主要功能:为了帮助CPU分担图像显示
在这里插入图片描述

XML布局显示至屏幕的流程

在这里插入图片描述

FPS

12fps:画面帧率高于每秒约10-12帧时,眼睛会认为它是连贯的
24fps:有声电影拍摄一般为每秒24帧
30fps:早期动态电子游戏,一般会在每秒30帧左右
60fps:手机交互过程中,需要触摸和反馈,需要60帧才能达到不卡顿的效果

Android每隔16ms就会发送一个vsyc信号,对我们的UI进行渲染,如果每次都能成功的话,就可以达到流畅的60fps的效果。

所以我们的优化目标是
  • CPU减少XML转换成对象的时间
  • GPU减少重复绘制

过渡绘制

GPU每隔16ms渲染一次,如果CPU传递过来的图像有重复的位置,会造成用户只能看到顶层画面,而底层画面则被覆盖,底层部分的绘制虽然用户无法看到,但同样占据了计算资源,造成不必要的绘制,这种情况就叫做过渡绘制。

小结

UI优化解决方案
  • 布局中的背景是否需要
  • 是否可以删除多余布局
  • 自定义View是否进行了相应的裁剪
  • 布局是否够扁平化
  • 使用Merge标签排除多余一层ViewGroup容器
  • 使用ViewStub进行布局的懒加载

发表评论

表情:
评论列表 (有 0 条评论,120人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android UI渲染流程优化

    CPU和GPU CPU作为"中央处理器",除了负责逻辑运算外,还需要做内存管理,显示操作,因此随着各种复杂App的出现,其实际运算的性能会大打折扣。 设计原由: 为了

    相关 浏览器渲染流程

    概念解释 DOM Tree:浏览器将HTML解析成树形的数据结构。 CSS Rule Tree:浏览器将CSS解析成树形的数据结构。 Render Tree: DOM

    相关 浏览器渲染页面流程

    下面是渲染引擎在取得内容之后的基本流程: 解析HTML以构建dom树-构建render树-布局render树-绘制render树 下面是 浏览器渲染页面的具体过程: