Android这位小萝莉基于Linux御姐而生,对其工作过程我一直抱以崇高的敬意,是以对其启动机理进行整理……

首先,BootLoader大叔引导linux kerne加载,linux kerne开始启动init 进程,我们可以在init.rc 中看到如下过程:

其次,init进程启动后台守护进程,包括:
USB Daemon、Android Debug Bridge、Debugger Daemon、Radio Interface Layer Daemon
Android之系统启动机理_第1张图片

同时,不安分的init进程还会启动zygote进程,
zygote是android的第一个进程,所有的android的应用以及大部分系统服务都是通过zygote fork出来的子进程。
Android之系统启动机理_第2张图片

当然,init进程还需初始化runtime(运行时进程)与Service Manager(服务管理器),
用于注册服务管理为默认的绑定服务上下文管理。
Android之系统启动机理_第3张图片

接着,runtime(运行时进程)发送请求给Zygote 启动系统服务,
继而启动一个Dalvik VM 实例,用于提供Service Server系统服务。

然后,系统服务启动两个本地Surface Flinger Audio Flinger
Android之系统启动机理_第4张图片

于是,两个本地系统服务向Service Manager(服务管理器)注册成为IPC 服务对象:

紧跟着,系统服务启动Android 管理服务注册
Android之系统启动机理_第5张图片

Android之系统启动机理_第6张图片

OK,完成系统启动,进入system ready状态

最终,启动home 界面,启动联系人界面:

更多相关文章

  1. Android的进程与线程模型
  2. android 图片透明
  3. Android实现图片轮播
  4. android 杀死进程的三种方法
  5. Android图片左右切换和拖动大小
  6. Android支持的图片格式
  7. Android——插入图片【ImageView】属性详解
  8. android 进程

随机推荐

  1. Android(安卓)Studio——ListView的高级
  2. 自制android1.5的源码包
  3. Android(安卓)内存以及相应的泄漏问题收
  4. android对json数据的解析
  5. Unity整合Android(安卓), 错误Fatal sign
  6. Android(安卓)制作签名
  7. Android(安卓)仿微信Activity左右切换 【
  8. Android色彩空间像素格式定义及设定
  9. android textview 竖排显示
  10. Android(安卓)NDK纯C++开发