4.1Android进程启动原理分析----Zygote

来源:互联网 发布:effective java下载 编辑:程序博客网 时间:2024/06/10 18:00

概述:
Android的所有进程包括系统进程都是由Zygote(受精卵)进程fork(孕育)出来的。
Zygote进程启动时,会自动fork出一个子进程SystemServer;SystemServer负责启动系统中的两个重要服务PackageManagerService和ActivityManagerService;当ActivityManagerService启动一个应用程序的时候,就会通过Socket与Zygote进程进行通信,请求它fork一个子进程出来作为这个即将要启动的应用程序的进程;


注:
Zygote是由Linux系统的init进程在系统启动时创建的(所有的进程都是直接或者间接地由init进程fork出来的)。


总结:
1. 系统启动时init进程会创建Zygote进程,Zygote进程负责后续Android应用程序框架层的其它进程的创建和启动工作。
2. Zygote进程会首先创建一个SystemServer进程,SystemServer进程负责启动系统的关键服务,如包管理服务PackageManagerService和应用程序组件管理服务ActivityManagerService。
3. 当我们需要启动一个Android应用程序时,ActivityManagerService会通过Socket进程间通信机制,通知Zygote进程为这个应用程序创建一个新的进程。

1 0
原创粉丝点击