前言
同一个程序中,有两个函数A和B。A能直接调用B,B能直接调用A,根本原因是他们处于相同的内存空间中时,虚拟地址的映射规则完全一致。
如果是两个进程,他们是没办法通过内存地址来访问对方内部的函数和变量的。
因此,Android提供了Binder来处理进程间通信,他是Android中使用最广泛的IPC机制。
Binder的关联元素
Binder通信的过程类似于TCPIP协议,下面我们类比一下
Binder驱动(路由器)
Service Manager(DNS)
Binder Client(客户端)
Binder Server(服务器)
客户端根据域名通过路由器向DNS请求IP,再根据IP通过路由器访问Server
Client通过驱动向Service Manager根据公共ID请求本机临时ID,再根据临时ID通过驱动访问Server