【问题标题】:Improve startup time of app using Google Firebase使用 Google Firebase 缩短应用的启动时间
【发布时间】:2016-11-07 10:52:21
【问题描述】:

我最近开始使用 Google 提供的新 firebase API。我正在使用身份验证和数据库。我注意到应用程序启动时间非常糟糕,第一次启动大约 20 秒,之后每次启动大约 5-10 秒。

我已经做过/尝试过的事情:
1. 我一开始以为是我的手机有问题,但其他手机上的数字也差不多——包括模拟器。我的网速还不错,应该没问题。
2.我制作了另一个测试应用程序,只有最低限度的身份验证和数据库以及一个活动来查看我的应用程序是否有问题,但数字相同。
3. 在我的启动器活动中添加了一些日志语句。我注意到我的活动 onCreate 只有在所有 google 和 firebase 的东西都被初始化后才会被调用。
4.我尝试在检查用户是否登录时显示启动画面,但这几乎没有帮助,因为启动画面仅在firebase完成加载后才显示并且仅显示一纳秒。(参考上面点,onCreate 只有在 firebase 完成后才会调用,因此,setContentView 也会在此之后调用)

启动时会发生什么:每次启动时,我都会看到一个带有通知栏的白页,持续大约 5-10 秒。

知道我可以做些什么来改善启动时间吗?

更新:刚刚发现Firebase 组件都不是问题所在。问题是因为 Instant Run。在某处阅读即时运行会延迟应用启动时间,仅当它在调试模式下运行时。在没有即时运行的情况下测试了应用程序,就像一个魅力!

【问题讨论】:

  • 你看过Firebase Quickstart samples吗?您可以下载并构建一些以将设计和性能与您的应用程序进行比较。您报告的启动时间比我经历的要糟糕得多。
  • @qbix 刚刚尝试过。示例应用程序上的数字也不是很好。有什么建议吗?
  • 抱歉,没有更多可提供的了。我看过其他开发人员报告延迟的帖子,通常是在开发人员远离美国的情况下。这些似乎是由于网络性能不佳造成的。也许我没有遇到问题,因为我在加利福尼亚。
  • @qbix 我确定它不是我的网络。我使用光纤连接,速度足以支持 Firebase。不管怎么说,还是要谢谢你!感谢您的时间和精力! :)
  • Firebase 调试日志非常详细。如果启用它们,您可能会获得一些见解:FirebaseDatabase.getInstance().setLogLevel(Logger.Level.DEBUG)

标签: android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

问题不在于 Firebase,问题在于 Instant Run。打开 Instant Run 会导致调试版本出现启动问题。禁用 Instant Run 以查看改进。

【讨论】:

    猜你喜欢
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多