zoukankan      html  css  js  c++  java
  • Bn和Bp

    BnXXX:指binder native,给server用,通过AIDL在C++测实现。
    BpXXX:binder proxy,给client用

    IBinder:binder接口的基类,接口定义了进程间交互的协议,通过transact方法向远端的IBinder对象发出调用,远端对象通过Binder.OnTransact()方法响应接收到的调用
    IBinder、BBinder、BpBinder:
    IBinder是对binder的抽象,即binder接口,它有BBinder、BpBinder两个子类,
    BBinder是服务器中的binder实体,负责接收远程函数的调用和数据,并在Binder 驱动内部生成binder节点,即内核中的binder实体。
    BpBinder是客户端中的binder引用,保存着目标服务的handle信息,即服务端的binder实体的引用信息,用于查询内核中的binder节点,并同binder实体通信。


    IInterface、BnInterface、BpInterface:
    IInterface提供asBinder()方法,返回一个IBinder引用,提供类型转换功能,将服务或服务代理类转换为IBinder类型。实际的类型转换有BnInterface、BpInterface完成
    BnInterface用在服务端,将服务类转换为IBinder
    BpInterface用在客户端,将服务代理类转换为IBinder。
    Parcel:在服务与服务代理间进行binder IPC通信时,Parcel类负责保存binder IPC通信数据,包括:C语言基本数据类型和binder对象。

  • 相关阅读:
    Linux命令
    Linux目录说明
    python推导式
    python公共方法
    python集合
    python字典
    python元组
    python列表
    python字符串常用操作方法
    C语言编译过程
  • 原文地址:https://www.cnblogs.com/SaraMoring/p/14348093.html
Copyright © 2011-2022 走看看