android系统启动流程

     编译源码烧写到nexus后,在开机后有时会出现各种各样的问题,本篇就来介绍下android系统的启动流程。引用网上的图片来展开分析:

                                      

  

第一阶段:Android设备上电后,首先会从处理器片上ROM的启动引导代码开始执行,片上ROM会寻找Bootloader代码,并加载到内存。(这一步由“芯片厂商”负责设计和实现)

第二阶段:Bootloader开始执行,首先负责完成硬件的初始化,然后找到Linux内核代码,并加载到内存。(这一步由“设备厂商”负责设计和实现)

第三阶段:Linux内核开始启动,初始化各种软硬件环境,加载驱动程序,挂载根文件系统,并执行init程序,由此开启Android的世界。(这一步则是Android内核开发过程中需要涉及的地方)

  从上面可以很容易看出来android系统启动的流程:bootloader、linux kernel、init(此处启动Zygote进入java世界)。这是从android设计者的角度出发,接下来我们从用户角度看看android启动流程(即开机流程)。android启动后会呈现三个不同的图片和动画,我们可以从这里深入。

Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。第一个开机画面是在内核启动的过程中出现的,它是一个静态的画面。第二个开机画面是在init进程启动的过程中出现的,它也是一个静态的画面。第三个开机画面是在系统服务启动的过程中出现的,它是一个动态的画面。——by 老罗

  既然理性和感性认识都有了,接下来就结合android4.4源码来详细分析启动过程吧:

 卧槽 bootloader没找到,稍等啊

参考资料:

1、Android内核开发:图解Android系统的启动过程

2、Android系统的开机画面显示过程分析

3、Android系统启动流程 -- bootloader

 

原文地址:https://www.cnblogs.com/vendanner/p/5163424.html