dmtracedump

dmtracedump 這項工具可 追蹤記錄檔案中的圖形呼叫堆疊圖表。這項工具使用 Graphviz 使用 Dot 公用程式建立圖形輸出,因此您必須安裝 Graphviz 執行 dmtracedump 之前。如果您尚未產生追蹤記錄, 會將這些內容從已連結的裝置儲存至本機電腦 檢測應用程式以產生追蹤記錄

dmtracedump 工具會以樹狀圖的形式產生呼叫堆疊資料,其中 node 代表方法呼叫顯示呼叫流程 (從父項節點到子節點) 並按下箭頭即可下圖顯示 dmtracedump 的輸出內容範例。

dmtracedump 工具隨附於 Android SDK Tools 套件中, 位於 android-sdk/platform-tools/

語法

dmtracedump 的使用方法如下:

dmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g outfile] trace-base-name

然後工具會載入 trace-base-name.datatrace-base-name.key

全域選項

全域選項 說明
-h 開啟 HTML 輸出
-o 傾印追蹤檔案而不剖析

指令和指令選項

指令和選項 說明
-d trace-base-name 與此追蹤記錄名稱的差異
-g outfile 產生輸出至 outfile
-s sortable 可排序 JavaScript 檔案位置的網址基底
-t percent 在圖表中加入子項節點的最低閾值 (子項收錄時間做為 父項收錄時間的百分比)。如果不使用這個選項,則採用預設閾值 20%

輸出

圖 1. dmtracedump 螢幕截圖

對於圖表中每個節點,dmtracedump 會顯示下列內容: 每個 ACL 都由一或多個項目組成 而這些項目包含兩項資訊

ref callname (inc-ms, exc-ms,numcalls)
  • ref — 呼叫追蹤記錄使用的參考編號
  • inc-ms — 包含經過時間 (在方法中花費的毫秒數, 包括所有子方法)
  • exc-ms — 排除經過時間 (在方法中花費的毫秒數, 不含任何子項方法)
  • numcalls — 呼叫次數