赞
踩
我尽量不打错别字,用词准确,不造成阅读障碍。
该工具在“开发者选项”里面,是用来展示应用每一帧中渲染消耗的时间及内容。
1.图中每一个竖条就是一帧,不同颜色代表不同的活动内容,下面会详细讲解;
2."横"着的绿线表示16ms的”及格线“,小于16ms的帧数透明度要低一些(最右边那部分),可以选择性忽略,大于16ms的透明度会高一些,看的更清晰。当竖线超出这条横线时,可能会使动画出现暂停。日常开发中要想做到完全不超过这条线是很难的,反正我是没见过。
3.上图显示是Android6.0以后的样子,图片显示为8个颜色,Android4.0-5.0(API级别14-21)为4种颜色,下面会说明。
每种颜色代表不同的含义,所以需要特意说明一下:
简单解释一些不易懂的说明:
红色:意思就是说,竖线越高,说明需要绘制的视图越多,正常应用中这部分一般是比较高的,很难降下来。
浅蓝色:表示图片信息上传到GPU所消耗的时间,竖条越高说明图片越大或很多,所以这里的优化方向是减少图片数量和缩小图片大小。
深绿色(最下面的绿色):表示在当前线程中执行了太多任务,UI渲染跟不上Sync信号(刷新信号)而掉帧,一般是主线程。这个地方是优化的重点,因为大部分卡顿、掉帧都会在这里的时间上体现出来,所以竖线比较高。
深绿色部分是重点,本人开发中曾经发现RecyclerView滚动卡顿,发现滚动时深绿色部分很高,说明主要是代码执行时间过长,再借助Android Profiler工具,发现是Adapter中做文字过滤时replaceAll()方法次数太多,耗时太久,挪开后列表滚动就流畅了。
Android4.0—Android5.0使用的颜色只有四种:
因为日常开发中不太关注5.0以下的系统,所以对这一部分没什么研究。
主要有四个颜色:蓝、绿、粉红、红;
蓝:过度绘制1次。
绿:过度绘制2次。
粉红:过度绘制3次。
红色:过度绘制4次或更多。
有些过度绘制是不可避免的,不需要刻意做到完全没有。
最后应该做到尽量少的过度绘制,如右图。
参考网站:
https://developer.android.google.cn/studio/profile/inspect-gpu-rendering
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。