明白了Android Framework的客户端服务器架构之后,
那么我们的App进程本身和AMS(SystemServer进程)还有zygote进程 这三个独立的进程,他们之间如何通信呢?
AMS:服务端对象,负责系统中所有Activity的生命周期
zygote是一个进程 liunx加载的时候 fork出的一个系统进程
1.App进程和与AMS通过Binder进行IPC通信,
2.AMS(SystemServer进程)与zygote通过Socket进行IPC通信。
AMS:ActivityManageService:如果想打开一个App,需要AMS去通知zygote进程(Socket方式),此外,其实所有Activity的开启、暂停、关闭都需要AMS来控制,所以我们说,AMS负责系统中所有Activity的生命周期。
在Android系统中,任何一个Activity的启动都是由AMS和应用程序进程(主要是ActivityThread)相互配合来完成的。AMS服务统一调度系统中所有进程的Activity启动,而每个Activity的启动过程则由其所属的进程具体来完成。
AMS与ActivityThread一起合作控制Activity的生命周期