Android App性能分析工具(一)——GPU渲染分析

我尽量不打错别字,用词准确,不造成阅读障碍。

一.GPU渲染速度

该工具在“开发者选项”里面,是用来展示应用每一帧中渲染消耗的时间及内容。
Android App性能分析工具(一)——GPU渲染分析_第1张图片

1.图中每一个竖条就是一帧,不同颜色代表不同的活动内容,下面会详细讲解;

2."横"着的绿线表示16ms的”及格线“,小于16ms的帧数透明度要低一些(最右边那部分),可以选择性忽略,大于16ms的透明度会高一些,看的更清晰。当竖线超出这条横线时,可能会使动画出现暂停。日常开发中要想做到完全不超过这条线是很难的,反正我是没见过。

3.上图显示是Android6.0以后的样子,图片显示为8个颜色,Android4.0-5.0(API级别14-21)为4种颜色,下面会说明。

每种颜色代表不同的含义,所以需要特意说明一下:
Android App性能分析工具(一)——GPU渲染分析_第2张图片简单解释一些不易懂的说明:

红色:意思就是说,竖线越高,说明需要绘制的视图越多,正常应用中这部分一般是比较高的,很难降下来。

浅蓝色:表示图片信息上传到GPU所消耗的时间,竖条越高说明图片越大或很多,所以这里的优化方向是减少图片数量和缩小图片大小。

深绿色(最下面的绿色):表示在当前线程中执行了太多任务,UI渲染跟不上Sync信号(刷新信号)而掉帧,一般是主线程。这个地方是优化的重点,因为大部分卡顿、掉帧都会在这里的时间上体现出来,所以竖线比较高。

深绿色部分是重点,本人开发中曾经发现RecyclerView滚动卡顿,发现滚动时深绿色部分很高,说明主要是代码执行时间过长,再借助Android Profiler工具,发现是Adapter中做文字过滤时replaceAll()方法次数太多,耗时太久,挪开后列表滚动就流畅了。

Android4.0—Android5.0使用的颜色只有四种:
Android App性能分析工具(一)——GPU渲染分析_第3张图片
因为日常开发中不太关注5.0以下的系统,所以对这一部分没什么研究。

二.GPU过度绘制

主要有四个颜色:蓝、绿、粉红、红;

蓝:过度绘制1次。

绿:过度绘制2次。

粉红:过度绘制3次。

红色:过度绘制4次或更多。

Android App性能分析工具(一)——GPU渲染分析_第4张图片
有些过度绘制是不可避免的,不需要刻意做到完全没有。

Android App性能分析工具(一)——GPU渲染分析_第5张图片
最后应该做到尽量少的过度绘制,如右图。
参考网站:
https://developer.android.google.cn/studio/profile/inspect-gpu-rendering

你可能感兴趣的:(Android日常开发知识点)