xCrash捕获Native异常(一)
Native异常 android 开发过程中有时候需要使用JNI的方式调用C/C++的库。因此在调试的过程如果发现崩溃异常,如果能够获取C/C++ 的异常堆栈,则可以方便的确定哪一行代码出现了问题,方便快速的定位问题。 在捕获Native异常中,原理上面基本是采用linux的信号机制。 linux信号机制 关于Unix-like系统的信号机制可以参见《深入Linux内核》第4章 中断和异常 ;第11章 信号。 关于信号和异常介绍比较好的博客有: https://blog.csdn.net/ypt523/article/details/80290208。感谢博主的无私贡献。 Linux 信号相关编程,进程编程,需要查询相关资料,本文不进行介绍。 xCrash捕获Native异常配置 与Native异常相关的配置属性有 public final class XCrash{ ... public static class InitParameters { // anr异常处理器,默认为true,如果为false不捕获anr异常 boolean enableAnrHandler = true; // 是否恢复捕获anr异常。默认为true boolean anrRethrow = true; // 是否设置anr的状态标志给进程状态(具体参见源码中的注释) boolean