App冷启动
App启动的方式有很多种,开发人员可以优化的一般都是冷启动方式。
冷启动 : 在App没有被创建的情况下启动,这个过程中会创建进程,启动Application,然后启动主Activity。
冷启动时间 : 一般控制在2,3,5秒(2秒正常,3秒凑合,5秒快到用户忍受极限了)。
本篇讨论的应用场景
在实际开发中,有些App的启动过程中只有一个Activity,也就是AndroidManifest.xml里面有标签为
action android:name=”android.intent.action.MAIN”的Activity就是最终的首页,这种情况计算启动时间比较方便,使用命令行方式统计就可以解决。而有的App启动过程中有多个Activity,比如说先进行一些初始化操作或者动画播放完毕再进入到首页的情况,本篇文章要讨论就是这种情况。多个Activity的情况用命令行去测量每个Activity的时间,然后再加起来,结果是不够准确的,也不是用户感知的时间。所以本篇讨论的计算方法适用如下场景:
启动过程中不止有一个Activity。
测量的不是真正概念上冷启动的时间,而是从用户感知的角度,由创建进程到真正首页显示的时间。
不用执行命令行进行计算,而是写代码进行起始时间点之间的计算。
启动过程有多个Activity的计算方法
App启动流程需要创建进程,启动Application,以及Activity,要测量这部分的时间。通过了解App的启动流程,找出以下测量的起始时间点:
在Application的attachBaseContext()开始计算第一部分的启动时间,在