美文网首页
UI绘制优化

UI绘制优化

作者: Coder_Sven | 来源:发表于2019-12-18 11:40 被阅读0次

60Hz 刷新频率由来

12 fps :由于人类眼睛的特殊生理结构,如果所看画面之帧率高于每秒约 10-12 帧的时候,就会

认为是连贯的

24 fps :有声电影的拍摄及播放帧率均为每秒 24 帧,对一般人而言已算可接受

30 fps :早期的高动态电子游戏,帧率少于每秒 30 帧的话就会显得不连贯,这是因为没有动态模

糊使流畅度降低

60 fps 在与手机交互过程中,如触摸和反馈 60 帧以下人是能感觉出来的。 60 帧以上不能察觉

变化

当帧率低于 60 fps 时感觉的画面的卡顿和迟滞现象

Android 系统每隔 16ms 发出 VSYNC 信号 (1000ms/60=16.66ms) ,触发对 UI 进行渲染, 如果每次渲染都成

功这样就能够达到流畅的画面所需要的 60fps ,为了能够实现 60fps ,这意味着计算渲染的大多数操作都必须

在 16ms 内完成。

卡顿原理分析

当这一帧画面渲染时间超过16ms的时候,垂直同步机制会让显示器硬件等待GPU完成栅格化渲染操作,这样会让这一帧画面,多停留了16ms,甚至更多,这样就造成了用户看起来画面停顿。

16毫秒的时间主要被两件事情所占用

第一件:将UI对象转换为一系列多边形和纹理(1)(?)

第二件:CPU传递处理数据到GPU。所以很明显,我们要缩短

这两部分的时间,也就是说需要尽量减少对象转换的次数,以及上

传数据的次数(?布局自定义)

如何减少这两部分的时间以至于在16ms完成呢

CPU减少xml转换成对象的时间

GPU减少重复绘制的时间

1562584925406.png

什么是过度绘制

GPU的绘制过程,就跟刷墙一样,一层层的进行,16ms刷一次.这样就会造成图层覆盖的现象,即无用的图层还被绘制在底层,造成不必要的浪费。

GPU过度绘制几种情况

1,自定义控件中,ondraw方法做了过多重复绘制

2,布局层次太深,重叠性太强。用户看不到的区域GPU也会渲染,导致耗时增加

1562585433055.png

过度绘制优化方法:

1,减少背景重复

​ 注意主题中的设置,去掉所有activity主题设置中的属性
​ 直接在styles.xml中设置<item name="android:windowBackground">@null</item>

​ 非业务需要,不要去设置背景

2,使用裁剪减少控件之间的重合部分

布局的优化(主要减少cpu工作量)

常用工具

1,Android/sdk/tools/bin/uiautomatorviewer.bat

2,Android\sdk\tools\monitor.bat

3,Device Monitor窗口中Hierarchy view

注意点:
1.能在一个平面显示的内容,尽量只用一个容器
2.尽可能把相同的容器合并merge
3.能复用的代码,用include处理,可以减少GPU重复工作

相关文章

  • 性能优化

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

  • Android UI性能优化

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

  • UI优化

    UI优化,也就是体验优化 常见优化场景 1) 过渡绘制 2) 布局复杂度 3) 逻辑优化 4) 内存使用优化 UI...

  • Android UI渲染优化

    Android UI渲染优化 1. 过度绘制优化 什么是过度绘制? Overdraw(过度绘制)描述的是屏幕上的某...

  • android性能优化全方面解析(二)

    补昨天UI优化后半段,前半段点开主页就有啦 一 绘制优化 那么什么是绘制优化?绘制优化主要是指View的Ondra...

  • Android App优化

    本篇文章来简单介绍一下App优化的方式。 1、UI优化 UI优化主要是提高UI的绘制效率,包括减少UI层次,提高初...

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

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

  • 无标题文章

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

  • UI绘制优化

    60Hz 刷新频率由来 12 fps :由于人类眼睛的特殊生理结构,如果所看画面之帧率高于每秒约 10-12 帧的...

  • UI绘制优化

    CPU和GPU 名称介绍作用CPU处理器将 UI 对象转换为一系列多边形和纹理(计算画图的方法,可以理解为通过公式...

网友评论

      本文标题:UI绘制优化

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