1. 程式人生 > >Bugly使用篇之Java錯誤堆疊還原

Bugly使用篇之Java錯誤堆疊還原

前言

前面介紹了 Android混淆程式碼錯誤堆疊還原,相信大家已經知道如何通過Retrace在本地進行混淆程式碼還原了,上一篇提到,如果崩潰異常很多,你總不能一個一個去手動還原吧,不覺得這樣做很沒有效率麼,有沒有想過如果能實現線上監控崩潰並且能上傳mapping檔案進行快速還原,而不需要自己手動去做這樣的一件事?沒錯,Bugly就是這樣的一個平臺,可以很方便快捷實現你這樣的需求,能幫助到你提高開發效率,更加敏捷。本篇文章就跟大家分享如何使用Bugly進行錯誤堆疊還原。

整合Bugly

關於如何整合Bugly SDK這裡不詳細說明,可以到官網檢視我們的SDK使用指南

Bugly混淆配置

# 請避免混淆Bugly,在Proguard混淆檔案中增加以下配置:
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}

# 保留原始檔名及行號
-keepattributes SourceFile,LineNumberTable

mapping檔案

Android混淆程式碼錯誤堆疊還原,這篇文章已經說過mapping檔案生成的目錄,它主要用來對於我們混淆過後的程式碼進行還原,裡面列出了原始的類,方法和欄位名與混淆後代碼間的對映。可以舉個例子:

這裡寫圖片描述

可以通過這個對映表知道我們編寫的程式碼大致會被混淆成什麼樣子,我們每次釋出一個版本最好要保留一份Release版的mapping檔案,這樣我們就可以針對不同的版本進行還原,也能更好的定位問題。

線上還原

通過整合我們Bugly SDK,就能在線上監控你的app的崩潰情況,一有崩潰發生就會上報到平臺,我們製造一個Crash,看它在Bugly平臺的表現:

這裡寫圖片描述

在崩潰分析可以看到Demo上報的一條異常,而這個異常的程式碼是被混淆過後的,這時我們需要對它進行還原。點選異常進入異常詳情頁,找到符號表並上傳:

上傳符號表

上傳成功之後,我們重新整理頁面就可以看到解析的結果:

還原的結果

以後在這個版本出現的異常都能通過這個mapping檔案進行堆疊還原了。

這裡有個問題,每次都要上傳mapping檔案會不會很麻煩,能不能實現自動上傳符號表?當然可以,Bugly早已幫你實現自動上傳符號表的外掛,詳情的話看

符號表配置

總結

對程式碼進行混淆可以減少被破解的風險,也能達到對程式碼優化的作用,但如果發生了崩潰了就比較難定位問題,不過android中可以通過mapping檔案進行反推,人工來做這件事的話會比較費時,所以使用Bugly能夠讓使用者上傳mapping檔案來進行線上還原無疑是減少了開發同學的工作量,也能更有效的定位問題,因為不僅僅只是堆疊哦,也提供了很多輔助資訊能幫組到開放同學解決問題。沒有試過的同學,趕緊試試吧,老是崩潰的程式會影響產品的口碑,自然也影響你的升職加薪,不信的話,就試試吧,哈哈。