跳到主要内容

NativeModules在Android侧的调用逻辑

危险

该逻辑是旧架构逻辑,新架构逻辑已经重构。

写了多年的RN代码,今天突然很好奇,js代码是怎么一步一步将数据传输到native然后调用native函数的。经过一晚上的研究,大概找到了他的调用路线。

流程

  1. js侧创建mq,然后调用enqueueNativeCall方法通过global.nativeTraceCounter全局注册函数将mq传递给hermes引擎。
  2. hermes引擎调用bridge。(此块没有调试)
  3. bridge调用callNativeModules方法来调用android侧的java方法。
  4. java侧通过javamoduleWrapper通过反射来调用桥接方法。
  5. 在android侧实现桥接方法的时候只需要添加@ReactMethod注解注册方法就好,底层都做了封装。

js

js

js