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如何指向外层
189浏览 • 1回复 待解决
如何判断一个对象是否在对象数组
293浏览 • 1回复 待解决
鸿蒙如何获取context对象
7004浏览 • 1回复 待解决
鸿蒙如何访问华为云对象存储?
2074浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS对象
268浏览 • 1回复 待解决
如何判断JS对象是否存在某个值
249浏览 • 1回复 待解决
如何监听数组内对象属性变化
313浏览 • 1回复 待解决
如何在Native侧释放ArkTS对象
235浏览 • 1回复 待解决
PersistentStorage如何持久化一个对象?
629浏览 • 1回复 待解决
如何选择PolarDB迁移类型和迁移对象
1555浏览 • 1回复 待解决