AIDL 进程间通信

AIDL

AIDL是一种接口语言。目的是为了进程间通信。server端和client端都需要统一的接口,client端才能通过这些接口访问server端,已达到进程间通信的目的。

实现主要步骤为:

1 在server端编写.aidl文件。aidl文件中定义一个接口,和接口下要实现的方法。

方法的参数和返回值可以是任意类型。只要这些类型要实现Parcelable。 

2 在eclipse中保存后会自动生成同名的java接口。此java类下面有个静态内部类Stub。

抽象类Stub继承了BInder,且要实现aidl定义的接口。

3 在server端编写一个Service。这个是server端真正工作的部分。

编写一个内部类继承Stub,也就是说这个内部类也要实现aidl的接口。是aidl接口的具体。

onBind接口需要返回这个内部类的对象。

4 在client端,拷贝.aidl文件和其路径。同样会自动生成同名的java类。

5 在client端,编写一个Activity调用接口。 

bindService绑定服务器端的Service。并传递一个ServiceConnection对象。

ServiceConnection的匿名内部类下的onServiceConnected接口可以将IBinder的对象转换成aidl同名java接口的对象。

aidl同名类的对象,就可以调用里面的接口。实现进程间通信。

 

总结:

1 aidl只是一个接口文件,ADT会自动生成同名的java接口。server端需要实现这个接口,client端需要调用这个接口。

2 Binder是实现server端和client端通信的关键。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值