自定义CrashHandler
前言
开发app过程中我,我们经常会遇到程序崩溃的问题,默认的处理方式是弹出一个crash的对话,点击后程序就会被关闭,与此同时,log日志也会有响应的错误栈打印。
那有没有办法在程序崩溃时,自行处理crash,比如将错误日志输出后,上传到服务器,然后重启app。这种场景就需要我们去自定义崩溃处理流程。
本文分为三部分,第一部分对android源码的crash流程进行分析,第二部分介绍如何自定义一个崩溃处理器,第三部分介绍如何去处理jni层的崩溃。
一、 Java层Crash源码流程分析。
我们先来看下源码的RuntimeInit.class类,该类有一个静态的main方法,该方法会在android启动的过程中,被调用。
我们来看下CommonInit(),这里对线程设置了一个默认的异常处理器,从名字中也可以看出,设置的是java层未捕获的异常处理。
KillApplicationHandler:负责处理关闭app的处理器。
LoggingHandler:负责处理相关日志。
先来看下KillAppl