Java JS端都准备JsModule映射表(Java在启动时创建JsModule映射表)
Java调用JSModule方法时,从Java映射表找到JsModule,调用Module的动态代理的方法,在动态代理里会callFunction通过JNI调用c层的callJsFunction
callJsFunction就是在c层通过WebKit调用js代码,在js注册表找到对应的jsModule,执行jsModule调用
JS调Native
启动时c++向js层注入了c++的JSCExcutor对象,运行时js就可以通过这个对象和c层通信,Java创建NativeModule映射表,把映射表通过JNI存放到c层(启动时)
在js使用NativeModules调用方法时,method会放进js的队列,等待被JAVA层调用,或者主动调用JSC,来遍历执行队列的方法
JSC遍历到方法时会调用callNative,根据方法要调用的NativeModule名,找到Java注册到c层的映射表里的NativeModuleWrapper,反射调用NativeModuleWrapper的invoke方法
在Wrapper里反射调用NativeModule的方法