android tracelog分析,使用 Traceview 检查跟踪日志
Traceview 已棄用。如果您使用的是 Android Studio 3.2 或更高版本,應改為使用 CPU 性能剖析器來執行以下操作:檢查通過使用 Debug 類檢測應用而捕獲的 .trace 文件,記錄新方法跟蹤記錄,保存 .trace 文件,以及檢查應用進程的實時 CPU 使用情況。
Traceview 這款工具能夠以圖形的形式顯示跟蹤日志。您可以通過使用 Debug 類檢測代碼以生成此類日志。這種跟蹤方法非常精確,因為您可以指定需在代碼中開始和停止記錄跟蹤數據的確切位置。如果您尚未生成此類跟蹤日志并將其從連接的設備保存到本地計算機,請轉到通過檢測您的應用生成跟蹤日志。使用 Traceview 檢查此類日志有助于您調試應用并剖析其性能。
提示:您可以從命令行使用 dmtracedump 生成跟蹤日志文件的圖形化調用堆棧圖。
如果您不需要查看通過使用 CPU 性能剖析器檢查應用的線程并記錄方法跟蹤記錄。
使用 Traceview 打開跟蹤日志
如需通過 Android Studio 中的 Traceview 打開跟蹤日志,請按以下步驟操作:在 Android Device Monitor 中,依次選擇 File > Open File。
轉到您要檢查的 .trace 文件。
點擊 Open。
注意:如果您嘗試查看在啟用了代碼縮減的情況下構建的應用(如發布 build)的跟蹤日志,某些方法和成員名稱可能會被混淆處理。您可以使用 ProGuard mapping.txt 文件查明未經混淆的原始名稱。如需詳細了解此文件,請參閱解碼經過混淆的堆棧軌跡。
注意:從命令行運行 traceview 的功能已棄用。
Traceview 概覽
打開跟蹤日志后,Traceview 會使用以下兩個窗格顯示日志數據:
時間軸窗格,說明每個線程何時進入和退出某個方法
剖析窗格,總結每個線程在跟蹤日志期間的執行情況
以下各部分進一步介紹了 Traceview 的輸出窗格。
時間軸窗格
圖 1 顯示了時間軸窗格的特寫。每個線程的執行情況都顯示在各自的行中,并且越往右使用的時間越長。每個方法都以不同的顏色顯示。第一行下面的細線顯示所選方法的子級(從進入到退出)。
圖 1.
Traceview 時間軸窗格。
剖析窗格
如圖 2 所示,剖析窗格列出了跟蹤日志期間執行的各個方法以及執行這些方法所用的時間。調用另一個方法的方法稱為父級,父級調用的方法稱為其子級。當您通過點擊某個方法以選擇該方法時,它會在兩個單獨的節點下同時顯示其父級和子級。
對于每個方法(頂級節點),該表會顯示其非獨占時間和獨占時間(以毫秒為單位)以及占總時間的百分比。獨占時間是執行方法自身代碼所用的時間,而非獨占時間則是執行方法自身代碼所用時間與執行其子級代碼所用時間之和。系統還會根據 CPU 時間和實際時間報告用時信息。CPU 時間僅考慮線程主動使用 CPU 的時間,而實際時間則提供從應用進入方法到退出該方法這整個過程(無論線程處于活動狀態還是休眠狀態)的絕對用時信息。
對于剖析窗格中的每個頂級節點,表中的 Calls + Rec, Calls/Total 列(圖 2 中未顯示)會報告對相應方法的調用次數和遞歸調用的次數。而對于父方法和子方法,此列會顯示被調用方法為頂級節點中方法的子級或父級的調用次數。
圖 2. Traceview 分析窗格。
Traceview 已知問題
TraceView 日志記錄無法很好地處理線程,從而導致出現以下問題:
如果線程在分析期間退出,不會發出線程名稱(在 Android 5.1 及更高版本中已解決此問題);
虛擬機會重復使用線程 ID。如果在一個線程停止時另一線程開始,這兩個線程可能會獲得同一 ID。
總結
以上是生活随笔為你收集整理的android tracelog分析,使用 Traceview 检查跟踪日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑用上这些壁纸站与软件,惊艳你的眼球!
- 下一篇: .net Reactor 使用说明详解