Bugly使用篇之Java错误堆栈还原
前面介绍了 Android混淆代码错误堆栈还原,相信大家已经知道如何通过Retrace在本地进行混淆代码还原了,上一篇提到,如果崩溃异常很多,你总不能一个一个去手动还原吧,不觉得这样做很没有效率么,有没有想过如果能实现线上监控崩溃并且能上传mapping文件进行快速还原,而不需要自己手动去做这样的一件事?没错,Bugly就是这样的一个平台,可以很方便快捷实现你这样的需求,能帮助到你提高开发效率,更加敏捷。本篇文章就跟大家分享如何使用Bugly进行错误堆栈还原。
集成Bugly
关于如何集成Bugly SDK这里不详细说明,可以到官网查看我们的SDK使用指南。
前面我也写过一篇文章快速集成Bugly Android 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文件来进行线上还原无疑是减少了开发同学的工作量,也能更有效的定位问题,因为不仅仅只是堆栈哦,也提供了很多辅助信息能帮组到开放同学解决问题。没有试过的同学,赶紧试试吧,老是崩溃的程序会影响产品的口碑,自然也影响你的升职加薪,不信的话,就试试吧,哈哈。