React Native 中 Java 与 JS 互调的原理

通信机制

在Java层与Js层的bridge分别存有相同一份模块配置表,Java与Js互相通信时,通过将里配置表中的moduleID,methodID转换成json数据的形式传递给到C++层,C++层传送到js层,通过js层的的模块配置表找到对应的方法进行执行,如果有callback,则回传给java层。

通过一个函数调用来看Java调用JS

React.png

RCTDeviceEventEmitter的emit方法是一个虚方法, 实际是被动态代理了。
最终执行者是 JavaScriptModuleInvocationHandler 的 invoke。

看图中两个绿色的地方。
Java层的方法在JS层会存在一个对应的方法。(方法不是太准确)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容