Android异常与性能优化之冷启动优化

本文围绕Android应用冷启动展开,介绍了冷启动定义,即启动前系统无应用进程信息,还对比了冷启动与热启动的区别及冷启动时间计算方式。阐述了冷启动流程,从Zygote进程创建新进程,到Application和Activity类的创建、初始化等。最后提及冷启动的优化。

一、冷启动的定义

1、冷启动的定义

冷启动就是在启动应用前,系统中没有该应用的任何进程信息。比如第一次启动

2、冷启动与热启动的区别

热启动就是用户按home键退出应用然后马上又重新启动应用

区别:

<1> 冷启动在启动时没有该应用的进程信息,这时候启动系统就会为该应用创建新的进程,而热启动的进程是保留在后台的

<2> 冷启动会创建新的进程所以先会创建Application类,再会去创建ManActivity类,会进行一些测量、绘制等工作最后显示在界面上。 而热启动由于已有进程就不会走Application类,只需走ManActivity就可以了

3、冷启动的时间计算

这个时间值从应用启动(创建进程)开始计算,到完成视图的第一次绘制(即Activity内容对用户可见)为止

二、冷启动的流程

应用第一次启动时系统会从Zygote进程中fork创建出一个新的进程,然后创建和初始化Application类,创建Activity类 inflate布局、当onCreate/onStart/onReume方法走完,contentView的measure/layout/draw显示在界面上

总结:

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

三、冷启动的优化

1、减少onCreate()方法的工作量

2、不要让Application参与业务的操作

3、不要在Application进行耗时操作

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

5、布局 / mainThead
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值