Androd的IPC通信(二)

IPC的IBinder接口--定义与实现

    1.  Android架构的沟通依赖单一的IBinder接口,此时,IPC的Client端调用IBinder的transact()函数,透过IPC机制而调用到远程(remote)的onTransact()函数。

    2.  IBinder定义了一些函数,可以让Client跨进程地调用,最主要的是transact()函数。

    3.  IBinder接口的实现。基于这个IBinder的定义档,我们可以开发类来实现它,并在其他的APP中进行使用,实现进程间的调用。在Android框架中,也基于这个接口类实现了Binder和ProxyBinder基类来实现进程间通信。


Java层的Binder基类定义

     基类Binder的很重要的目的是支持跨进程调用Service, 既允许远程的Client跨进程调用某个Service。


Java层的BinderProxy基类的定义

    当我们看到xxxxProxy的定义时,就应该想到,它是摆在Client端进程里,作为Service端的分身。

    由于跨进程沟通是时,不是从Java层直接调用的,而是通过底层的Binder Driver驱动来沟通的,所以Client端必须通过Proxy的IBinder接口,转而调用JNI本地模块来衔接到底层BinderDriver的驱动服务,进而调用到在另一个进程中运行的Service。

    当Client透过IBinder接口而调用到BinderProxy的transact()函数时,就调用到JNI本地的transact()函数,进而衔接到底层BinderDriver驱动服务。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值