赞
踩
关于下载systrace的特殊说明:谷歌官方在22年3月发布的33.0.1版本的platform-tools包中移除了systrace,需要使用systrace需要币33.0.1更低的sdk包,下载SDK历史版本的方法:
systrace工具是 Android 4.1 推出后引入的分析设备性能的主要基础工具。systrace由Google Android和Google Chrome共同开发,是Catapul开源项目的一部分。 但本质上是是对 Linux Kernel中 ftrace 的封装。应用进程需要利用 Android 提供的 Trace 类来使用 Systrace。
总而言之,google想针对APP开发 自己弄一套性能分析工具 方便使用,systrace是开始,后面推出的Perfetto工具等均是如此,到了android CPU profiler工具 可以看到 已经整合到自己的Android Studio工具中了,越来越方便好用,这就是趋势。
Systrace 本身是 性能分析的定向工具,即分析整体框架,然后找到性能问题的大方向。它的功能包括跟踪系统的 I/O 操作、内核工作队列、CPU 负载以及 Android 各个子系统,比如:View/ SurfaceFlinger / SystemServer / Kernel/Input/Display 等系统关键模块)的运行状况等。在 Android 平台中,主要由3部分构成:
使用python systrace.py [....一些列参数] 命令生成trace.xml文件(关于systrace相关命令可以查看:Android 开发者之在命令行上捕获系统跟踪记录),比如:
python systrace.py -t 10 -o mytrace.html gfx input view am dalvik sched wm disk res -a com.bilibili
之后使用浏览器直接打开html文件。注意:在mac操作系统上使用Chrome打开trace.xml文件是空白的,解决办法是:在chrome地址栏中输入”chrome:tracing”,然后点击load按键加载你的trace.html文件。这样就可以读出来了,读出来效果如下所示:
那么这张性能图表怎么看以及怎么操作呢?参照文档-> Android 开发者之浏览 Systrace 报告
同时除了系统自带的这些跟踪内容,如果想自定义一些信息用于跟踪(APP/Framework/native)该怎么做呢?这部分可参照文档: Android 开发者之定义自定义事件
当然这一系列操作下来 工程师还可以,但对一些产品、测试来讲就不是很友好了,那在手机上可不可以直接捕获设备上的跟踪记录呢?当然可以啦,只要版本android P以上,具体流程可以参考文档: Android 开发者之捕获设备上的系统跟踪记录
systrace 主要是通过查看各个系统指标和指定应用的参数指标(颜色图块的查看)来分析性能问题的整体框架,通过该工具能确定问题的大方向。比如紫色过多有可能是GC过度、蓝色过多可能是系统资源不够、白色过多有可能是线程和锁导致的问题等等。
更多关于sysytrace的使用可以参照文档:Android 开源项目之 实战了解 Systrace
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。