【问题标题】:How does Firebase app start time profiling work on Android?Firebase 应用启动时间分析如何在 Android 上运行?
【发布时间】:2018-04-25 23:34:16
【问题描述】:

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

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

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

有人知道吗?

【问题讨论】:

    标签: android firebase firebase-performance


    【解决方案1】:

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

    我已更新 documentation 以包含此事实,并且该更改应很快发布。

    【讨论】:

    • 谢谢!你有关于如何做到这一点的任何细节吗?我没有看到任何明显的方法来确定提供者创建的上下文。
    • 我从一位工程师那里得到了概述,但没有调查细节。
    • 我意识到我实际上可以查询ActivityManager 并从中获得最高的活动......
    • @simekadam 如果此答案解决了您的主要问题,请接受它作为正确答案。
    猜你喜欢
    • 2021-11-15
    • 1970-01-01
    • 2020-08-28
    • 2019-08-18
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    相关资源
    最近更新 更多