我最近看了一眼logcat,发现我的应用程序比其他应用程序需要更多的时间来启动。然后我创建了一个新项目,其中有一个空活动,但它仍然比其他一些应用程序慢。
2021-07-20 21:28:17.750 1321-1344/? I/ActivityTaskManager: Displayed com.tutaf.myapplication/.MainActivity: +956ms
比较:
- 电报X在400-500毫秒内启动
- Firefox:550-1000毫秒
- VLC:700-900毫秒
- 4PDA:400-600毫秒
- 总指挥:600-800毫秒
为什么这些应用程序的启动速度比空应用程序快,有没有办法更接近它们的结果?
经过对logcat的研究,我发现在应用程序的Make-Span
(启动显示(过程中。它遭受几个CCD_ 2。此外,如果您减轻了这些紧张的操作,您将能够加快应用程序的启动速度。在下面,我已经澄清了问题:
2021-07-20 22:43:50.730 => ok
2021-07-20 22:43:50.730 => ok
2021-07-20 22:43:50.748 => ok
2021-07-20 22:43:50.749 => ok
2021-07-20 22:43:50.750 => ok
2021-07-20 22:43:50.792 => spike : 42ms
2021-07-20 22:43:50.793 => ok
2021-07-20 22:43:50.820 => ok
2021-07-20 22:43:50.822 => ok
2021-07-20 22:43:50.843 => ok
2021-07-20 22:43:50.884 => spike : 41ms
2021-07-20 22:43:50.895 => ok
2021-07-20 22:43:51.170 => spike : 275ms : INTENSE
2021-07-20 22:43:51.171 => ok
2021-07-20 22:43:51.173 => ok
2021-07-20 22:43:51.188 => ok
2021-07-20 22:43:51.189 => ok
2021-07-20 22:43:51.340 => spike : 151ms : INTENSE
2021-07-20 22:43:51.341 => ok
2021-07-20 22:43:51.481 => spike : 140ms : INTENSE
2021-07-20 22:43:51.481 => ok
2021-07-20 22:43:51.494 => ok
2021-07-20 22:43:51.550 => spike : 56ms
2021-07-20 22:43:51.551 => ok
2021-07-20 22:43:51.676 /.MainActivity: +943ms
因此,如果您减少了INTENSE
峰值(275ms+151ms+140ms=566ms(,应用程序的启动将占用377ms
(943ms-566ms(,这是您预期的启动时间。
建议
- 不要肥胖主要活动
- 执行大部分操作
async
- 不要对主活动执行
Data-Intense
操作 - 不要在主活动的UI中放置太多图形元素
- 使你的主要活动尽可能轻