Android开发--Binder
Binder
作用:进程间通信。
组成:可以简单地理解为四个部分
1.BinderServer 可理解为服务端,与BinderClient为相对概念,可相互替换。
2.BinderClient 可理解为客户端。
3.Binder驱动(暂未详细了解)
4.ServerManager 可理解为所有Binder地址的容器,所有Binder都需要在该容器中进行注册
通信原理:
图片为网上找到的大致流程图:
场景:BinderClient 想调用 BinderServer中的方法
1.Binder在ServerManager中进行注册
2.BinderClient 去ServerManager中去查找该Server的地址,若存在地址则请求Server的Object实例。
3.ServerManager不会返回真正的实例给Client,而是返回一个proxy(代理对象)给Client,Server此时通过该
proxy调用Server中的方法,而ServerManager会帮助Client调用Server中真正的方法,并将处理结果返回给
Client端
至此,整个通讯过程完成,这个过程中Binder驱动会做很多事情,暂未进行深入理解。