加入收藏 | 设为首页 | 会员中心 | 我要投稿 171手机网 (https://www.171shouji.cn/)- 云手机、5G、智能手机、新款手机、手机推荐!
当前位置: 首页 > 安卓频道 > 安卓资讯 > 正文

Android应用的异常捕获

发布时间:2017-06-08 04:37:34 所属栏目:安卓资讯 来源:www.yidianzixun.com
导读:做为程序员,最不愿意看到的就是自己写的程序崩溃,特别是遇到没有错误信息的崩溃的时候,往往程序员自己也就随之一起崩溃了。如何捕获Android程序产生异常时的崩溃信息,本文提供了随手可行的方法,希望能够带来一些启...

请确保Linux或者Mac的依赖包都已安装。成功编译之后,我们需要用到两个文件,一是minidump_stackwalk(src/processor/minidump_stackwalk),另一个是dump_sys(src/tools/linux/dump_sysm/dump_syms)。我们将这两个文件拷贝到工作目录备用。同时,我们将$AndroidProject/build/intermediates/ndkBuild/debug/obj/local/armeabi/libtest_google_breakpad.so和上一步生成的dmp文件也拷贝到工作目录。接下来我们就开始进行dmp文件的分析。

生成Symbol文件

我们首先采用dump_syms生成了libtest_google_breakpad.so的symbol,然后读取了symbol文件的第一行,需要的信息是这一串十六进制的version code。接下来我们将Symbol文件按照固定路径进行放置:

至此,Symbol文件就准备完毕。

分析Symbol

然后我们打开result.txt,就可以发现有如下类似结果:

Android应用的异常捕获

这样,一个清晰的Crash Stack Trace就出现了。

3.如何提示用户发送错误信息

我们在前面已经成功的捕获了Java异常和Native异常,那么接下来要做的就是顺理成章的处理,只要提示用户将我们需要的Java栈和Native Dmp文件发送给我们,我们就可以进行问题排查和修复了。由于篇幅原因,这里就给出一个思路,我们可以在Java Excpetion和 Native DumpCallback的时候,新起一个进程,在这个进程里面进行日志上传,甚至可以弹出一个Activity告知用户,提升用户体验。如何在Native DumpCallback新开进程并弹出Activity,这又是一个较大的话题,我们以后有机会再一起探讨。:-D

总结

当应用上线之后,脱离了Logcat提供的便利,开发者应该如何获取错误信息进行异常修复,本文提供了一些随手可行的思路,包含了Java层和Native层不同的处理办法,通过实例代码步步深入,希望带给大家一起启发,同时解决生产上的一些实际问题。

Android应用的异常捕获

(编辑:171手机网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读