Season 6 ep 1,第六季集中讨论App启动速度的话题。

link


理解启动时间(Launching Time)

当用户启动应用时,Android系统会展示一个空白(dummy)启动页,后面会讲到,可以通过在AndroidManifest.xml中为这个启动页配置背景图片。

空白页持续到App绘制出首屏图像为止。

下面的流程图从进程角度进行说明,系统进程System Process会为App启动一个Application Process,在这进程里先执行Application.onCreate(在musical.ly的face to face中提到了这个),随后,应用主线程MainThread处理Activity初始化事务,直至绘制出第一个界面,系统才将屏幕交给应用来展示。

在这个过程中,inflate views是耗时最多的,因此在开发自己的应用时,应当有意地精简首屏布局,减少加载时间。如果有耗时操作,则使用懒加载。

若你使用懒加载,当所有资源加载完成后,可以通过reportFullyDrawn()方法来告诉系统这一事件。系统在统计初始加载时间的时候,会以调用这个方法的时机作为结束。


帮助我们优化启动时间的工具

Android Studio为我们提供了监控启动时间的工具,借助这些工具,我们可以找出启动过程中最耗时的步骤是哪个,通过懒加载等手段,将启动时间控制在合理的范围内。

首先便是App启动时候自动打出的log

精确到方法,在Monitor面板中有MethodTracing工具

更多关于启动时间的知识,将在后续章节中介绍。


参考资料


====END====