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
相关问题
HarmonyOS IPC/RPC问题
362浏览 • 1回复 待解决
ArkTS如何实现对象深拷贝?
163浏览 • 1回复 待解决
ArkTs如何获取对象类名
2413浏览 • 1回复 待解决
ArkTS对象绑定C++对象如何回收?
795浏览 • 1回复 待解决
对象函数this如何指向外层
1968浏览 • 1回复 待解决
IPCRPC通信有什么约束限制?
248浏览 • 1回复 待解决
如何获取对象真实类型
354浏览 • 1回复 待解决
鸿蒙如何获取context对象
9181浏览 • 1回复 待解决
如何在ArkTS合并对象
909浏览 • 1回复 待解决
如何判断一个对象是否在对象数组
2258浏览 • 1回复 待解决
如何在ArkTS合并对象
1346浏览 • 1回复 待解决