别人问你AIDL,我来给你回答

来源:互联网 发布:美国 贫富差距 知乎 编辑:程序博客网 时间:2024/05/15 20:33

什么是AIDL以及如何使用?

aidl是Android interface definition Language 的英文缩写,意思Android 接口定义语言

作用
使用aidl可以帮助我们发布以及调用远程服务,实现跨进程通信。
使用
将服务的aidl放到对应的src目录,工程的gen目录会生成相应的接口类

我们通过 bindService(Intent,ServiceConnect,int)方法绑定远程服务,在 bindService 中有一个ServiceConnec 接口,我们需要覆写类的onServiceConnected(ComponentName,IBinder)方法,这个方法的第二个参数*IBinde**r对象其实就是已经在aidl中定义的接口,因此我们可以将Binder对象强制转换为aidl中的接口类
我们通过IBinder获取到的对象(也就是aidl文件生成的接口)其实是系统产生的代理对象,该代理对象既可以跟我们的进程通信,又可以跟远程进程通信,作为一个中间的角色实现了进程间通信。

这个就是我的理解是不是比较清晰呢?

1 0
原创粉丝点击