1 Android是基于Linux内核的系统平台。启动时,首先通过bootloader(系统加载器)载linux内核在linux内核加载启动时,与普通的Linux启动过程相似,然后调用用户空间中的init进。init进程对各种设备进行初始化,运行Android Framework所需的各种Daemon、Content Manager、Media Server 、Zygote等。

2 init进程启动Linux守护进程Daemon,具体如下:

--USB Daemon(usbd):管理usb连接

-- Android Debug Bridge Daemon(adbd):管理ADB连接。

-- Debugger Daemon:管理调试进程的请求。

--Radioi Interface Layer Daemon(rild):管理无线通信

在启动Linux守护进程的同时还需要启动Zygote进程,主要包括以下工作:

--初始化一个Dalvik虚拟机实例

--装载socket请求所需的类和监听

--创建虚拟机实例来管理应用程序的进程。

接着,需要初始化runtime进程,主要包括如下工作:

--初始化服务管理器

--注册服务管理器,以它作为默认Binder服务的Context管理器。

runtime初始化之后,runtime进程将发送一个请求到zygote,开始启动系统服务,这时zygote将为系统服务进程建立一个虚拟机实例,并启动系统服务。

系统服务具体由媒体服务器(Media Server)与系统服务器(System Server)俩个系统进

程运行。

媒体服务器进程用来启动除Surface Flinger之外的Audio Flinger、Media PlayerService等本地系统服务。

系统服务器是由Zygote最初生成的基于java进程,它会启动所有Java系统服务,还包括本地系统服务Surface Flinger,如下图所示:

3 当所有Java系统服务加载完毕后,Activity Manger Service 会运行Home应用,启动过程继续进行。


更多相关文章

  1. 浅析android通过jni控制service服务程序的简易流程
  2. Android(安卓)Wifi模块分析(三)
  3. Android(安卓)Service AIDL
  4. Android(安卓)Activity的启动
  5. Android架构分析之使用自定义硬件抽象层(HAL)模块
  6. Android(安卓)任务和回退堆栈---启动任务
  7. 2011年Android(安卓)Camera学习笔记之一
  8. Android——Activity四种启动模式
  9. android 定位服务

随机推荐

  1. Android(安卓)RecyclerView 设置显示滚动
  2. 【Android】HTTP协议的经典讲解
  3. 关于android的广播机制里面的网络状态监
  4. Android重要控件概览(中)
  5. Android进程间通信--消息机制及IPC机制实
  6. 转:android在文本TextView中添加超链接
  7. android 横竖屏判断
  8. android 控件学习笔记 --------ViewPager
  9. Android编译过程详解(一)
  10. android监听来电去电广播