0-Binder

作者: Galileo_404 | 来源:发表于2017-03-30 23:51 被阅读12次

目的

解决进程间相互调用

常见IPC

  • Signals 信号量
  • Pipes 管道
  • Socket 套接字(设置中底层会用到)
  • Message Queue 消息队列
  • Shared Memory 共享内存

使用Binder原因

  • 内存限制
  • Android 不支持System V IPC ??
  • 安全问题
  • 需要Death Notification,线程终止通知

模型

Binder通信模型 Client-Server

调用

调用图调用图
  • Client 客户端,自己实现,简单是AIDL自动生成的接口类
  • Binder Driver 内核实现驱动
  • Server Service中onBind返回的IBinder对象

Client可以手动调用Binder Driver的transact接口,也可以通过AIDL生成的Proxy调用,Binder Driver会调用Server(service的代理,service中onBind返回的Binder对象);Server启动一个线程池来处理Client调用请求,处理完成后将结果返回给Binder Driver,Binder Driver再返回给Client。

参考

相关文章

  • 0-Binder

    目的 解决进程间相互调用 常见IPC Signals 信号量 Pipes 管道 Socket 套接字(设置中底层会...

网友评论

      本文标题:0-Binder

      本文链接:https://www.haomeiwen.com/subject/zmopottx.html