Firebase 崩溃报告如何初始化

How does Firebase crash reporting initialize

我非常好奇为什么在应用程序中编写了 0 代码,而所需要的只是使用库

compile 'com.google.firebase:firebase-crash:9.0.1'

为了使 firebase 崩溃报告正常工作。 初始化是否总是一次性的事情,就像应用程序 class' onCreate 总是只被调用一次一样?

如果我只想在特定事件后启用崩溃报告,我该怎么办?

更新:现在有一个关于 how Firebase components initialize 的综合博客 post。

Firebase 崩溃报告(以及其他 Firebase 组件)在自动包含在您的应用中的 ContentProvider 中初始化。首先实例化 ContentProvider,然后是您的 Application 子类,然后是调用的任何组件(Activity、Service、BroadcastReciever)。

当您的项目依赖于一个 Android 库项目(aar 文件)时,它的所有清单条目都会合并到您的应用程序中,因此您只需声明对 firebase 的依赖即可免费获得此 ContentProvider-崩溃。

我在 Google I/O 2016 年发表了关于这一切如何运作的演讲。 Jump to 16:22 崩溃报告特定内容的开头。

遗憾的是,目前无法以编程方式启用或禁用崩溃报告,但即将推出。

所以基本上,当我使用 Firebase 崩溃报告时,我不得不在 ContentProvider 中进行初始化。因此,我的应用程序有 2 个进程,如果我在 Application.onCreate 中执行初始化,那么它会被调用两次 - 每个进程一次。但是其他进程不关心我的初始化代码,所以我不想做两次。所以我可以使用 ContentProvider 或检查当前进程名称。 或者我还有什么遗漏的吗?