Binder通信之应用层AIDL实现示例
一、什么是AIDL
AIDL:Android Interface Definition Language,即Android接口定义语言
Android系统中,每个进程都运行在一块独立的内存中,在其中完成自己的各项活动,与其他进程都分 隔开来。可是有时候我们又有应用间进行互动的需求,比较传递数据或者任务委托等, AIDL就是为了满 足这种需求而诞生的。通过AIDL,可以在一个进程中获取另一个进程的数据和调用其暴露出来的方法, 从而满足进程间通信的需求。
AIDL是用于定义服务端和客户端通信接口的一种描述语言,可以拿来生产IPC代码,从某种意义上说AIDL其实就是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而是据此生产的一个Interface的实例代码, AIDL其实是为了避免我们重复写代码而出现的一个模板。
二、Android应用使用AIDL示例
对于AIDL是怎么binder service的,可以在编译的build/generated/aidl_source_output_dir/debug/out下生成一个IMyAidlService.java,通过这个文件可以进一步了解AIDL的原理,详见下一篇 Binder通信之AIDL的原理