ACRA 如何捕获应用的所有异常?



你知道ACRA(Android Crash报告框架)是如何工作的吗?

它如何挂钩以捕获异常和错误?它是否使用一些全局 try/catch 块来检测错误?

这样做会影响性能和电池寿命吗?

ACRA 通过在主线程上设置默认异常处理程序来工作。您可以在下面的源代码中看到这一点:

   mDfltExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
   Thread.setDefaultUncaughtExceptionHandler(this);

此时,它将自己设置为默认的未捕获异常处理程序。如果抛出的任何异常从未被任何try/catch块捕获,Java 将调用此处理程序。

由于它实际上不是一个活跃的守护进程或进程,而是代码的一部分(假设您调用ACRA.init()),因此它实际上根本不影响性能或电池寿命。

相关内容

  • 没有找到相关文章

最新更新