Android启动流程

《Android安全技术揭秘与防范》读书笔记


在讲述Android启动过程前,先简单介绍一下Android的层次结构和分区结构

Android系统的层次结构

整体架构分为如下4层

  • 应用层(Application)
  • 框架层(Framework)
  • 核心库与运行环境层(Libraries & Android Runtime)
  • Linux内核层(Linux Kernel)

Android系统的分区结构

分区是逻辑层存储单位用来区分设备内部的永久性存储结构。不同厂商和平台有不同的分区布局。然而,有几个分区最常见,即Boot、Data、Recovery和Cache分区。通常的情况下NAND闪存的设备都具备一下分区布局

  • Boot Loader分区

    中文名称“系统加载区”,它的作用相当于电脑的BIOS,在手机进入系统之前初始化软硬件环境、加载硬件设备,最终让手机成功启动。

  • Boot分区

    存储着Android的Boot镜像,其中包含着Linux kernel(zImage)与initrd等文件。

  • Splash分区

    主要是存储系统启动后第一屏显示的内容,一般都是一些公司的Logo或者动画,存储在Boot Loader中。

  • Radio分区

    这个事基带所在的分区,存储着一些与通信质量相关的Linux驱动,如电话、GPS等。常用的驱动是可以打包存在于Linux的内核Boot分区,但为了提升设备的通信质量,所以单独开辟了Radio分区。

  • Recovery分区

    存储着一个mini型的Android Boot镜像文件,主要的作用是用来做故障维修和系统恢复。

  • System分区

    存储着Android系统的镜像文件,镜像文件中包含着Android的Framework、Libraries、Binaries和一些预装应用。系统挂载后既/system目录

  • User Data分区

    也称为数据分区,它是设备的内部存储分区,如应用产生的图片、声音等数据文件。系统挂载后在/data目录下

  • Cache区

    用于存储各种使用的文件,如回复日志和OTA下载的更新包。在应用程序安装在SD卡上时,它也可能包含Dalvik缓存文件夹,其中存储了Dalvik虚拟机的缓存文件。

Android启动流程

主要分为6个阶段:BootLoader加载阶段、加载Kernel与initrd阶段、初始化设备服务阶段、加载系统服务阶段、虚拟机初始化阶段、启动完成阶段。

Android系统启动流程

-Boot Loader阶段
Boot Loader是在物理电源按下之后第一个加载的。在此阶段会运行一些制造商自定义的初始化代码。Boot Loader内部也分为多个阶段,对此不做深入讨论。

-加载Kernel与initrd阶段
Boot分区加载Linux kernel与initrd到RAM,最后跳转到Kernel继续完成启动。

-初始化设备服务阶段
Android kernel则会启动所有Android系统设备所必须的服务,如初始化Memory、初始化IO、内存保护、中断处理程序、CPU调度、设备驱动,最后还会挂载文件系统,启动第一个用户进程init。

-加载系统服务阶段
init是Linux系统中用户空间的第一个进程,其进程PID是1,父进程为Linux Kernel核的0号进程。init具有特殊的初始化使命,它会加载一个初始化脚本文件init.rc,启动Android系统的一些核心服务,如针对通话的rild、针对VPN链接的mtpd、提供adb相关功能adbd、支持存储外设的热插拨功能vold、负责进程孵化服务的Zygote、Service Manager等。

-虚拟机初始化阶段
其中启动的Zygote进程会创建Dalvik VM,会启动第一个Java组件系统服务,最后是Android Framework服务,如Activity Manager、Package Manager、Window Manager

-启动完成阶段
当系统完成启动之后,载入Home(桌面应用程序),然后做一些应用层的初始化的工作,如播放一个全局的广播ACTION_BOOT_COMPLETED.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容