首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Bugly使用篇之Java错误堆栈还原

Bugly使用篇之Java错误堆栈还原

作者头像
巫山老妖
发布于 2018-07-20 03:00:33
发布于 2018-07-20 03:00:33
2.2K00
代码可运行
举报
文章被收录于专栏:小巫技术博客小巫技术博客
运行总次数:0
代码可运行

前言

前面介绍了 Android混淆代码错误堆栈还原,相信大家已经知道如何通过Retrace在本地进行混淆代码还原了,上一篇提到,如果崩溃异常很多,你总不能一个一个去手动还原吧,不觉得这样做很没有效率么,有没有想过如果能实现线上监控崩溃并且能上传mapping文件进行快速还原,而不需要自己手动去做这样的一件事?没错,Bugly就是这样的一个平台,可以很方便快捷实现你这样的需求,能帮助到你提高开发效率,更加敏捷。本篇文章就跟大家分享如何使用Bugly进行错误堆栈还原。

集成Bugly

关于如何集成Bugly SDK这里不详细说明,可以到官网查看我们的SDK使用指南

前面我也写过一篇文章快速集成Bugly Android SDK,可以参考下。

Bugly混淆配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 请避免混淆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文件来进行线上还原无疑是减少了开发同学的工作量,也能更有效的定位问题,因为不仅仅只是堆栈哦,也提供了很多辅助信息能帮组到开放同学解决问题。没有试过的同学,赶紧试试吧,老是崩溃的程序会影响产品的口碑,自然也影响你的升职加薪,不信的话,就试试吧,哈哈。

