没有合适的资源?快使用搜索试试~ 我知道了~
首页详解Android跨进程IPC通信AIDL机制原理
资源详情
资源评论
资源推荐

详解详解Android跨进程跨进程IPC通信通信AIDL机制原理机制原理
本篇文章主要介绍了详解Android跨进程IPC通信AIDL机制原理,详细的介绍了AIDL的概念和使用,具有一定的
参考价值,有兴趣的可以了解一下
简介简介
AIDL:Android Interface Definition Language,即Android接口定义语言,用于生成Android不同进程间进行进程通信(IPC)的代
码,一般情况下一个进程是无法访问另一个进程的内存的。如果某些情况下仍然需要跨进程访问内存数据,这时候Android系
统就要将其对象分解成能够识别的原数据,编写这一组操作的代码是一项繁琐的工作,但是AIDL对底层进行了抽象的封装,
简化了跨进程操作。
AIDL IPC机制是面向接口的,像COM或Corba一样,但是更加轻量级。它是使用代理类在客户端和实现端传递数据。
在Android中跨进程操作的方式不止一种,四大组件中ContentProvider天生就是为跨进程操作而存在的,但是ContentProvider
所谓的跨进程操作数据,这些数据不一定是存放在内存中的,如通讯录数据时存放在Sqlite数据库中的。AIDL支持的跨进程操
作的数据是要存放在内存中的,AIDL底层实际上也是使用的Binder进行的跨进程操作,后续另起一篇博文继续介绍Binder的跨
进程机制。
使用场景使用场景
只有不同应用之间需要进行IPC,并且想要在Service中处理多线程时,这种场景才有必要使用AIDL。如果仅仅需要跨进程但
是不是跨应用,这时候应该通过Binder进行数据交互;另外如果仅仅是需要跨进程IPC,但是不需要处理多线程,这时候应该
通过Messenger类进行数据交互。
定义定义AIDL接口接口
在Android Studio中使用AIDL的项目的目录结构跟eclipse中有很大差异,下图是使用AIDL的项目的目录结构。
在Android Studio中只需要在某个Module中使用右键菜单中new就会显示创建AIDL文件的菜单,当新建成功后AIDL文件位于
工程的同java同一级的aidl目录文件夹下面。在 .aidl 文件中存放的就是AIDL接口。
定义定义.aidl文件文件
.aidl文件名称必须同接口名称保持一致,必须使用Java语言的语法定义AIDL文件。AIDL使用简单语法,通过可带参数和返回

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0