解決Android性能分析工具systrace使用時找不到section name(或者叫找不到tag)

一、我們先說可能的原因

如果找不到tag或者叫section name,有可能是
①beginSection和endSection沒有成對出現
②命令行設置了-t N | --time=N,但是這個時間段沒有執行tag所在的那段功能代碼
比如說在Application中的onCreate中設置了tag,命令行中 -t 5(跟蹤設備5秒),如果我們應用活着的時候,執行了這段命令,生成的html中肯定是找不到我們設置的tag的;再者就是如果應用是冷啓動,命令行中還沒提示Starting tracing… 這時App已經啓動完成了,這也是不行的。
③檢查一下App的包名是否寫錯了
④實在不行換個手機試一下,有的手機需要在開發者選項中打開trace的功能。

二、我的步驟

1.先在代碼中設置tag,beginSection後別忘了endSection
TraceCompat.beginSection(“gogogo”);
TraceCompat.endSection();
2.連接真機或者模擬器運行代碼(我的模擬器試了試也可以抓取到tag信息)
3.將程序殺死(如果不是對app啓動進行的監控,這一步可以省略)
4.用終端cd到systrace.py所在目錄
5.終端執行python systrace.py -a 包名 sched freq idle am wm gfx view binder_driver hal dalvik camera input res
在這裏插入圖片描述
這裏我沒有指定時間,如果未指定時間,則 systrace 會提示您通過從命令行按 Enter 鍵來結束跟蹤。
6.在終端提示“Starting tracing (stop with enter)”後,再在手機或者模擬器上打開app(如果不是對app啓動進行監控,這一步就是執行你要監控的那個操作,比方說監控頁面跳轉,就執行頁面跳轉的操作),主頁面加載完成後,點擊鍵盤Enter。
在這裏插入圖片描述
7.打開trace.html
搜索之前設置的tag 或者叫section name ,我的叫gogogo
在這裏插入圖片描述

注意

1.如果要在跟蹤輸出中查看任務的名稱,則必須在命令參數中包含sched
2.如果執行命令後報一句
These categories are unavailable: ***說明當前設備不支持這個類別或選項
查看當前設備所支持的類別或選項:
python systrace.py --list-categories

以上就是詳細的步驟,如果有問題可以留言

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章