引言
如果进程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)
- 慕课网