冉冉说
通过4大组件启动进程时,首先会完成app进程的创建,app进程创建完毕后会完成app进程与system_server中的ActivityManagerService的相互绑定(AMP.attachApplication、ATP.bindApplication)。这两个方法是通过Binder完成跨进程通讯。因为ActivityMangerService管理所有app的生命周期,所以使用了代理模式,每个app绑定AMS时都是用的是AMS对应的代理类AMP,而AMP中的mRemote对应的都是AMS。相同的道理在AMS管理app时使用的是ATP,而ATP中的mRemote则是ATP对应的AT。ATP与AMP是Binder的client端,AMS与AT是对应的Sever。