Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)
Android日志[進階篇]一-使用 Logcat 寫入和查看日志
Android日志[進階篇]二-分析堆棧軌跡(調(diào)試和外部堆棧)
Android日志[進階篇]三-Logcat命令行工具
Android日志[進階篇]四-獲取錯誤報告
Android日志[進階篇]五-閱讀錯誤報告
目錄
- 調(diào)試中的堆棧軌跡
- 從外部來源打開堆棧軌跡
- 監(jiān)控剪貼板,確定是否有新的堆棧軌跡
堆棧
一般是指java層的或jni層發(fā)生crash時候的函數(shù)調(diào)用序列,最頂層就是發(fā)生異常的地方,有的情況下這個堆棧并不一定完整。映射代碼基本上指應(yīng)用層(java 或kotlin),是為了方便將錯誤定格到代碼上,也就是本文講的內(nèi)容。但建議小伙伴們要逐漸脫離這樣的工具,能自己直接定格,這樣效率會更高。至于jni的,需要進行相關(guān)的函數(shù)表配置,總體思路都是一樣的。
調(diào)試中的堆棧軌跡
調(diào)試應(yīng)用通常需要使用堆棧軌跡。每當您的應(yīng)用因為錯誤或異常而崩潰時,都會生成堆棧軌跡。可以使用 Thread.dumpStack() 等方法輸出應(yīng)用代碼中任意位置的堆棧軌跡。
在連接的設(shè)備上,當應(yīng)用在調(diào)試模式下運行時,Android Studio 會在 logcat 視圖中輸出并突出顯示堆棧軌跡,如圖 1 所示。
圖 1. Logcat 中的堆棧軌跡。
堆棧軌跡會顯示導(dǎo)致拋出異常的方法調(diào)用列表,以及調(diào)用發(fā)生的文件名和行號。可以點擊突出顯示的文件名,以打開相應(yīng)文件并檢查方法調(diào)用的來源。點擊 Up the stack trace 圖標 和 Down the stack trace 圖標 可以在 logcat 窗口中顯示的堆棧軌跡行之間快速移動。
從外部來源打開堆棧軌跡
有時,需要分析線上錯誤報告中的堆棧軌跡,而不是在調(diào)試時發(fā)現(xiàn)的堆棧軌跡。例如,可能正在通過 Google Play 管理中心或一些其他工具(例如Firebase Crash Reporting,bugly,友盟)收集用戶設(shè)備上生成的堆棧軌跡。
對于來自錯誤報告的外部堆棧軌跡,要獲取相同的突出顯示且可點擊的視圖,請按照以下步驟操作:
注意:請確保正在查看的源代碼的來源應(yīng)用版本與生成堆棧軌跡的應(yīng)用版本完全相同。如果代碼不同,文件名與行號會不匹配,或堆棧軌跡和項目中的調(diào)用順序會不一致。
監(jiān)控剪貼板,確定是否有新的堆棧軌跡
如果經(jīng)常使用外部堆棧軌跡,則可以通過允許 Android Studio 持續(xù)監(jiān)控系統(tǒng)剪貼板上是否有新的堆棧軌跡,提高工作效率:
總結(jié)
以上是生活随笔為你收集整理的Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 耳机不支持android,安卓手机为什么
- 下一篇: tcp out of order解决_J