zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    C++primer习题3.13
    Indesign技巧
    《转载》虚函数在对象中的内存布局
    C++new失败后如何处理
    sizeof的用法
    转载 C++中虚继承防止二义性
    字符串反转
    回文写法
    C++术语
    QT+VS2008
  • 原文地址:https://www.cnblogs.com/vendanner/p/5163424.html
Copyright © 2011-2022 走看看