Android中AIDL实现进程通信.docVIP

  • 1
  • 0
  • 约2.87万字
  • 约 21页
  • 2017-06-29 发布于湖北
  • 举报
Android中AIDL实现进程通信汇编

Android中AIDL实现进程通信 之前的文章演示了如何通过Messenger实现与Service进行跨进程通信,即IPC。但用Messenger实现的IPC存在一点不足:Service内部维护着一个Messenger,Messenger内部又维护着一个Hanlder,当多个client向该Service发送Message时,这些Message需要依次进入Hanlder的消息队列中,Hanlder只能处理完一个Message之后,再从消息队列中取出下一个进行处理,这样Service相当于只能对客户端传来的Message进行串行执行,而不能并行执行。如果想让Service跨进程并发处理客户端发来的请求,那么就需要使用AIDL。 AIDL的全称是Android Interface Definition Language,直译过来就是Android接口定义语言。在Android中,正常情况下,不同进程是不能互相访问对方的内存数据的。为了实现进程间内存访问,可以将一个进程中的内存数据分解成Android认识的原子类型,然后在另一个进程中将原子类型的数据重新组合成对象。编写将原子类型的数据重新组合成对象的代码比较费时,Android通过AIDL可以实现该功能。 其实Messenger和AIDL并不是对立的,Messenger内部也是基于AIDL实现的。当使用Messenger的时候,Ser

文档评论(0)

1亿VIP精品文档

相关文档