Android启动时,
首先通过Bootloader加载Linux内核,
然后调用init进程对各种设备进行初始化,
运行FrameWork所需的各种Deamon,Context Manager,Media Server,Zygote等。
1、Context Manager
管理系统服务,
在系统启动时,Android所有系统服务都要把各自的handle信息注册到ContextManager中,
应用程序或FrameWork内部模块在调用系统服务时,需要先向服务管理器申请,而后通过Binder IPC调用系统服务。
2、Media Server
运行基于C/C++的本地系统服务,如 Audio Flinger,Camera等。
3、Zygote
Zygote进程用于缩短Android应用程序加载的时间。会派生一个用来执行Java应用程序的虚拟机子线程。
4、System Server
是Android系统的一个核心进程,由Zygote进程创建。
在System Server中可以看到它建立的Android中的绝大部分服务,如Activity Manager Service,Location Manager Service.
通过Binder IPC将System Server中的Java系统服务注册到基于C的Context Manager中,需要用到JNI(JNI 负责java与C/C++之间的交互)。
5、当System Server中所有Java系统服务加载完毕后,Activity Manager Service会运行HOME应用。
贴几张图瞧瞧:
<p>版权声明:本文为博主原创文章,未经博主允许不得转载。</p>