- 跨进程调用service,
- AIDL定义进程之间的通信接口,AIDL文件语法和定义几个java接口语法类似,只不过扩展名是.aidl
- IDE会自动为接口提供实现,在接口中会定义一个名为Stub的内部static类,实现定义的接口,继承Binder类,Binder实现了IBinder接口
- AIDL service返回给client端的是IBinder对象的代理,在client端也要引用AIDL接口文件,也会生成接口的响应实现
- aidl.exe工具为AIDL文件生成的代码主要完成下面的功能:
- 定义一个Java interface,内部包含aidl文件所声明的服务函数,并已提供一个asBinder()函数
- 定义一个proxy类,该类作为客户端程序访问服务端的代理,代理主要是为了解决数据序列化到Parcel对象的顺序问题
- 定义一个继承自Binder类的Stub类,主要由服务端来使用