android异常分为两种,一种是java代码导致的异常,一种是Native异常.
在java代码异常中,主要是出现了程序未被捕获的异常,导致程序异常退出,我们比较常见的处理方式是try catch来捕获异常.
这里主要是说说怎么捕获Native异常,首先什么情况下会产生Native崩溃呢,主要是由于Native代码引用非法地址,也可能是地址对齐出现问题,有可能程序主要终止都会产生相应的信号.
国内好的平台很多,比如腾讯的bugly,阿里的啄木鸟平台和网易的云捕等,从社区维护性来说腾讯的bugly最好,从捕获深度来说UC团队的啄木鸟国内最好,我们在哪些情况下会出现程序退出呢?
1:主动退出,exit(),Process.KillProcess()
2:异常断电,主动关机
3:ANR
4:系统低内存被low memory kill ,从系统任务管理器中划掉
5:出现java或者Native异常
那么如果来捕获Native异常呢?
https://github.com/google/breakpad
这里可以通过开源项目了解Breakpad工作机制和原理,从而对minidump文件的解析和生成有一定的理解.
网友评论