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

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