使用firebase的Android慢速冷启动
我觉得我的应用程序冷启动很慢,当Firebase Performance提到这一点时,我更加确信 我使用logcat使用firebase的Android慢速冷启动,android,firebase,cold-start,Android,Firebase,Cold Start,我觉得我的应用程序冷启动很慢,当Firebase Performance提到这一点时,我更加确信 我使用logcatdisplay进行初始比较,结果显示在我的三星galaxy S8上: /.list.MainActivity: +2s81ms 通过按下Android Studio上的play按钮>从手机关闭应用程序>在手机中再次打开应用程序(即,不使用Android Studio)可以复制此功能 与已知的应用程序相比,大约400ms的快速应用程序和较慢的应用程序(如Whatsapp和faceb
display
进行初始比较,结果显示在我的三星galaxy S8上:
/.list.MainActivity: +2s81ms
通过按下Android Studio上的play
按钮>
从手机关闭应用程序>
在手机中再次打开应用程序(即,不使用Android Studio)可以复制此功能
与已知的应用程序相比,大约400ms的快速应用程序和较慢的应用程序(如Whatsapp和facebook)是1s,因此2秒是很多
我花了将近两天的时间,最终发现了以下几点:
如果我正在制作一个简单的Hello World应用程序,那么冷启动时间约为0.660s,这对于一个什么都不做的应用程序来说是很大的,而发布的应用程序只有0.350秒
如果我在gradle中添加接下来的4行(没有任何额外的代码!)
冷启动增加到1.2s左右,甚至超过Whatsapp和Facebook
为什么这么简单的代码的冷启动这么慢?我是否缺少Android studio中的任何设置?也许是舱单还是gradle?我能做些什么来改善这一点
当您将Firebase添加到应用程序时,它将合并到Firebase的ContentProvider中,以便在调用代码时,API即可使用。你要为此付出代价。但这并不一定能解释一切,因为我们无法确切了解你的应用程序可能在做什么,或者你的应用程序如何测量启动时间。事实证明,调试版本和发布版本之间存在很大差异。我在google play上为alpha测试员创建了一个发布版本,启用了
minifyEnabled
,shrinkResources
,debugable
设置为false
等。现在应用程序的冷启动时间约为700ms
另外,我不确定刚安装的应用程序和安装好几次后冷启动的应用程序之间是否有区别(当然,不要被热启动搞糊涂了)
这并不能完全解释我所经历的所有事情,我仍然有点困惑,但我猜android系统(和firebase)有很多我不知道的地方会影响冷启动时间我不清楚你在问什么。“我遗漏了什么”似乎不可行。我修改了最后一句,以澄清如上所述,我正在“无过滤器”下搜索Logcat中的“显示”关键字,以比较该应用程序与我手机上其他应用程序之间的冷启动时间,代码在下面的链接中。除了firebase实现之外,它没有任何内容。1.2s对于这样一个空应用来说太多了,我不确定它是否有意义。
implementation 'com.google.firebase:firebase-firestore:21.4.2'
implementation 'com.firebaseui:firebase-ui-auth:6.2.0'
implementation 'com.google.firebase:firebase-auth:19.3.0'
implementation 'com.firebaseui:firebase-ui-firestore:6.2.0'