美文网首页性能优化
性能优化(二,UI绘制优化)

性能优化(二,UI绘制优化)

作者: 腊鸡程序员 | 来源:发表于2019-05-02 17:07 被阅读0次
430.jpg
GPU渲染流程

我们要做UI绘制优化,首先要了解GPU的绘制流程.即问题产生的原因,APP为什么会出现画面的卡顿和不流畅.
我们在布局文件或代码中绘制一个图形,是怎样显示到手机屏幕中的呢?
例如,在xml中写一个button布局

  1. 首先,通过layoutinflater生成一个button对象,保存到内存中,这个对象保存button的信息,包括左上右下和宽高
  2. 然后,CPU需要计算,处理成多维的向量图形,可以理解为,CPU通过计算,给出一个公式,告诉GPU这个图形用这个公式去渲染.
  3. 最后,GPU将矢量图形栅格化,进行像素填充,完成绘制.
image.png
60HZ刷新频率由来

在与手机交互过程中,如触摸和反馈,60帧以下人是可以感觉出来的.60帧以上不能察觉变化.即每秒钟要有60帧画面.1000ms/60 = 16.6ms.即每16ms就要进行一次渲染.
Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能达到流畅画面所需要的60fps.这意味着计算渲染的大多数操作都必须在16ms内完成.
当这一帧画面渲染时长超过16ms时,垂直同步机制会让显示器 硬件等待GPU完成栅格化渲染操作,这样会让这一帧画面多停留16ms甚至更多.这样就造成了用户看起来画面停顿.

优化方案
  1. 过度绘制优化


    image.png
image.png

减少不必要的嵌套
使用merger避免父布局重叠
使用include复用


image.png
  1. 布局优化


    image.png

相关文章

  • 性能优化

    Android UI性能优化实战 识别绘制中的性能问题性能优化(二) UI 绘制优化 通过Hierarchy Vi...

  • Android UI性能优化

    Ui性能优化 参考博客:Android UI性能优化实战 识别绘制中的性能问题Android UI性能优化详解 1...

  • IOS - UIView绘制流程 (displayLayer)(

    性能优化之 UI渲染优化 - 异步渲染 使用displayLayer进行异步绘制

  • 性能优化(二,UI绘制优化)

    GPU渲染流程 我们要做UI绘制优化,首先要了解GPU的绘制流程.即问题产生的原因,APP为什么会出现画面的卡顿和...

  • 无标题文章

    APP性能优化 UI卡顿优化 View的绘制原理 UI卡顿原理分析 UI卡顿检测分析 BlockCanary原理分...

  • 面试复习之Android性能优化相关

    Android性能优化相关 1. UI卡顿的原因,如何优化? View的绘制帧数保持60fps最佳,这要求没帧绘制...

  • 笔记:Android 性能优化

    Android 性能优化 Android性能优化主要有 布局优化、绘制优化、内存泄漏优化、响应速度优化、ListV...

  • Android UI优化

    Android性能优化 - UI篇Android性能优化 - CPU/GPU篇 一、UI层级优化 借助工具:Hie...

  • 性能优化之UI绘制优化

    UI绘制优化 一.CPU与GPU工作流程 cpu:中央处理器(用于计算) gpu:图形处理器(用于显示) C...

  • app性能优化(转)

    Android面试——APP性能优化Android应用性能优化基础知识。布局优化避免OverDraw过渡绘制优化布...

网友评论

    本文标题:性能优化(二,UI绘制优化)

    本文链接:https://www.haomeiwen.com/subject/gfqvnqtx.html