日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)

發(fā)布時(shí)間:2025/3/12 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android日志[進(jìn)階篇]一-使用 Logcat 寫(xiě)入和查看日志
Android日志[進(jìn)階篇]二-分析堆棧軌跡(調(diào)試和外部堆棧)
Android日志[進(jìn)階篇]三-Logcat命令行工具
Android日志[進(jìn)階篇]四-獲取錯(cuò)誤報(bào)告
Android日志[進(jìn)階篇]五-閱讀錯(cuò)誤報(bào)告

目錄

  • 調(diào)試中的堆棧軌跡
  • 從外部來(lái)源打開(kāi)堆棧軌跡
  • 監(jiān)控剪貼板,確定是否有新的堆棧軌跡

堆棧
一般是指java層的或jni層發(fā)生crash時(shí)候的函數(shù)調(diào)用序列,最頂層就是發(fā)生異常的地方,有的情況下這個(gè)堆棧并不一定完整。映射代碼基本上指應(yīng)用層(java 或kotlin),是為了方便將錯(cuò)誤定格到代碼上,也就是本文講的內(nèi)容。但建議小伙伴們要逐漸脫離這樣的工具,能自己直接定格,這樣效率會(huì)更高。至于jni的,需要進(jìn)行相關(guān)的函數(shù)表配置,總體思路都是一樣的。

調(diào)試中的堆棧軌跡

調(diào)試應(yīng)用通常需要使用堆棧軌跡。每當(dāng)您的應(yīng)用因?yàn)殄e(cuò)誤或異常而崩潰時(shí),都會(huì)生成堆棧軌跡。可以使用 Thread.dumpStack() 等方法輸出應(yīng)用代碼中任意位置的堆棧軌跡。

在連接的設(shè)備上,當(dāng)應(yīng)用在調(diào)試模式下運(yùn)行時(shí),Android Studio 會(huì)在 logcat 視圖中輸出并突出顯示堆棧軌跡,如圖 1 所示。

圖 1. Logcat 中的堆棧軌跡。

堆棧軌跡會(huì)顯示導(dǎo)致拋出異常的方法調(diào)用列表,以及調(diào)用發(fā)生的文件名和行號(hào)。可以點(diǎn)擊突出顯示的文件名,以打開(kāi)相應(yīng)文件并檢查方法調(diào)用的來(lái)源。點(diǎn)擊 Up the stack trace 圖標(biāo) 和 Down the stack trace 圖標(biāo) 可以在 logcat 窗口中顯示的堆棧軌跡行之間快速移動(dòng)。

從外部來(lái)源打開(kāi)堆棧軌跡

有時(shí),需要分析線上錯(cuò)誤報(bào)告中的堆棧軌跡,而不是在調(diào)試時(shí)發(fā)現(xiàn)的堆棧軌跡。例如,可能正在通過(guò) Google Play 管理中心或一些其他工具(例如Firebase Crash Reporting,bugly,友盟)收集用戶設(shè)備上生成的堆棧軌跡。

對(duì)于來(lái)自錯(cuò)誤報(bào)告的外部堆棧軌跡,要獲取相同的突出顯示且可點(diǎn)擊的視圖,請(qǐng)按照以下步驟操作:

  • 在 Android Studio 中打開(kāi)app對(duì)應(yīng)的項(xiàng)目。

    注意:請(qǐng)確保正在查看的源代碼的來(lái)源應(yīng)用版本與生成堆棧軌跡的應(yīng)用版本完全相同。如果代碼不同,文件名與行號(hào)會(huì)不匹配,或堆棧軌跡和項(xiàng)目中的調(diào)用順序會(huì)不一致。

  • Analyze 菜單中,點(diǎn)擊 Analyze Stack Trace

  • 將堆棧軌跡文本粘貼到 Analyze Stack Trace 窗口中,然后點(diǎn)擊 OK
  • Android Studio 會(huì)在 Run 窗口下打開(kāi)一個(gè)新的 <Stacktrace> 標(biāo)簽頁(yè),其中包含您粘貼的堆棧軌跡。

  • 監(jiān)控剪貼板,確定是否有新的堆棧軌跡

    如果經(jīng)常使用外部堆棧軌跡,則可以通過(guò)允許 Android Studio 持續(xù)監(jiān)控系統(tǒng)剪貼板上是否有新的堆棧軌跡,提高工作效率:

  • 打開(kāi) Analyze Stacktrace 工具。
  • 選中 Automatically detect and analyze thread dumps copied to the clipboard outside of IntelliJ IDEA 復(fù)選框。
  • 將其他應(yīng)用(例如來(lái)自網(wǎng)絡(luò)瀏覽器的應(yīng)用)中的堆棧軌跡復(fù)制到系統(tǒng)剪貼板。
  • 當(dāng)返回到 Android Studio 窗口時(shí),相應(yīng)堆棧軌跡會(huì)自動(dòng)在 Run 窗口下打開(kāi),而無(wú)需將其粘貼到“Analyze Stacktrace”窗口中。
  • 總結(jié)

    以上是生活随笔為你收集整理的Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。