Season 6 ep 1,第六季集中讨论App启动速度的话题。
理解启动时间(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工具
更多关于启动时间的知识,将在后续章节中介绍。