Systrace工具的使用

Systrace工具的使用

翻譯原文地址:https://developer.android.com/studio/profile/systrace-commandline.html#requirements

通過抓取和展示app的執(zhí)行次數(shù),Systrace工具可以通幫助你分析app的性能問題,Systrace工具將android kernel層的數(shù)據(jù)比如CPU調(diào)度、disk activity以及應(yīng)用線程收集起來,并生成HTML報(bào)告,在這個(gè)HTML報(bào)告里,可以看到指定時(shí)間內(nèi)系統(tǒng)進(jìn)程的所有情況。

systrace工具對(duì)于診斷應(yīng)用的不流暢的問題非常有效,可以參照https://developer.android.com/studio/profile/systrace.html

要求

  • SDK 版本20及以上
  • python環(huán)境
  • android4.1及以上設(shè)備(需打開調(diào)試模式)
  • 可以通過用戶界面去調(diào)用,也可以通過cmd的方式去調(diào)用

用戶界面調(diào)用

  1. 打開Android studio,Tools -- Android -- Android Device Monitor,或則直接在sdk中的tools中找到Android Device Monitor打開
  2. 在彈出的Android Device Monitor中,左側(cè)Devices選項(xiàng)卡的下面一排,點(diǎn)擊下圖中圈出的位置
Android Device Monitor
  1. 配置trace信息,點(diǎn)擊OK后,會(huì)在對(duì)應(yīng)目錄下生成html文件
5.PNG

CMD命令調(diào)用

CMD的在androi4.2及以下、android4.3級(jí)以上的用法是不一樣的,用法如下“

$ python systrace.py [options] [category1] [category2] ... [categoryN]

android4.3及以上

在這個(gè)版本上,你可以不配置分類tag,也可以自定義。使用方式如下:

$ cd android-sdk/platform-tools/systrace
$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm

提示:如果你想要查看task name,必須配置sched

命令行列表

選項(xiàng) 描述
-h 或 --help 查看幫助
-o <FILE> 用于指定html文件的存放路徑
-t N 或 --time=N 用于指定抓取的時(shí)長(zhǎng),N為時(shí)長(zhǎng),單位為s,默認(rèn)為5s,如果要指定10s,則”-t 10“
-b N或--buf-size=N 用于指定緩存大小,N為大小
-k <KFUNCS> 或 --ktrace=<KFUNCS> 指定activity的kernel方法,按逗號(hào)分割
-l 或 --list-categories 列出可選的分類,不通的設(shè)備分類可能不同
-a <APP_NAME> 或 --app=<APP_NAME> 開啟app的trace,進(jìn)程名按逗號(hào)分割,這些app必須有trace類的調(diào)用
--from-file=<FROM_FILE> 根據(jù)指定的文件創(chuàng)建html,而不是實(shí)時(shí)的trace,<FROM_FILE>為源文件路徑
-e <DEVICE_SERIAL> 或 --serial=<DEVICE_SERIAL> 指定設(shè)備的序列號(hào)

android4.2及以下

在4.2之前的版本需要兩部操作,首先,需要配置想要抓取的trace tag,然后再運(yùn)行trace。比如:

$ cd android-sdk/platform-tools/systrace
$ python systrace.py --set-tags gfx,view,wm
$ adb shell stop
$ adb shell start
$ python systrace.py --disk --time=10 -o mynewtrace.html

命令行列表

選項(xiàng) 描述
-h 或 --help 查看幫助
-o <FILE> 用于指定html文件的存放路徑
-t N 或 --time=N 用于指定抓取的時(shí)長(zhǎng),N為時(shí)長(zhǎng),單位為s,默認(rèn)為5s,如果要指定10s,則”-t 10“
-b N或--buf-size=N 用于指定緩存大小,N為大小
-d 或 --disk 追蹤activity disk的輸入和輸出,需要root設(shè)備
-i 或 --cpu-idle 追蹤C(jī)PU的idel事件
-l 或 --cpu-load 追蹤C(jī)PU的加載
-s或--no-cpu-sched 防止CPU調(diào)度的追蹤,通過降低trace buffer的速率達(dá)到加長(zhǎng)的trace時(shí)長(zhǎng)的目的
-u 或 --bus-utilization 追蹤bus的使用,需要root設(shè)備
-w 或 --workqueue 追蹤work queue,需要root設(shè)備
--set-tags=<TAGS> 用于配置tag選項(xiàng),

對(duì)于上面的--set-tags配置,可選項(xiàng)如下:

  • gfx 圖形圖像
  • input 輸入
  • view 視圖
  • webview
  • wm Window Manager
  • am Activity Manager
  • sync Synchronization Manager
  • audio
  • video
  • camera

注意:設(shè)置tag后,需要重啟framework(’adb shell stop;adb shell start‘)暴躁配置生效。

如何查看trace.html文件

按鍵 作用
w 放大時(shí)間軸
s 縮小時(shí)間軸
a 向左移動(dòng)面板
d 向右移動(dòng)面板
e 以當(dāng)前鼠標(biāo)的位置為時(shí)間軸的中心
g 在選中的task開始時(shí)刻顯示紅線條
Shift+g 在選中的task結(jié)束時(shí)刻顯示紅線條
向右箭頭 選中當(dāng)前時(shí)間軸下一個(gè)事件
向左箭頭 選中當(dāng)前時(shí)間軸下一個(gè)事件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,673評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,610評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,668評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,004評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評(píng)論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,173評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,705評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,426評(píng)論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,656評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,833評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評(píng)論 1 295
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,371評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,621評(píng)論 2 380

推薦閱讀更多精彩內(nèi)容