AMS APP进程间通信

来源:互联网 发布:系统重装的软件 编辑:程序博客网 时间:2024/05/16 04:23

1、APP进程

ActivityThread

客户端(APP进程)的比较重要的类,也就是我们常说的主线程。是一个进程中第一个线程。含有main方法,是一个APP进程的入口。

当我们调用context的startActivity()的时候,实际上调用了ContextImpl的getInstrumentation的excuteStartActivity()。

ActivityThread中含有两个比较重要的变量 mActivities和mServices,保存启动了的Activity以及Service

  final ArrayMap<IBinder,ActivityClientRecord> mActivities = new ArrayMap<IBinder,ActivityClientRecord>()


ActivityMangerProx

APP进程中的AMS的代理。


2、system_server进程

AMS(ActivityManagerService)

服务端(SystemServer进程)进程中比较重要的类。用户点击Launcher上的图标后,接收到APP进程的startActivity请求之后,调用startActivityAsUser()方法。最终调用ActivityManagerService中的startProcessLocked方法,最终让Zygote fork一个进程,并创建一个新的ActivityThread类,调用ActivityThread的main()方法,启动一个新的进程

ApplicationThreadProx

system_sever进程中的APP进程的ApplicationThread的代理


二者进程间通信方式:




原创粉丝点击