浅谈Android UI渲染性能检测

  • 内容
  • 评论
  • 相关

谈到Android性能检测、优化,肯定要提到Google发布了关于 Android性能优化典范的专题,建议开发人员观看学习 (https://www.youtube.com/playlist?list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE)(需爬墙)。

那接下来说些更加直观的观察和量化界面渲染性能好坏的方式!

使用Android官方提供的 GPU呈现模式

这是干嘛的呢?

简单来说:就是查看当前界面是否流畅的一个可量化的工具;


原理是啥?Android系统每16毫秒发出VSYNC(垂直同步)的信号,触发对UI的渲染,

如果整个过程能保证在16毫秒以内,界面看起来就是流畅的;为什么是16毫秒?


简单的说:人眼观看60帧的画面,是很流畅的,再高理论上人眼无法察觉,16毫秒*60约等于1秒。(Android4.1黄油计划)


bilabila了一堆? 怎么用?


那条绿线就是16毫秒的标尺,高于它,也就是丢帧了,越高丢帧越厉害,界面也就越卡顿,反之其他条形线越矮,界面越流畅。

使用Android官方提供的 调试GPU过度绘制

如何打开调试GPU过度绘制?

调试GPU过度绘制

Overdraw的参考图

多次绘制浪费性能,应该尽量避免多次绘制

具体如何避免?前辈们已经说得很清楚了,就不重复造轮子了... (业界大牛都写过相关的博客)

使用一些调测平台的提供的工具

比如腾讯GT;可以方便快速的抓取当前CPU 内存 流量 电量 帧率(流畅度) 等 进行快速方便直接的查看;

【MIG专项测试组】如何准确评测Android应用的流畅度?(http://bugly.qq.com/blog/?p=330)

(下面是部分适合对Android有一定基础的小伙伴使用的方法)

查看GC是否频繁

Java虚拟机在垃圾回收的时候,整个虚拟机都会停止,也就会导致界面渲染停止,

这也就要写代码时,内存分配需要注意;比如尽量避免在for循环中创建对象

使用DDMS ->Allocation tracker 内存分配跟踪工具来辅助查看,来查看内存分配是否异常,有哪些地方内存使用过多等等;

使用 Hierarchy Viewer

检测布局是否有不必要的嵌套,从而达到更快的加载速度;

基本介绍:Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat。它是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面;


基本使用方法:Hierarchy Viewer 的使用非常简单,启动模拟器或者连接上真机后,启动hierarchyviewer.bat,Devices里列出了可以观察的设备,Windows里列出的是当前选中的设备的可以用来显示View结构的Window.

评论

0条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注