通信机制
在Java层与Js层的bridge分别存有相同一份模块配置表,Java与Js互相通信时,通过将里配置表中的moduleID,methodID转换成json数据的形式传递给到C++层,C++层传送到js层,通过js层的的模块配置表找到对应的方法进行执行,如果有callback,则回传给java层。
通过一个函数调用来看Java调用JS
RCTDeviceEventEmitter的emit方法是一个虚方法, 实际是被动态代理了。
最终执行者是 JavaScriptModuleInvocationHandler 的 invoke。
看图中两个绿色的地方。
Java层的方法在JS层会存在一个对应的方法。(方法
不是太准确)