Binder通信——用户空间C/C++层架构与Java层对接点概述

一,Java层主要通过下述API访问Binder:
Binder——————————Java层Binder对象
BinderProxy——————Java层服务端Binder在客户端进程中的代理对象
IHelloService————— 业务接口
HelloService——————服务进程中业务接口实现类
BpHelloServiceProxy——服务进程业务实现类在客户端(远端)进程中的服务代理对象(远程代理对象)

类图关系如下(本页图片过小,看不清,请在浏览器新标签页中查看图片):

这里写图片描述

二,C/C++层访问Binder驱动API:

IInterface,BpInterface(继承INTERFACE),BnInterface(继承INTERFACE)———业务相关的公共类
BnHelloService(实现onTransaction方法),HelloService(实现业务相关的方法) —服务进程中业务实现类
BpHelloService———————————————————————————客户端进程的业务实现类

类关系图如下(本页图片过小,看不清,请在浏览器新标签页中查看图片):

这里写图片描述

三,Java与C/C++对节点:

Java层与C/C++层主要有三个地方的对节点:
这里写图片描述

具体细节如下图所示(本页图片过小,看不清,请在浏览器新标签页中查看图片):
这里写图片描述

图中分为三大块来分别描述Java层与C/C++层Binder通信框架;在蓝色方框中描述了Java层APP应用调用Java层Binder接口,通过Native层的对节点与C/C++层的Binder通信框架对接,然后调用C/C++层Binder通信框架的相关API,最终通过IPC层进入内核Binder驱动,到达目标进程实现进程间通信;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值