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的代理


二者进程间通信方式:

AMS APP进程间通信



相关文章:

猜你喜欢
  • 2021-09-21
  • 2021-07-08
  • 2021-10-06
  • 2021-06-21
  • 2021-05-15
相关资源
相似解决方案