185 字
1 分钟
四大组件底层通信机制

四大组件底层通信机制#

底层都是binder 机制的进程间通信

以AMS为例

  1. 客户端进程与ServiceManager通信获得AMS的IBinder
  2. 客户端通过AMS的IBinder与AMS通信,请求bindService。
  3. AMS会调用scheduleBindService()之后会调用handleBindService()。 首先从mService.get(data.token)中拿到service对象,这个service对象就是remouteService,这个service是通过反射创建的,将其放在Map集合中。 拿出的service调用onBind拿到IBind对象。
  4. 通过AMS将publicService将binder返回,最终调用到客户端的ServiceConnection的OnServiceConnected。这样就把IBinder对象传过来了。然后Stub.asInterface(service)拿到代理对象。然后调用代理对象的xxx()方法。

这个就是四大组件通信,其实就是用的binder

image.png

四大组件底层通信机制
作者
强人自传
发布于
2024-12-26
许可协议
CC BY-NC-SA 4.0