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的代理
二者进程间通信方式:
本文探讨了Android中APP进程与system_server进程间的通信,重点介绍了ActivityThread在APP进程中的角色,以及AMS(ActivityManagerService)如何在system_server进程中响应startActivity请求,通过fork新进程并启动ActivityThread来创建新应用实例。
3800

被折叠的 条评论
为什么被折叠?



