Android的启动过程包含从Linux加载到home程序运行的过程,如下图所示:

1.linux内核:

Android是基于Linux内核的系统平台。启动时,首先通过bootloader加载LInux内核。与普通的linux加载相同,先初始化内核,然后再调用init进程。

2.init

Android init进程是对各种设备进行初始化,运行Android Framework所需要的各种deamon,Context Manager,Media Server ,Zygote等

init进程执行的deamon进程如下图:

3.Context Manager

Context Manager 是一个管理Andriod系统服务的重要进程。系统服务是组成Android Framework的重要组件,提供从相机,音频,视频处理到应用程序制作所有重要的API。

Context Manager 提供运行于Android的各种系统服务的查询信息。应用程序或者Framework 模块调用系统服务时,都要通过Binder IPC向Context Manager进行查询申请,获得相应的系统服务的信息。

同样,Android的系统服务也要通过Binder ipc(进程间通信)把自己的Handle信息注册到Context Manager,以供查询。

4.Media Server

Media Server 运行基于C/C++的本地系统服务,如Audio Flinfger(负责音频输出),camera,media player service等

5.Zygote

Zygote用于缩短Android应用程序的加载时间,每当执行java应用程序时候,Zygote就会派生一个子进程,这个子进程就是用来执行java程序的虚拟机。

6.System Server

System Server 是Android的一个系统进程,它是由Zygote创建的,在Android的启动过程中,位于Zygote之后。在System Server中可以看到它建立了Android中的大部分服务(所有的java层系统服务以及Surface Flinger这个本地系统服务),包括Activity Manager Service以及Location Manager Service等

java层的系统服务需要通过JNI注册到Context Manager中。

关于系统的详细介绍,在我其他的几篇文章,链接在下面:

Android的Context Manager(服务管理器)源码剖析

Android系统服务详解

Android Binder IPC详解

所有的系统服务启动完了之后,Activity Manager Service会启动home程序,出现开机桌面。

最新文章

  1. 彻底搞懂编码 GBK 和 UTF8
  2. windows下装多个node版本的方法(gnvm)
  3. input range样式更改,模拟滑块
  4. FizzlerEx —— 另一个HtmlAgilityPack的CSS选择器扩展,
  5. javascript 创建对象及对象原型链属性介绍
  6. BestCoder Round #73 (div.2)(hdu 5630)
  7. (转)设置Win7防火墙规则 顺畅访问局域网
  8. 设置Windows的TCP/IP属性和内部网络号码
  9. C语言中调用Lua
  10. gunicorn启动报错gunicorn.errors.HaltServer
  11. Android外部存储 - 官方文档解读
  12. Winfrom 文本框回车进入下一个个单元格(TextBox)
  13. HDU 2841 Visible Trees(数论)
  14. 3.2.2 break 与 continue 语句
  15. Python之socketserver模块和验证客户端链接的合法性
  16. C#当中的扩展方法
  17. 豆瓣源安装python包
  18. Siki_Unity_3-7_AssetBundle从入门到掌握
  19. 如何查看域名解析是否生效--windows命令
  20. Pi 在Windows下面使用远程桌面登录

热门文章

  1. Erlang简单并行服务器
  2. Java学习之二维数组定义与内存分配详解
  3. cenos安装jdk
  4. 在非ViewController中显示AlertController的方法
  5. 插件占坑,四大组件动态注册前奏(二) 系统Service的启动流程
  6. Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值
  7. HashMap方法介绍
  8. Hessian探究(一)Hessian与springMVC结合
  9. 深入浅出Java Dom4j读取XML
  10. 在maven中开发Spring需要的jar依赖