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

 

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

 

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

 

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

 

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

 

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

 

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

 

们。

 

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

 

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

 

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

 

                                                             

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. android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切
  2. 如何检索Android设备的唯一ID
  3. 快速的APK厂商快速和免费的Android应用软件,而无需编码技巧
  4. Android加载Gif图片的一般方法:Movie实现
  5. PC通过WIFI连接Android设备,使用ADB
  6. 获取Android设备硬件信息
  7. Android(安卓)1.6 支持更多的屏幕大小和分辨率
  8. 用于 Android(安卓)智能手机的 Android(安卓)Network Toolkit 应
  9. 《Android深度探索(卷1):HAL与驱动开发》新书发布

随机推荐

  1. Android仿微信QQ群头像生成
  2. Android如何接收locale改变的消息 || loc
  3. Android(安卓)AsyncTask 完美解析 看不懂
  4. ubuntu 14.04 adb 配置及使用
  5. android 混淆后的代码还原
  6. Android自动读取短信验证码
  7. Android 编译 product 分区
  8. Android修行之路——Android程序设计基础
  9. Android多媒体--利用Service实现背景音乐
  10. 极光推送3分集成干货--Android