1

我注意到 Firebase 性能监控确实提供了一些开箱即用的自动跟踪。特别是我正在查看冷应用程序启动时间跟踪,这正是我现在需要做的。不幸的是,我确实需要更细粒度的数据,所以我想我可以自己做,但到目前为止,我还没有想出一个合理的方法来衡量 Android 应用程序的真正冷启动时间(想想点击之间的时间启动器中的图标并查看给定 Activity 的 UI)。

文档说,Firebase 在FirebasePerfProvider.onCreate回调被调用时开始跟踪。据我所知,这应该在应用程序进程开始后很快发生,所以这很好,但这也意味着即使应用程序刚刚收到通知(或一般广播),它也会被调用,此时进程可能不会在用户实际打开应用程序时终止。这意味着它会错误地测量持续时间。

鉴于 SDK 尚未(还?)开源,我找不到更好的描述它是如何工作的。

有人知道更多吗?

4

1 回答 1

2

如果 Android 进程通过 Service 或 BroadcastReceiver 启动,则不会启动任何跟踪。因此,如果在该过程中实际启动了 Activity,那么看起来很长的应用程序启动跟踪将不会出现问题。仅当进程由 Activity 调用时,才会发生应用程序启动跟踪。

我已经更新了文档以包含这一事实,并且该更改应该很快就会发布。

于 2017-11-13T15:45:10.160 回答