一 .冷启动的定义:
冷启动就是在启动应用前,系统中没有该应用的任何进程信息.
二 .冷启动的时间计算:
Adb log里面可以看出,那是app创建到mainactivity现实的时间.
adb shell am start -W packagename/activity
三 .冷启动流程
Zygote进程中fork创建出一个新的进程.
创建和初始化Application类,创建MainActivity类.
inflate布局,当onCreate/onStart/onResume方法都走完
contentView的measure/layout/draw显示在界面上.
Application的构造器方法-->attachBaseContext-->onCreate()-->Activity的构造方法-->onCreate()-->配置主题背景等属性--->onStart()-->onResume()-->测量布局绘制显示在界面上.
四 .如何对冷启动的时间进行优化
- 减少onCreate()方法的工作量.
- 不要让Application参与业务的操作.
- 不要在Application进行耗时操作.
不要以静态变量的方法在Application中保存数据.
布局(布局的层级、viewstub)/mainThread