Android AIDL进程通讯

AIDL


AIDL是一种android接口定义语言,主要是为了完成进程间通讯,尤其实在涉及多进程并发情况下的进程间通讯。

AIDL可以实现进程间的通讯,比如B进程有一个加法运算的功能,A进程需要这个功能,A进程产生两个数字,把数字传给B进程,B进程计算后把结果返回给A。

AIDL支持Java的基本8数据类型。list和map。其他AIDL生成的接口。实现Parcelable的实体。

AIDL实现进程通讯的步骤:

服务端:

1.创建一个实体类,实现Parcelable接口并序列化。

2.创建aidl文件和 创建一个aidl文件,在此文件中写入需要通讯的方法,创建实体类的映射aidl文件,在此文件中声明Parcelable的数据类型。通过make project 生成onBind文件

3.创建一个服务,服务中生成onBind文件的实例,并实现我们创建的aidl接口文件中的方法,在方法中写入我们的功能。在onBind方法中返回我们刚生成的onBind文件

客户端

4.把服务端的aidl文件和实体类copy到客户端,用bindservice绑定服务,实现serviceconnection接口,在serviceconnection中创建onbind文件的实例,通过该实例就可以调用aidl类中定义好的接口请求。

进程通讯方式除了AIDL,还有BroadcastReceiver:广播接受者,它占用的系统资源比较多,所以不适合频繁的跨进程通讯,Messager跨进程通讯是同步进行的,无法并发执行,所以在要求多进程的情况下不实用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值