目录
- 1. 本地进程调用(同一进程内)
- 2. 远程进程调用(跨进程)
- 3 `oneway` 关键字用于修改远程调用的行为
Android 接口定义语言 (AIDL) 与其他 IDL 类似:
你可以利用它定义客户端与服务均认可的编程接口,以便二者使用进程间通信 (IPC) 进行相互通信。
在 Android 上,一个进程通常无法访问另一个进程的内存。
为了进行通信,它们需要将其对象分解为基元,操作系统可以为您理解并编组这些对象跨越该边界。
编写执行该编组操作的代码较为繁琐,因此 Android 会使用 AIDL 为您处理此问题。
注意:只有在需要不同应用的客户端通过 IPC 方式访问服务,并且希望在服务中进行多线程处理时,您才有必要使用 AIDL。
如果您无需跨不同应用执行并发 IPC,请通过实现 Binder 来创建接口。
如果您想执行 IPC,但不需要处理多线程处理,请使用 Messenger 实现接口。
无论如何,请务必先了解绑定服务,然后再实现 AIDL。
在开始设计 AIDL 接口之前,请注意,AIDL 接口的调用本质就是 直接函数调用。</