您的位置:首页 > 移动开发 > Android开发

AIDL 使用详解 (一) Android跨进程调用

2017-01-18 22:50 381 查看

引言



如果进程1需要使用进程2的数据,或者进程2需要和进程1共享数据,它们之间如何进行通信呢?如果你说直接进行通信不就行了吗,但是不行,官方不允许这么做。进程之间不能直接进行通信。



每个应用程序都是一个虚拟机,一般来说,每个应用程序也是一个进程。进程之间无法直接通信,有安全方面的考虑,这样保证了进程之内数据的安全性,保证每个进程的数据不受其它进程的影响。

进程之间要进行通信,必须通过Android底层进行间接通信。

AIDL入门介绍

AIDL(Android 接口定义语言),既然是接口定义语言,那么AIDL就可以定义接口,通过该接口进行客户端与服务端的进程间通信 (IPC)。

你真的需要用AIDL吗?

Note: Using AIDL is necessary only if you allow clients from different applications to access your service for IPC and want to handle multithreading in your service. If you do not need to perform concurrent IPC across different applications, you should create your interface by implementing a Binder or, if you want to perform IPC, but do not need to handle multithreading, implement your interface using a Messenger. Regardless, be sure that you understand Bound Services before implementing an AIDL.


AIDL : IPC 多个应用程序 多线程

Binder : IPC 单个应用程序 多线程

Messenger: IPC 单线程

Android Studio 使用 AIDL

请看我另一篇文章

AIDL使用详解 AndroidStudio中 创建 AIDL service

参考资料

AIDL最权威的资料,官方文档Android 接口定义语言 (AIDL)

慕课网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息