ohos标准型的IPC/RPC组件中Proxy对象发送的请求是如何走到Stub对象的

openharmony的IPC/RPC组件的仓库地址:​​https://gitee.com/openharmony/communication_ipc​


拿这里面的示例来说,TestAbilityProxy的业务函数会通过Remote()->SendRequest()向Stub端发送请求

,TestServiceStub对象会在OnRemoteRequest()解析请求码并执行对应的能力即业务函数。


仓库里面IPC的底层实现是基于binder驱动的,这部分的源码有点难以理解,请问有人知道

Proxy对象发送的请求是如何走到Stub对象的吗?


OpenHarmony
IPC/RPC组件
分布式软总线
binder
dbinder
2022-09-25 16:34:10
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
liangkz_梁开祝
4

​#打卡不停更#OHOS标准系统的IPC和RPC代码解读--2--IPC全景图-开源基础软件社区-51CTO.COM​

请参考上文的大图理解一下:

Proxy调用Invoker的SendRequest(),最终通过ioctl()陷入内核的Binder驱动,Binder将消息“转发”到Stub的OnRemoteRequest()进行处理。

这里的“转发”严格来说并不正确,要正确理解底层的运作机制,最好深入理解一下Binder驱动的实现原理。

分享
微博
QQ
微信
回复1
2022-09-28 07:33:41
张三疯_
2

看看

分享
微博
QQ
微信
回复
2022-09-27 16:22:05
相关问题
对象函数this如何指向外层
937浏览 • 1回复 待解决
ArkTs如何获取对象类名
1072浏览 • 1回复 待解决
ArkTS对象绑定C++对象如何回收?
429浏览 • 1回复 待解决
如何判断一个对象是否在对象数组
1001浏览 • 1回复 待解决
如何在ArkTS合并对象
513浏览 • 1回复 待解决
如何在ArkTS合并对象
315浏览 • 1回复 待解决
鸿蒙如何获取context对象
7813浏览 • 1回复 待解决
如何判断对象是某个interface实现
455浏览 • 1回复 待解决
鸿蒙如何访问华为云对象存储?
2768浏览 • 1回复 待解决
new 出来对象如何获取所属类
770浏览 • 1回复 待解决
如何定义一个未知类型对象
313浏览 • 2回复 待解决
求大佬告知如何获取对象类名
306浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS对象
977浏览 • 1回复 待解决
如何获取对象唯一标识(Hash值)
29浏览 • 1回复 待解决
如何判断JS对象是否存在某个值
900浏览 • 1回复 待解决
基于@ohos/axios网络请求能力
18浏览 • 1回复 待解决