标签:systrace android优化 android性能 surfaceflinger trace
在构建功能,修复bug,整理代码之后,你应该花一些时间来关注应用的性能。应用画像素和执行操作的速度和流畅度影响了用户体验。Systrace帮助你分析应用程序执行是怎么融入更大的Android系统的,让你在公共时间轴上看到系统和应用进程的执行。这个工具允许你在4.1或者更高的版本生成更加详细的,可互动的报告,比如下图1的报告。
Systrace工具可以生成应用和系统的潜在的巨大数据,为了限制工具收集的数据量,使数据与分析相关,使用下面的选项:
1.限制trace抓取的时间使用-t,--time选项,默认的trace时长是5s
2.限制trace抓取数据的size使用-b,--buf-size选项
3.指定哪些类型的进程被跟踪。可以被跟踪的进程在不同的Android版本上面略有不同:
Android4.2和低于4.2的:使用--set-tags选项和--disk,--cpu-freq,--cpu-idle,--cpu-load选项
Android4.3和高于4.3的:使用--list-categories选项来查看类型列表
1.确保设备通过usb调试选项打开,并成功连接到电脑
2.指定要抓取的选项来执行trace,例如
$ cd android-sdk/platform-tools/systrace
$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
3.在设备上,执行任何你想要被包含进trace信息的操作
在4.2和低于4.2的设备上面使用trace,为了提高效率,你必须在抓取之前配置想要跟踪的进程类型,工具可以收集下面进程类型的信息:1.使用--set-tags选项:
1.通常的系统进程,比如graphics,audio和input进程(使用trace category tags选择)
2.低级别的系统信息,比如CPU,kernel和磁盘活动(使用options选择)
使用下面的命令设置Systrace的tags:
当你配置完trace的category tags,就可以开始收集信息来进行分析。1.确保设备adb连接成功
使用现在的trace tag设置来运行trace:
public void ProcessPeople() {Trace.beginSection("ProcessPeople");try {Trace.beginSection("Processing Jane");try {// code for Jane task...} finally {Trace.endSection(); // ends "Processing Jane"}
Trace.beginSection("Processing John");try {// code for John task...} finally {Trace.endSection(); // ends "Processing John"}} finally {Trace.endSection(); // ends "ProcessPeople"}}
如果你正在分析应用这种类型的问题,检查Systrace报告中应用程序执行的SurfaceFlinger进程,来寻找退出有规律节奏的位置。
标签:systrace android优化 android性能 surfaceflinger trace
原文地址:http://blog.csdn.net/fanfanxiaozu/article/details/44495265