谈到Android性能优化,首先想到的就是启动优化,内存优化,电量优化,包体积优化等,今天首先说说启动优化。启动优化主要是优化app启动的时间,是指用户点击APP图标到用户可操作页面之间经历的时间。Google把Android的启动分为三种,热启动,温启动和冷启动。其中热启动是指应用已经启动了,从后台切到前台称为热启动。温启动-用户已经退出App,但是进程仍在,启动时无需再创建新的进程。只需走Activity的生命周期即可。而冷启动是指应用从0开始,即创建进程,启动APP,是最耗时,也是我们做启动优化的关键所在。
APP启动详情可以查看官网
冷启动是指应用从头开始启动:系统进程在冷启动后才创建应用进程。发生冷启动的情况包括应用自设备启动后或系统终止应用后首次启动。这种启动给最大限度地减少启动时间带来了最大的挑战,因为系统和应用要做的工作比在另外两种启动状态中更多。
在冷启动开始时,系统有三个任务,分别是:
- 加载并启动应用。
- 在启动后立即显示应用的空白启动窗口。
- 创建应用进程
系统一创建应用进程,应用进程就负责后续阶段:
创建应用对象。
启动主线程。
创建主 activity。
扩充视图。
布局屏幕。
执行初始绘制。
一旦应用进程完成第一次绘制,系统进程就会换掉当前显示的后台窗口,替换为主 activity。此时,用户可以开始使用应用。
应用出现以下情况时将其启动时间视为过长:
怎么计算启动时间
1、通过日志过滤Displayed关键字,即可查看
2、使用adb命令行
adb shell am start -W 包名/第一个Acitivity路径
怎么进行启动优化:
1、分析启动耗时的地方哪里耗时,哪里优化
2、Application onCreate()方法尽量不要做耗时操作
3、Activity onCreate()也不要做耗时操作
4、耗时操作尽量放在子线程中