android 性能检测工具:Profile GPU rende

2020-09-09  本文已影响0人  古都旧城

Profile GPU rendering

开发者选项--Profile GPU Rendering(GPU呈现模式分析),参见下图。

image.png

如上图所示,打开之后就会显示出柱状图,柱状图有四种颜色

任何时候超过警戒线(警戒线,对应时长16ms),就有可能丢失一帧的内容,虽然对于大部分应用来说,丢失几帧确实感觉不出卡顿,但保持UI流畅的关键就在于让这些垂直的柱状条尽可能地保持在警戒线下面。

这里可以通过:adb shell dumpsys gfxinfocom..(包名)把具体的耗时输出到日志中来分析。

示例

整体感觉这个用途不是特别大,就简单看下稳定后的运行情况尚可,一般页面刚进入的时候都比较高,稳定后值相对比较均衡。能够简单的分析一些页面情况,具体分析还得靠下面更细致的工具,比如说TraceView

TraceView

TraceView是AndroidSDK自带的工具,用来分析函数调用过程,可以对Android的应用程序以及Framework层的代码进行性能分析。它是一个图形化的工具,最终会产生一个图表,用于对性能分析进行说明,可以分析到应用具体每一个方法的执行时间,使用可以非常直观简单,分析性能问题很方便。

方法1:代码埋点

//开始埋点,“app”是最后生成的性能分析文件
Debug.startMethodTracing("block_test");

/**------------->>>>这里是你要监控的代码<<<<<------------------------------*/

//埋点结束,期间start 到 stop 之间的代码,就是你要测试的代码范围
Debug.stopMethodTracing();

这种适合已经大概知道什么代码块有卡顿,用于协助分析,比如点击某个按钮的代码块。
示例代码:

 @Override
            public void onClick(View v) {
                //开始埋点,“block_test”是最后生成的性能分析文件
                Debug.startMethodTracing("block_test");
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                //埋点结束,期间start 到 stop 之间的代码,就是你要测试的代码范围
                Debug.stopMethodTracing();
            }

触发之后就会在如下目录生成对应trace文件
注意路径是sdcard下面这个

/sdcard/Android/data/com.canzhang.sample/files/block_test.trace


image.png

直接双击就可以自动使用 android studio 打开此文件


image.png

部分1:是时间选择范围,整段就是我们刚刚用代码埋点指定的。上面的时间标志是时间戳。
部分2:表示当前埋点的代码有5个线程。可以点击任何一个线程查看
部分3:这里有4个按钮

Top Down

image.png

首先是箭头1指示的标题栏有几个关键字段释义

然后是箭头2指示的有个下拉选择窗,有以下选项

Call Chart

也是一个方法的调用栈


image.png

Flame Chart

和上面的差不多,也是方法调用统计


image.png

Bottom Up

统计谁调用了谁,比如这里点开sleep,发现是onClick调用的


image.png

上面是通过代码的方式调用的,我们还可以通过其他方式IDE的一些按钮应用

通过Andorid studio 的Profile

点击Profile运行项目


image.png

然后会呈现下图


image.png

鼠标移动到CPU那里后,左键双击CPU后,如图:


image.png
Record,点击后,文案会变成stop;我们就可以在APP里操作,来到我们觉得卡顿或者有问题的功能里。点击stop就形成了我们trace一样的文件里。里面的操作都是一样的
然后剩下的按钮就和之前一样了 ,从上图可以看到也会有对应的四个tab,具体释义和上文相同。

通过这种方式我们通过了解卡顿的大概发生节点,来分析具体原因。

参考链接:https://www.jianshu.com/p/e735c939c57c

上一篇 下一篇

猜你喜欢

热点阅读