异常处理+代码混淆(Crashlytics+proguard)

       如果你在公司做过Android的产品,或者发布过自己的产品,那么你应该知道或者听说过代码混淆吧,简单说就是在被别人反编译你的apk时,让别人看不懂你的代码,只能看到一些无意义的字母!如果你对这方面还不熟悉,那么请你先了解一下proguard这个Google自带的工具,网上也有很多相关的资料,这里就不介绍了。

       然而在代码混淆之后,如果想捕获一些系统的异常,就不能得到正确的source file、Stack trace、line number,因此对开发人员对软件后期的维护会带来相当大的困难!下面我就来介绍一种如何使得软件既有代码混淆,又有正确地异常反馈信息。


      在下面的解决方法中需要用到Crashlytics这个工具,如果你对Crashlytics还不熟悉可以看本人的上一篇博客。下面假设你已经使用过Crashlytics这个工具,并且对它已经有一定的了解。这里插一句,Crashlytics这是一个非常强大的工具,在异常反馈,报告的分类统计和管理方面做得已经挺不错了,特别是如果以后你想自己上线一款软件,你可以通过这个工具方便的了解软件的异常报告的统计分析。

下面进入正题,

我们首先新建一个Android的工程,取名为CrashDemo,工程目录如下:


然后在MainActivity的onCreate方法中,添加一行代码:

throw new RuntimeException("This is a crash!");

    如下:


接下来需要添加Crashlytics的相关配置信息和代码了,这里如果讲得不清楚,可以参看本人的上一篇博客

1.点击工具栏中Crashlytics的按钮

2.添加一个工程,选择CrashDemo,点next

3.选择next,出现下面图表示已经将CrashDemo添加完毕了


接下来可以做一下测试,是否可以正常地反馈异常报告https://www.crashlytics.com/上,打开网站后登陆你的账号,并找到项目CrashDemo

可以看到如下的异常报告统计信息说明已经配置成功了!




下面就开始导出代码混淆的apk了:

这里不多过多的介绍如何代码混淆,只是给出步骤,有关更多代码混淆的设置请自行搜索相关代码混淆的资料。(注意:如果你的项目中用到了第三方的jar的话,一定需要自己配置proguard-project.txt文件!)

1.打开工程目录下的project.properties

2.将下面红色方框圈住的行前面的#去掉

         

3.右击当前工程,选择export

4.选择下面的选项Android -> Export Crashlytics-enabled Android Application


5.选择需要导出的工程


6.这里选择创建一个新的keystore(也可以选择一个一有的keystore)


7.填写keystore的相关信息,这里可以随便填啦

8.这是最后一步了,选择导出的apk的位置,选择好后点finish。

9.现在就可以将导出的CrashDemo.apk安装到手机上,这个是经过代码混淆的,里面也加了异常处理机制,在启动应用时,会强制退出,并将异常报告发送。我们可以进入Crashlytics查看异常报告了!并且我们看到异常报告信息和之前代码混淆之前是一样的!

到这里我们解决了这个问题。

对比如果在混淆代码的情况下如果使用Export Android Application导出工程

我们得到的异常报告如下,我们看到已经看不到line number,stack trace等信息了:


最后提供一个参考资料http://support.crashlytics.com/knowledgebase/articles/202143-eclipse-with-proguard

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值