当前位置: 移动技术网 > IT编程>移动开发>Android > android冷启动与热启动面试

android冷启动与热启动面试

2018年09月19日  | 移动技术网IT编程  | 我要评论

高压线电死人,刘亚男近况,o2o购物节

今天我们来学习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中保存数据; 减少布局的复杂性和深度;

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网