binder机制 是谷歌优化在android上更适合终端的IPC(多进程通讯方式),知足系统对通讯方式,传输性能和安全性的要求。android
特性:安全
1. 用驱动程序来推动进程间的通讯。
2. 经过共享内存来提升性能。
3. 进程间同步调用以及异步调用异步
...........................................性能
IADL是用binder机制进行IPC的典型表明优化
IADL是一个接口描述文件,规定IPC通讯的接口,通常使用于client/server模式server
c/s双方写好IADL后,系统会生成一个继承binder以及实现这个接口的类---Stub对象
XXXInterface.Stub extend binder implement XXXInterface继承
server方:接口
能够经过Stub类,实现接口功能,向client提供接口相关的服务进程
client方:
经过server提供的binder,来使用服务。
client/server是如何经过binder进行通讯的呢?
咱们能够看到Stub提供了3个重要的方法,以及远程binder Proxy类。
asInterface(Ibinder obj)
transaction(...)
ontransaction(...)
client经过asInterface(binder) 这个方法,把server提供的binder 生成 binder Proxy对象
经过 transaction()来与远程binder对象进行通讯。
到底如何实现通讯呢?
首先把数据存入Parcel中,经过binder文件驱动通知,经过Ashmen内存共享通讯
具体如何作的,之后有时间在讲。
server经过 ontransaction()方法,把处理结果返回给client。