Systrace基本使用说明

前言

本章主要是针对初识Systrace的同学,这里讲解Systrace的基本使用。
一、Systrace介绍
二、Systrace使用
三、如何使用命令抓取trace信息

一、Systrace介绍

Systrace是Android4.1版本之后推出的,主要用来分析android性能问题(主要诊断应用的不流畅的问题),trace信息中大致包含以下内容。

1. CPU使用情况
2. UI刷新掉帧情况
3. 函数执行时间情况
4. Android各个子系统的运行状况

二、Systrace使用

1.通过DDMS的Systrace工具来抓起trace信息

打开DDMS,在Android SDK目录下可以启动DDMS,位于android/sdk/tools目录下,(windows下直接点击monitor.bat启动即可,linux下在命令行执行./minitor)


Screenshot from 2020-04-10 10-08-24.png

你在抓取trace的时候,需要先链接设备,对应选择你要抓取的进程,之后点击如下图红色圈的按钮,设置systrace抓取的相关数据


Screenshot from 2020-04-10 10-35-51.png

Screenshot from 2020-04-10 10-43-42.png

Destibnation File :抓取trace文件的保持路径
Trace duration :抓取的时长,这里需要注意一下,尽量在15s以内,太长时间可能会造成抓取超时数据丢失的问题
Trace Buffer Size 抓取内容的大小,默认即可
Enable Application Traces from :对应抓取的进程

*Commonly Used Tags:默认都选择即可
Advanced Options :抓取相关数据类型,可以选择,或者全部选择都可以

选择完之后点击ok,此时要同步操作你设备的对应app或者对应流程,比如我发现我自己listview滑动的时候会很卡,此时点击ok后,同时操作滑动listview界面,此时Systrace就会抓取你设定时间内的trace,最后会在你设置的输出目录下生成一个trace.html文件,这个文件需要用Google Chrom浏览器来打开


Screenshot from 2020-04-10 11-00-43.png

[后面文章会详细讲解Trace的分析]

三、如何使用命令抓取trace信息

3.1 android-sdk自带了trace.py工具

命令如下
python systrace.py [options] [category1] [category2] ... [categoryN]

android-sdk/platform-tools/systrace
//cd到当前目录执行以下命令,在执行以下命令的时候要准备好操作你的设备
python systrace.py --time=10 -o mytrace.html sched gfx view wm

3.2 相关options

options 描述
-o file 输出的目标文件
-t N, –time=N 执行时间,默认5s
-b N, –buf-size=N 用于限制trace总大小
-k KFUNCS,–ktrace= KFUNCS 追踪kernel函数,用逗号分隔
-a < APP_NAME >,–app=< APP_NAME > 追踪应用包名,用逗号分隔
–from-file=< FROM_FILE > 从文件中创建互动的systrace
-e < DEVICE_SERIAL >,–serial=< DEVICE_SERIAL > 指定设备
-l, –list-categories 可举例用的tag

3.3 相关category

category 描述
gfx Graphics
input input
view view system
webview WebView
wm Window Manager
am Activity Manager
sm Sync Manager
audio Audio
video Video
camera Camera
hal Hardware Modules
app Applacation
res Resource Loading
dalvik Dalvik VM
rs RenderScript
bionic Bionic C Library
power Power Management
sched CPU Scheduling
irq IRQ Events
freq CPU Frequency
idle CPU Idle
disk Disk I/O
mmc eMMC commands
load CPU Load
sync Synchronization
workq Kernel Workqueues
memreclaim Kernel Memory Reclaim
regulators Voltage and Current Regulators

3.4 在app添加自己的systrace log

Trace.traceBegin("performTraversals");
try {
  ……
} finally {
  Trace.traceEnd();
}

需要保证 traceBegin 与 traceEnd 一定要成对出现。 并且一定要在同一个线程里面。Trace.traceBegin和Trace.traceEnd();之间也是可以再用Trace.traceBegin和Trace.traceEnd的,加入trace的好处在于,生成的trace文件中,会在跟踪的代码段执行对应时间轴区间打上一个tag标记(比如上例中的performTraversals)如果在代码中加入了trace,在生成trace文件时,必须指定进程为trace所在的进程

相关参考文献
https://www.jianshu.com/p/0670fe8507ff
https://www.pianshen.com/article/550436274/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容