ACRA如何捕获所有应用程序的例外情况?

时间:2014-02-24 21:08:31

标签: android acra

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

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

这样做会影响性能和电池续航时间吗?

1 个答案:

答案 0 :(得分:2)

ACRA的工作原理是在主线程上设置默认的异常处理程序。您可以在源代码here中看到:

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

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

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