android热启动时间,Android冷启动和热启动

一、什么是冷启动、热启动?

冷启动:

在启动应用时,系统中没有该应用的进程,这时系统会创建一个新的进程分配给该应用;

热启动:

在启动应用时,系统中已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程还是保留在后台);

二、冷启动、热启动的区别

冷启动:系统没有该应用的进程,需要创建一个新的进程分配给应用,所以会先创建和初始化Application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。

热启动: 从已有的进程中来启动,不会创建和初始化Application类,直接创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。

三、冷启动时间的计算

API19 之后,系统会出打印日志输出启动的时间;

冷启动时间 = 应用启动(创建进程) —> 完成视图的第一次绘制(Activity内容对用户可见);

四、冷启动流程

Zygote进程中fork创建出一个新的进程;

创建和初始化Application类、创建MainActivity;

inflate布局、当onCreate/onStart/onResume方法都走完;

contentView的measure/layout/draw显示在界面上;

总结:

Application构造方法 –> attachBaseContext() –> onCreate() –> Activity构造方法 –> onCreate() –> 配置主题中背景等属性 –> onStart() –> onResume() –> 测量布局绘制显示在界面上。

五、冷启动的优化

减少在Application和第一个Activity的onCreate()方法的工作量;

不要让Application参与业务的操作;

不要在Application进行耗时操作;

不要以静态变量的方式在Application中保存数据;

减少布局的复杂性和深度;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值