Hippy源码解析--native与js通信

2024-04-27  本文已影响0人  andorid_xiao

hippy线程模型(android)

js调用native

hippy初始化时会将hippyCallNatives(entry.cc)方法注入js虚拟机,js通过hippyCallNatives方法(指定ModuleName以及methodName,及调用参数)将js层调用转发至c层,在c层将通过jni调用到HippyBridgeImpl中的callNatives方法,后续在callnative方法中,将会根据模块类型,选择相应的线程执行后续调用(例如,对dom操作,会转发至dom线程处理。对于非Dom的模块调用,会转发至默认的jsBridge线程进行处理 )

native调用js

java中首先通过HippyBridgeManagrImpl中的callJavaScriptModule方法在jsThread线程中进行编码等处理,随后调用HippyBridgeImpl中的callFunction方法将moduleName以及methodName等相关参数传递至c++层。CallFunctionByHeapBuffer方法将创建jsRunnerTask,该task在js线程执行,在其中会调用上层js运行时中早已注册的hippyBridge对象,完成js模块的信息转发。

Hippy https://hippyjs.org/#/guide/jsi

上一篇 下一篇

猜你喜欢

热点阅读