看简介时说:进程间一般无法直接进行数据间的交换,那么是不是因为Android系统下两个进程不能共享同一个内存地址,所以两个进程的数据交换需要通过Service,利用AIDL服务作为一个‘中转’的作用达到进程间数据交换?
如果是这样那这个Service有点像服务器的角色了?既然已有本地Service的用法,为什么还要AIDL呢?onBind()返回对象的代理较onBind()直接返回对象有什么好处?

解决方案 »

  1.   

    为了跨进程通信----实现IPC机制
      

  2.   

    不大明白你的意思。不同app之间是进程独立的,aidl要实现的是进程间通信,也就是说不同app之间的数据交换。Service只是应用A(服务端)的组件,应用B(客户端)哪里来的Service?所以应用B想用A的服务就引入了AIDL进行进程间通信了啊
      

  3.   

    aidl文件只是一个规范,android会根据aidl生成一个java文件用于规范传输的次序和需要访问的接口,你也可以不用aidl工具自己手动写,aidl对于需要访问的双方都是可见的,这样就有了传输的一个协议了.