Messenger和AIDL

Messenger和AIDL都是IPC通信方案,且Messenger的底层实现是AIDL,故messenger和aidl都是基于Binder的。

Messenger在不同进程中传递Message对象,服务端一次只能处理一个请求,此时不存在并发执行的情况,不用考虑线程同步问题。所以,Messenger支持低并发的一对多串行的通信,支持实时通信。

但Messenger不支持远程过程调用(RPC),数据通过Message传输,只能传输Bundle支持的数据类型。
Messenger以串行的方式处理客户端发来的消息,若大量的消息同时发到服务端,要选择AIDL。
Messenger只能传递消息对象,客户端跨进程调用服务端的方法时,Messenger就无法满足需求了,也要选择AIDL。

使用场景:只是在进程间进行数据传递,不用同时处理大量的消息时,且客户端不用调用服务端的方法时,适合使用Messenger。一对多并发通信且有RPC需求时要用AIDL。

--整理自《Android开发艺术探索》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值