• 什么场景有必要用AIDL来进行IPC通信?
    • 不同应用的客户端通过IPC方式访问服务,并且希望在服务中进行多线程处理时。
  • 什么情况下适合用``
  • 如果是进程内部,我们就不需要跨进程了
  • 如果iin不是代理对象我们创建一个代理对象

通过绑定服务来实现功能的步骤

  1. 客户端通过bindService方法来绑定一个服务对象,如果绑定成功,会回调 用ServiceConnection 的接口方法 onServiceConnected
  2. 通过Service组件来暴露业务接口
  3. 服务端通过创建一个*.aidl文件来定义一个可以被客户端调用的业务接口

一个AIDL文件:

  • 不能有修饰符,类似接口的写法
  • 支持类型有:8种基本数据类型:String,Char,CharSequence,List,map,自定义类型
  1. 服务端需要体统一个业务接口的实现类,通常我们会extends Stub类
  2. 通过 ServiceonBind 方法返回被绑定的业务对象
  3. 客户端如果绑定成功,就可以像调用自己的方法一样调用远程的业务对象方法