之前看的binder的那么多类和接口感觉蛮迷糊的,以ActivityManager为例理了一下。
IBinder:远程对象,关键接口就一个transact,发送数据到远程对象上。
Binder 实现IBinder接口 onTransact 具体发送的类型数据。
ActivityManagerNative 实现了onTransact ,用于解析数据传输,提供方法getDefault获取ActivityManagerProxy
ActivityManagerProxy:远程对象代理,实现往远程对象发送数据
IInterface 业务接口,asBinder接口用于和传输对象转换.IActivityManager接口继承了该接口,说明要实现的业务方法
ActivityManagerService 实现了ActivityManagerNative,具体进行服务端的实现,不再关心数据的传输
总结:binder的都是和传输相关的,没有业务方法,IInterface是业务接口,需要用到binder进行传输。