Android系统中各应用都运行在自己的进程中,进程间一般无法直接进行数据交换。为了实现跨进程通信,Android提供了AIDL Service(Android Interface Definition Language)
与绑定本地Service不同的是,远程Service的onBind()方法只是将IBinder对象的代理传给客户端的ServiceConnection的onServiceConnected方法的第二个参数
- AIDL定义接口的源代码必须以.aidl结尾
- AIDL接口中用到数据类型,除了基本类型、String、List、Map、CharSequence之外,其他类型全部都需要导包,即使它们在同一个包中
开发人员定义的AIDL接口只是定义了进程之间通信接口,Service端、客户端都需要使用Android SDK安装目录下的platform-tools子目录下的aidl.exe工具为该接口提供实现(ADT工具会自动为该AIDL接口生成实现)