一:简单介绍
systrace 是 Android4.1 引入的一套用于做性能分析的工具。
基于 Linux 内核的 ftrace 机制(用于跟踪 Linux 内核的函数调用),
能够输出各个线程当前的函数调用状态。
它可帮助开发人员收集 Android 关键子系统(如 surfaceflinger、
WindowManagerService 等 Framework 部分关键模块、服务)
的执行信息。从而帮助开发人员更直观的分析系统瓶颈,改进性能
---->Tracers
例:
cd external/chromium-trace //此处用的是android源代码中的systrace,也能够用SDK中的
python systrace.py -b 32768 -t 15 gfx input view webview wm am
-t:
指定记录的时间,单位秒
gfx input view webview 等:
指定要记录的内容和 frameworks/native/cmds/atrace/atrace.cpp里面的 k_categories 数组保持一致
五:结果
systrace 是 Android4.1 引入的一套用于做性能分析的工具。
基于 Linux 内核的 ftrace 机制(用于跟踪 Linux 内核的函数调用),
能够输出各个线程当前的函数调用状态。
它可帮助开发人员收集 Android 关键子系统(如 surfaceflinger、
WindowManagerService 等 Framework 部分关键模块、服务)
的执行信息。从而帮助开发人员更直观的分析系统瓶颈,改进性能
二:内核配置
Kernel hacking---->Tracers
三: init.rc 配置
加入 mount debugfs none /sys/kernel/debug/
四:使用
环境:android 4.3
adb 连接设备(网络/USB)
adb 连接设备(网络/USB)
例:
cd external/chromium-trace //此处用的是android源代码中的systrace,也能够用SDK中的
python systrace.py -b 32768 -t 15 gfx input view webview wm am
audio video camera hal res dalvik sched freq idle
-b :
指定 trace 的 buf 长度
-b :
指定 trace 的 buf 长度
-t:
指定记录的时间,单位秒
gfx input view webview 等:
指定要记录的内容和 frameworks/native/cmds/atrace/atrace.cpp里面的 k_categories 数组保持一致
五:结果
结果输出到 external/chromium-trace/trace.html
使用谷歌浏览器打开
![](http://img.blog.csdn.net/20141121075837963?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTYyNDczMTE4Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
使用谷歌浏览器打开
附:參数说明
![](http://img.blog.csdn.net/20141121075853392?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTYyNDczMTE4Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)