HarmonyOS之HiTrace日志跟踪定位分析
生活随笔
收集整理的這篇文章主要介紹了
HarmonyOS之HiTrace日志跟踪定位分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、概述
- 在 HarmonyOS 跨設備分布式應用的問題定位過程中,由于跨設備之間的調用關系復雜,導致問題定位困難。DevEco Studio 提供了 HiTrace 日志跟蹤的能力,可以分析和梳理跨設備分布式應用之間的調用關系,通過分析調用鏈,方便開發者定位調用異常、性能瓶頸等問題。
- 開發者可以通過 HarmonyOS Interface Definition Language(簡稱 HarmonyOS IDL)實現不同設備之間的跨進程通信(IPC,Inter-Process Communication),即開發者可以在一個設備上訪問另一個設備的進程或者調用另一個設備的方法,實現多設備的協同能力。
- 因此,DevEco Studio 基于 HarmonyOS IDL 實現的跨設備的分布式場景,提供了跨設備的 HarmonyOS 分布式應用的調試功能,方便開發者調測分布式應用。
- 前提條件:
-
- 工程中至少包含2個及以上的模塊,且模塊代碼是基于 HarmonyOS IDL 的 Java 語言實現。
-
- 調測的多個設備成功組網,包括連接到同一個 WLAN 網絡、登錄同一個華為帳號和同時打開藍牙開關。
-
- 已連接真機設備,或已啟動分布式模擬器。
二、跨設備分布式應用調試
- 在涉及跨設備調用的代碼行設置斷點;
- 選擇已創建的跨設備調試配置(Super App)選項,單擊如下按鈕啟動調試:
- 在彈出的設備選擇窗口,指定調試設備對應的模塊名稱:
- 啟動調試后,DevEco Studio 將按照勾選的多個設備,分別啟動多個調試會話窗口,命名為:“Super App-模塊名”,如 Super App-entry:
- 在代碼執行到斷點處(跨設備調用的代碼處),點擊 Step Into,快捷鍵為 F7(Mac 為 F7),則會自動跳轉到被調用代碼接口方法處;
- 例如,在上圖中的調試界面為例,在 Phone 中調用 TV 的音樂播放能力,單擊 Step Into,調試窗口將從“Super App-entry”跳轉到“Super App-entrytv”窗口,同時,代碼也會跳轉到對應的接口方法處,無需開發者手動設置斷點。
三、HiTrace日志跟蹤定位分析
- 在需要跟蹤調用鏈的 RPC 調用處,前后分別添加 Hitrace 類接口,用于采集 Hitrace 日志。對應的示例代碼如下所示:
- 在設備上運行應用,跨設備運行分布式應用的方法請參考運行/調試分布式應用。
- 在底部工具欄點擊 Profiler,打開 Hitrace 工具:
- 在 Hitrace 窗口,點擊 Record 按鈕,開始收集 Hitrace 日志信息,然后在設備上操作分布式應用。
- 點擊停止按鈕,停止收集 Hitrace 日志信息。日志采集完成后,可以看到如下的時序視圖(上半部分)和調用鏈詳情視圖(下半部分)。
四、Hitrace 調用鏈分析
- Hitrace 日志采集完成后,會生成時序視圖和調用鏈詳情視圖,可以利用時序圖和調用鏈詳細視圖來進行故障定位定界和性能分析。
- 利用時序圖+調用鏈視圖中的 Call Tree 視圖,可以分析分布式跨設備與跨進程的調用關系:
-
- 在時序圖中,使用不同顏色矩形塊區分不同的調用關系,在矩形塊中,可以展示調用的開始時間、結束時間和處理時長,幫助開發者分析處理性能。
-
- 點擊時序圖中的矩形塊,則會展示進程的調用方向,從而查看其是調用方或被調用方;同時在 Call Tree 視圖中,也可以清晰的展示進程的調用關系(單設備跨進程調用、跨設備進程調用、調用時長等)。
- 利用時序圖+調用鏈視圖中的 Events 視圖,可以進行分布式調用的故障定位定界、診斷和分析:
-
- 在時序圖中,可以展示相關的異常事件,包括 Java Crash 異常、JS Crash 異常、C/C++ Crash 異常、跨設備 FA 調用異常、ANR 故障等。
-
- 點擊時序圖中的異常事件,則會在 Events 視圖中展示具體的異常細節,并會自動抓取異常前 30s 的詳細日志信息。
總結
以上是生活随笔為你收集整理的HarmonyOS之HiTrace日志跟踪定位分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HarmonyOS之常用组件WebVie
- 下一篇: HarmonyOS之变量可视化调试