一 .冷启动的定义:

 冷启动就是在启动应用前,系统中没有该应用的任何进程信息.

二 .冷启动的时间计算:

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()-->测量布局绘制显示在界面上.

四 .如何对冷启动的时间进行优化

  1. 减少onCreate()方法的工作量.
  2. 不要让Application参与业务的操作.
  3. 不要在Application进行耗时操作.
  4. 不要以静态变量的方法在Application中保存数据.

  5. 布局(布局的层级、viewstub)/mainThread

results matching ""

    No results matching ""