Android性能优化-布局优化(一)

2019-07-13  本文已影响0人  A代码搬运工

说明

大多数用户感知的卡顿等性能问题的最主要的根源都是渲染性能。Android系统每隔16ms发出VSYNC信号(vertical synchronization-场扫描同步),触发对UI进行渲染,如果每次都渲染成功,这样就能达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的绝大部份操作都必须在16ms内完成.如果你的某个操作花费是24ms,系统在得到VSYNC信号的时候无法进行正常渲染,这样就会产生丢帧现象,那么用户在32ms看到的就是同一帧画面。

指标

检测工具

Layout Inspector/HierarchyViewer

主要原因

其中最主要的两个原因是过渡绘制和布局冗余。

过渡绘制

OverDraw描述的是屏幕的某个像素在同一帧的时间内被绘制多次,在多层次的UI结构里面,如果不可见的UI也在做绘制的操作,这就会导致某些像素区域被绘制多次,这就浪费了大量的CPU以及GPU资源,找到界面滑动不顺畅,界面启动速度慢,手机发热。

查看方式:

手机系统设置->开发者选项->调试GPU过度绘制

img

说明:

  • 原色 没有过度绘制
  • 紫色 1次过度绘制
  • 绿色 2次过度绘制
  • 粉色 3次过度绘制
  • 红色 4次以上过度绘制

解决方案:

布局冗余

布局太过复杂,层级嵌套太深导致绘制操作耗时,且增加内存的消耗,我们的目标是层级扁平化。

使用Layout Inspector,查看结果

img

建议:

上一篇 下一篇

猜你喜欢

热点阅读