Android的开机速度,基本上没人说快的,通常移植完系统后,马上要看的事情就是优化开机时间,以下是简单回忆以下以前做优化的那些事。
开机时间都花在哪?
优化开机时间,通常做的首先是那有有没有BUG,明显不合理的先解决,由于开发阶段稳定性问题,一些地方可能延时加的大,或者频率设的低,先记下来,后面定期还会再看。这些先不看的话,一般拿到机器,我们统计开机时间,主要看如下几个时间段分布:
- 开机按键时间、亮屏时间(基本固定,除非弄错了,基本检查一遍确定)
- uboot启动时间
- 内核启动后到bootanim退出时间
这里我们主要关注的是第三个,也是优化的重点。这部分时间,具体都在干啥,瓶颈是哪,可以通过bootchart很清楚的看到。以下结合以前抓的图,简要说一下(图是很久之前抓的,比较懒,没有再跑一遍过程)
上图中bootanim的退出时间没有截出来,实际图是有的,大约是33s的时候结束。
这里分析时,我们是分了几个时间段:
- 内核开始启动,到init进程开始执行。这个可以通过log看到。