开启R8优化下如何获得原始异常堆栈跟踪

作者: GoodBoyboy
链接: https://blog.goodboyboy.top/posts/895802776.html
来源: GoodBoyboy 's Blog|惬意小屋-点滴记忆
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

什么是 R8

以下介绍来自 DeepSeek

R8 是 Android 平台上的代码优化和混淆工具,它是 ProGuard 的替代品,专门为 Kotlin 和 Java 代码设计。以下是关于 R8 优化的关键信息:

主要功能:

代码缩减 (Shrinking):
移除未使用的类、字段、方法和属性
减小应用体积

优化 (Optimization):
内联方法
移除死代码
简化类结构
优化控制流

混淆 (Obfuscation):
重命名类和成员为短名称
增加逆向工程难度

资源缩减:
与资源缩减工具配合移除未使用的资源

总而言之,就是能够缩减安装包体积,优化代码以及提高应用运行速度

但同样的,因为使用混淆,在捕捉异常时会受到混淆的影响导致无法定位到具体代码行

一般来说,开发时所编译的 debug 版不开启 R8,而用于发布的 release 版适合开启 R8。但当 release 版出现崩溃收集日志时就会受到 R8 的影响。

解决方案

在开启 R8 优化后编译 release 版时会生成一个 mapping 文件,该文件记录了混淆时所有对应的方法,使用该文件即可对记录的堆栈跟踪信息进行反混淆。

文章作者: GoodBoyboy
文章链接: https://blog.goodboyboy.top/posts/895802776.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 GoodBoyboy 's Blog|惬意小屋-点滴记忆!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值