对于Android操作系统的启动过程,相对比较复杂,这里只是了解一下原理。


做过硬件开发都知道当我们设备接通电源后会有一个称作“引导加载程序”进行初始化,我们叫它bootloader,那


Android设备接通电源后,也会去加载这段程序,至于加载bootloader有用处?主要是检查硬件特性并将操作系统的


第一部分加载到设备的存储器中,当然不同设备的引导加载程序是不一样的。


在Android设备的电源接通后,引导加载程序分别做了两步,主要用到了一个主引导加载程序和一个辅引导加载程


序。对于主引导程序,大多数Android设备是无法替换的,这是因为主引导加载程序被硬编码在设备中的ASIC芯片中


了,这些硬编码指令将辅引导加载程序加载到存储器中,并告诉它存储器、CPU和操作系统的位置以及如何访问它


们。


辅引导加载程序可以进行定制,我们称之定制引导加载程序,它好处在于获得的权限比较大,定制引导加载程序可


以使用定制文件来替换原操作系统文件,这样做的好处可以更换新的用户界面或功能增强的内核。


下图是Android设备引导加载具体步骤:


一起学android之简单了解Android OS内部机制(29)_第1张图片

1、位于引导ROM(只读存储器)中的特定代码会找到第一级的引导加载程序(主引导加载程序),并将其加载到存储


器中。引导ROM是一个ASIC芯片,并载入永久性的编程代码。


2、在初始化存储器并等到硬件准备好之后,第一级引导加载程序会加载第二级引导加载程序(辅引导加载程序)


引导加载程序会检查安全标记是否开启(S-ON),如果已经开启,那么引导加载程序只会加载被标记的内核。如果安


全标记是关闭的(S-OFF),那么引导加载程序就不再检查标记。将安全标记设置为S-OFF解开其他安全锁,使得


整个文件系统处于可写状态,还可以做其它事情,比如定制Recovery程序。


3、引导加载程序将Linux内核和定制化内容加载到存储器中。这时,引导加载程序将对硬件的控制权转交给了Linux内


核。


4、初始化(INIT)进程。INIT进程是设备上运行的其他所有进程的前提。主要作用是初始化基础硬件访问以及设备功能


所需的所有进程,还会启动用来执行大多数应用程序的Dalvik虚拟机的进程。


转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/44728245情绪控_

更多相关文章

  1. 如何通过PC端连接Android设备进行adb调试
  2. Android应用程序如何避免内存泄漏以及如何检查泄漏原因
  3. Android 开发者从0到1发布一个微信小程序的采坑过程——详情页实
  4. android缩放大图片加载
  5. Android 开发者从0到1发布一个微信小程序的采坑过程——首页实现

随机推荐

  1. Android MediaPlayer Playback流程分析
  2. android textView加载html 解决a标签链接
  3. GPS开发常用方法 和用Criteria确定androi
  4. android Json解析全
  5. android中创建有自身特色的字符串
  6. ButterKnife基本使用
  7. android 调用分享
  8. ssssss
  9. Android Camera怎样打开关闭闪光灯
  10. android listview 与 一般多线程配合产生