首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Android 性能分析神器 Systrace 完整使用指南:從收集到解讀

     編輯:Java 相關知識

Systrace 是 Android 系統級性能分析首選工具,能記錄系統組件隨時間運行狀態、自動標註掉幀並給出修復建議。本文涵蓋埋點 API、命令參數、HTML 報表解讀、快捷鍵操作與模式切換。

一、自定義 Trace 埋點

層級API說明
Java FrameworkTrace.traceBegin(tag, name) / Trace.traceEnd(tag)成對使用,同一線程,建議 finally 區塊呼叫 end
App 層Trace.beginSection(name) / Trace.endSection()預設 tag=TRACE_TAG_APP,命令需加 app 參數
Native FrameworkATRACE_CALL()C++ 宏,自動配對 begin/end

二、命令列收集

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

常用 Options

參數說明
-o <FILE>輸出 HTML 文件路徑
-t N / --time=N錄製秒數 (預設 5s)
-b N / --buf-size=NBuffer 大小 KB (限制總量,預設無上限)
-k <KFUNCS> / --ktraceKernel 函數追蹤,逗號分隔
-a <APP_NAME> / --app追蹤指定應用包名,逗號分隔
--from-file <FILE>從文件生成互動報表
-e <SERIAL> / --serial指定設備序列號
-l / --list-categories列出所有可用 tag

常用 Categories (標籤)

  • 圖形/輸入/視圖:gfx input view
  • 系統核心:wm am sm (Window/Activity/Sync Manager)
  • 多媒體:audio video camera
  • 硬體/資源:hal app res dalvik rs bionic
  • 電源/調度:power sched irq freq idle
  • 存儲/內存:disk mmc load sync workq memreclaim
  • 電壓/電流:regulators

實戰範例

# 核心場景:UI 掉幀分析
python systrace.py -b 32768 -t 10 -o trace.html wm gfx input view sched freq

# 全量收集 (需大 buffer)
python systrace.py -b 65536 -t 15 -o full.html gfx input view webview wm am sm audio video camera hal app res dalvik rs bionic power sched irq freq idle disk mmc load sync workq memreclaim regulators

注意:需 Python 2.x (非 3.x),buffer 過大導致 OOM。

三、HTML 報表解讀 (必須用 Chrome 開啟)

Systrace 報表總覽

1. Frames 行:掉幀偵測

每個 App 進程有 Frames 行,綠點=正常 (≤16.6ms),黃/紅點=掉幀。點擊黃/紅點查看詳細 Alert。Android 5.0+ 重點關注 UI Thread 與 Render Thread。

Frames 掉幀詳情

2. Alerts 面板:自動分析建議

右上角 Alerts 標籤頁彙總所有警告,點擊可跳轉對應時間點,給出具體優化建議 (如「減少 onDraw 複雜度」、「避免主線程 I/O」等)。

四、快捷鍵操作大全

類別按鍵動作
導航W放大 (+Shift 加速)
S縮小 (+Shift 加速)
A左移 (+Shift 加速)
D右移 (+Shift 加速)
常用F放大選區
M標記選區
V高亮 VSync
G切換 60Hz 網格線
0 (數字)恢復初始視圖
一般H切換詳情面板
/搜索關鍵字
Enter跳轉搜索結果 (←→ 導航)
`顯示/隱藏腳本控制台
?顯示幫助

五、滑鼠模式切換 (數字鍵 1-4)

  1. Select Mode:雙擊選區高亮同類塊
  2. Pan Mode:拖動平移
  3. Zoom Mode:上下拖動縮放
  4. Timing Mode:拖動建立/移除時間標記線

輔助:Alt + 滾輪 縮放。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved