详解Android是如何启动的.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
详解Android是如何启动的

详解 Android 是如何启动的摘要本文是 Android 系统学习系列文章中的第一章节,从大体上说明 Android 系统是如何启动的?从开机到程序启动,发生了那些步骤,这些步骤意味着什么?欢迎进入今天的「走进科学」,逃 :)。对此系列感兴趣的同学,可以收藏这个链接?Android 系统学习,也可以点击?http://www.woaitqs.cc/feed.xmlRSS订阅?进行订阅。?系统分区划分Android 达人都经历过刷机的体验,如果通过 fastboot 来进行刷机的话,会在刷机界面看到如下的几个步骤。这些步骤是做什么用的?就是通过 fastboot 协议更新和烧录到 Android 手机对应的分区上。对 fastboot 感兴趣的同学,可以点击这个?/platform/system/core/+/master/fastboot/fastboot_protocol.txt链接?进行查看。Java123456fastboot flash boot boot.imgfastboot flash system system.imgfastboot flash userdata userdata.imgfastboot flash cache cache.imgfastboot flash recovery recovery.imgfastboot reboot从 fastboot 的烧录过程中可以看出 Android 系统的大致分区,这里我也通过 adb shell 中的 df 命令查看了小米手机中的系统分区,如下图所示。一般而言,虽然各个手机厂商在在系统上的实现不一致,Android 系统分为下面表格中的几个部分。分区功能boot系统引导分区,包含着android 内核,系统没有这个无法启动。这一部分的镜像在 boot unlocked 时,也能够被擦除,但在这个过程中,不能被打断,关机等等,否者会导致系统无法启动。systemAndroid 整个系统所在地,也包含预装的应用(这是预装的APP,手机厂商盈利的一种渠道),recovery备份分区,启动时可进入 recovery ,然后在这个模式下进行相应的 recovery 操作。data应用程序相关的数据,例如你安装的豌豆荚,数据就放在?/data/data/com.wandoujia.phoenix2?下面,当进行恢复出厂设置时,这部分数据会被擦除掉。cache用于存放缓存相关的数据。misc存放一些硬件配置、USB 配置等等信息,如果被擦除可能会导致某些系统设备无法正常工作。Android 系统启动如我们所知,Android 系统是基于 Linux 系统开发而成,在其中针对移动设备的特性进行了相应的调整,所以 Android 系统大体上可以分为 Linux 内核部分和 应用系统部分。在 Android 系统启动的时候,也会先启动 Linux 内核,然后再启动应用系统。整个启动步骤分为 6 个部分,在下面进行详细的描述。启动电源以及系统启动当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行。Boot LoaderAndroid系统是基于Linux操作系统的,所以它最初的启动过程跟Linux一样。当设备通电时,首先执行BootLoader引导装载器,BootLoader是在操作系统内核运行之前运行的一小段程序。BootLoader 的概念在各个操作系统 windows, mac, Android 中都存在。通过这段小程序初始化硬件设置,建立内存空间映射图,从而将系统的软硬件环境导入到合适的状态,以使为最终调用操作系统内核准备好正确的运行环境。BootLoader 在任何软件之前执行,因而也没有类似于虚拟机那样的概率来屏蔽不同运行环境的差异,因而某个主板都有特定的BootLoader。另一方面,iOS 系统由于其各个版本间的稳定性,因而不同版本件的 BootLoader 差异不大。另一方面,Android OS 是开源系统,其可以运行在不同的硬件上,这些硬件千差万别,因而在 Android 上的 BootLoader 也各有不同。一般而言 BootLoader 出于锁闭状态,毕竟厂商开发出系统后,还是希望在 ROM 上的 Android 系统保持不变。因而刷机的第一步,往往是解锁 BootLoader.总结起来,BootLoader 完成的工作是: 1. 初始化 RAM 2. 初始化基础硬件,例如 WIFI 3. 加载内核和内存空间映射图 4. 跳转到内核中内核模块内核模块,负责了大部分的硬件、驱动和文件系统的初始化,这部分都在内核空间完成,不涉及用户空间的内容。内核模块的初始化是非常硬件相关的,目的就是使得 CPU 能

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档