查看原文,可以点击链接。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小巫技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android混淆代码错误堆栈还原
前言 相信做过app的同学对代码混淆应该不陌生吧,如果陌生就自行百度,这里不做普及。我们先思考一个问题,如果我们把代码混淆了,如果出错了怎么定位问题?答案非常简单,只要稍微实践下你就明白了,下面就是给你整理的对混淆代码错误堆栈还原的方法。 如何混淆? Android Studio实现混淆很简单,只需要在build.gradle进行如下配置即可: buildTypes { release { minifyEnabled true proguar
巫山老妖
2018/07/20
2.3K0
快速定位crash的炫酷方式
本人所在项目组主要负责一款Android平台产品的开发,因为用户量比较大,正式版本发布后,每天Crash次数的上报量都在几十万量级,即便是内测版,每天Crash次数的上报量也在两三千次。面对如此庞大的上报量,能否快速准确的定位问题直接关系到Crash的解决率,我们项目组在这方面做了比较多的尝试,现在在这里给大家分享一下比较有效的一些做法,也欢迎大家一起来探讨和分享。 1 利用Bugly平台的工具自动还原堆栈 刚接入Bugly的时候,看着大量混淆后的java堆栈,着实让人头大。每次定位问题都要到处找mappi
腾讯Bugly
2018/03/23
1.4K0
快速定位crash的炫酷方式
【功能发布】Crash不好找?Bugly来支招!
自Bugly上线以来,通过各位开发者的试用和口口相传,目前Bugly已经迎来了大批量的用户,在业内的反响只能用下图来形容: 当然也有很多程序员哥哥在使用的过程中遇到了一些问题,比如按照文档的引导流程正确接入了,但是上报的Crash文档却不可读,很难准确定位到Crash的所在。对于这个问题,小编跪抱技术哥哥们大腿,进行仔细查看,认真琢磨,发现原来都是符号表惹的祸。 说到这里,不禁有人要发问: 在产品开发的过程中,为了进行代码及产品保护,几乎所有的非开源App都会进行代码混淆。但是,当收集到崩溃信息后,
腾讯Bugly
2018/03/22
2.2K1
【功能发布】Crash不好找?Bugly来支招!
Android 混淆是啥玩意儿?
Android混淆,是伴随着Android系统的流行而产生的一种Android APP保护技术,用于保护APP不被破解和逆向分析。简单的说,就是将原本正常的项目文件,对其类、方法、字段,重新命名a,b,c…之类的字母,达到混淆代码的目的,这样反编译出来,结构乱糟糟的。
用户5521279
2019/08/28
1.8K0
Android 混淆是啥玩意儿?
Duang~ Android堆栈慘遭毁容?精神哥揭露毁容真相!
最近精神哥接到多个小伙伴的投诉,说无法看懂Bugly崩溃克星页面上显示的堆栈信息!精神哥赶紧把正研究的Top Crash崩溃和心爱的鸡爪放下,开始着手跟进。经分析发现,大家误会Bugly崩溃克星了,这一切都是Proguard搞的鬼! 下面请容精神哥一一道来! 问题描述 先看看图一中显示的正常堆栈内容,正常堆栈中每一个调用帧(Frame),都会有3个元素组成: 类名(Full Class Name,红线标注); 方法名(Method,蓝线标注); 源文件及行号(SourceFile:LineNum,绿线标注
腾讯Bugly
2018/03/22
1.5K0
Duang~ Android堆栈慘遭毁容?精神哥揭露毁容真相!
android混淆那些坑
ProGuard简介 在最新的Android Studio 2.2.2版本创建的Android工程中,module中的build.gradle有如下一段配置。这里的minifyEnabled即用来控制在编译时是否需要启用Proguard,将minifyEnabled修改为true,即表示启用Proguard。’proguard-android.txt’是Android SDK中自带的一个基本Progurad配置文件,默认是空白的,需要由开发者自行添加哪些需要混淆哪些不混淆,形如: -ignorewarnin
xiangzhihong
2018/02/05
3.4K0
android混淆那些坑
Android 代码混淆 混淆方案
本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路。请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地,打包完成以后而又不不可以了,导致了许多困惑,本片文章来问大家解决困惑,希望对大家有帮助。
全栈程序员站长
2022/09/02
3.1K0
Android开发:请你吃一顿史上最全的Android混淆大餐
在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的基本操作。那么,混淆到底是什么?它的好处有哪些?具体效果如何?别急,下面我们来一一探索它的"独特"魅力。
Android技术干货分享
2019/07/09
5.9K2
042android初级篇之android混淆代码ProGuard
配置文件的位置以及开关的设置位置,android studio 和eclipse稍微有些差异,这里以android sudio为例:
上善若水.夏
2018/09/28
1.2K0
腾讯Bugly Unity3D Plugin使用指南
概述 Bugly Unity Plugin是专为基于Unity引擎开发的跨移动平台(iOS/Android)游戏APP而开发的异常监控插件,它能够自动捕获Unity项目中脚本(如JavaScript、C#)和本地代码(如Objective-C、Java)抛出的异常,并提供实时、准确的错误分析服务。 准备工作 如果你之前已经在[Bugly]或[腾讯移动开放平台]注册了应用,并获取到AppID,可以继续使用它。 如果你尚未注册应用,可以通过QQ登录Bugly网站,点击”用户名”,选择”我的App”,点击
腾讯Bugly
2018/03/22
4.8K0
腾讯Bugly Unity3D Plugin使用指南
【移动开发】基于MobileLine的零代码快速集成崩溃监控服务(Android)
移动开发平台(MobileLine)提供各种服务帮助您快速构建移动应用并推动业务增长。借助 MobileLine,您可以使用云服务来保证移动应用的高质量,我们帮您完成了基础性工作,让您可以把关注点放回到业务核心逻辑和用户身上。
轻吻晴雯
2018/06/12
9130
Bugly热更新SDK你需要知道的一些事
Bugly出热更新SDK了? 没错,Bugly也出热更新SDK啦,2016.11.25号,我们Bugly也上线了Android版的热更新SDK,大家都知道这一年来热更新被无数次提起,各大厂自主研发的热更新方案层出不穷,下面就列举一些大家比较熟悉的一些热更新方案: 微信开源:Tinker 大众点评:Nuwa 阿里巴巴:Dexposed 阿里巴巴:AndFix 美团:Robust 各个方案的优劣性笔者就不在这里做过多讨论了,总的一句话没有最好的,只有最适合自己的。 我们Bugly也是出于高可用性的考虑,Tink
巫山老妖
2018/07/20
1.6K0
Android 混淆那些事儿
本文主要讲述了代码混淆和资源混淆的原理,Studio默认的混淆方案,混淆的参数,以及如何对Apk进行代码混淆(自定义混淆文件)和资源混淆(结合微信混淆和美团混淆两种方案),避免Apk被逆向。 为什么要混淆 我们的apk在打包发布之前,都要进行混淆处理来避免源代码和资源文件被小白用户通过反编译拿到。未混淆代码的反编译操作非常简单,网上有很多教程, 也可以通过使用Android Studio自带的apk分析工具(Build—-Analyze APK)直接看到未混淆Apk的源代码和原始的资源文件。对比图如下,从
腾讯Bugly
2018/03/23
3.4K0
手把手教你使用Bugly收集线上崩溃信息
我们都知道,app在上线之后,用户如果操作我们的app导致的崩溃、错误信息,我们是无法获知的,这时候,就需要一款工具,来告诉我们现在的app在线上的运行情况; 现在线上信息收集的工具有 友盟、极光等,
小蠢驴打代码
2018/05/24
6.1K0
读懂 Android 中的代码混淆
在Android开发工作中,我们都或多或少接触过代码混淆。比如我们想要集成某个SDK,往往需要做一些排除混淆的操作。
技术小黑屋
2018/09/05
1.8K0
Android热更新之微信Tinker集成(接入Bugly热更新)
最近公司项目中需要集成热更新功能,由于刚开始接入的时候踩了很多坑,所以现在记录一下集成的过程.
SoullessCoder
2019/08/07
2.1K0
Android热更新之微信Tinker集成(接入Bugly热更新)
Android插件化基础3----Android的编译打包流程详解
.apk文件其实就是一个压缩包,把文件的后缀改成.zip,用压缩软件解压搜就可的下图(我是mac)
隔壁老李头
2018/08/30
2.3K0
Android插件化基础3----Android的编译打包流程详解
Android 代码混淆语法讲解及常用模板
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/78253651
程序员徐公
2018/09/17
1.8K0
Android 代码混淆语法讲解及常用模板
Android制作AAR包并混淆后加载调用
最近准备做新版本产品研发,部分相关算法原来用的Webapi调用返回,考虑到速度问题,需要在Andriod端实现, 就想到了制作AAR包加代码混淆的方法,以前主要没有用过,所以这次就做个Demo来技术验证。
Vaccae
2021/08/25
5.5K0
Android 代码混淆机制
由于Android项目是基于java语言的,而java属于高层抽象语言,易于反编译,其编译后的程序包包含了大量的源代码变量、函数名、数据结构等信息,根据其编译打包后的APK文件,可以非常容易的得到 近乎源代码质量 的反编译代码。如果不加混淆,相当于直接将源代码拱手送人,内容严密的app权限审核可以说是形同虚设。如果大家想避免自己的成果被别人夺取,然后重新修改策划而额外增加的工作量,那就尽量得自己的Android项目加上混淆吧。
全栈程序员站长
2022/09/02
1.7K0
Android 代码混淆机制
相关推荐
Android混淆代码错误堆栈还原
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档