点击领取优惠~
185 字
1 分钟
四大组件底层通信机制
四大组件底层通信机制
底层都是binder 机制的进程间通信
以AMS为例
- 客户端进程与ServiceManager通信获得AMS的IBinder
- 客户端通过AMS的IBinder与AMS通信,请求bindService。
- AMS会调用scheduleBindService()之后会调用handleBindService()。 首先从mService.get(data.token)中拿到service对象,这个service对象就是remouteService,这个service是通过反射创建的,将其放在Map集合中。 拿出的service调用onBind拿到IBind对象。
- 通过AMS将publicService将binder返回,最终调用到客户端的ServiceConnection的OnServiceConnected。这样就把IBinder对象传过来了。然后Stub.asInterface(service)拿到代理对象。然后调用代理对象的xxx()方法。
这个就是四大组件通信,其实就是用的binder
四大组件底层通信机制