Binder机制

Binder系统的核心

  • IPC 指进程间的通信
    主要包括 源,目的,数据。
    过程:
    1.源进程向ServiceManager注册服务;
    2.目的进程向ServiceManager查询服务,得到一个Handle。
  • RPC 远程调用
    模糊的讲,当一个远程指令发出时,首先构造发送的数据,在发送给目的进程,在目的进程收到时,首先取出收到的数据,解析,并调用本地函数。

Binder系统

  • Binder系统主要涉及到4个方面:
    • Client
      1. open Binder驱动
      2. 获取服务(向ServiceManager查询服务,获取一个handle)
      3. 向这个handle发数据
    • Server
      1. open Binder驱动
      2. 注册服务(向ServiceManager发送服务名字)
      3. while(true){
        读驱动取数据
        解析数据
        调用对应的函数
        }
    • ServiceManager
      1. open Binder驱动
      2. 告诉Binder驱动,它是ServiceManager;
      3. while(true){
        读驱动取数据
        解析数据
        调用{
        a. 注册服务(在一个链表里记录服务的服务名字)
        b. 获取服务(
        b.1 在链表中查询是否存在该服务
        b.2 返回“server进程”的handle)
        }
        }
    • Binder驱动
  • binder工作机制

 

posted on 2016-07-09 18:23  xiezie  阅读(210)  评论(0编辑  收藏  举报

导航