mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-15 23:03:58 +08:00
Support ModuleHolder-based lazy init of C++ modules with C++ bridge on android
Reviewed By: AaaChiuuu Differential Revision: D4614479 fbshipit-source-id: 109ac34b8688f0113675e4a4479d1ddcc6169ed4
This commit is contained in:
committed by
Facebook Github Bot
parent
6410e256c5
commit
e622d51e20
@@ -110,7 +110,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
final JavaScriptModuleRegistry jsModuleRegistry,
|
||||
final JSBundleLoader jsBundleLoader,
|
||||
NativeModuleCallExceptionHandler nativeModuleCallExceptionHandler) {
|
||||
FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge.");
|
||||
FLog.w(ReactConstants.TAG, "Initializing React Xplat Bridge.");
|
||||
mHybridData = initHybrid();
|
||||
|
||||
mReactQueueConfiguration = ReactQueueConfigurationImpl.create(
|
||||
@@ -123,6 +123,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
|
||||
mTraceListener = new JSProfilerTraceListener(this);
|
||||
|
||||
FLog.w(ReactConstants.TAG, "Initializing React Xplat Bridge before initializeBridge");
|
||||
initializeBridge(
|
||||
new BridgeCallback(this),
|
||||
jsExecutor,
|
||||
@@ -130,6 +131,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
mReactQueueConfiguration.getNativeModulesQueueThread(),
|
||||
mJavaRegistry.getJavaModules(this),
|
||||
mJavaRegistry.getCxxModules());
|
||||
FLog.w(ReactConstants.TAG, "Initializing React Xplat Bridge after initializeBridge");
|
||||
mMainExecutorToken = getMainExecutorToken();
|
||||
}
|
||||
|
||||
@@ -182,7 +184,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
MessageQueueThread jsQueue,
|
||||
MessageQueueThread moduleQueue,
|
||||
Collection<JavaModuleWrapper> javaModules,
|
||||
Collection<CxxModuleWrapper> cxxModules);
|
||||
Collection<ModuleHolder> cxxModules);
|
||||
|
||||
/**
|
||||
* This API is used in situations where the JS bundle is being executed not on
|
||||
|
||||
@@ -53,12 +53,12 @@ public class NativeModuleRegistry {
|
||||
return javaModules;
|
||||
}
|
||||
|
||||
/* package */ Collection<CxxModuleWrapper> getCxxModules() {
|
||||
ArrayList<CxxModuleWrapper> cxxModules = new ArrayList<>();
|
||||
/* package */ Collection<ModuleHolder> getCxxModules() {
|
||||
ArrayList<ModuleHolder> cxxModules = new ArrayList<>();
|
||||
for (Map.Entry<Class<? extends NativeModule>, ModuleHolder> entry : mModules.entrySet()) {
|
||||
Class<?> type = entry.getKey();
|
||||
if (CxxModuleWrapper.class.isAssignableFrom(type)) {
|
||||
cxxModules.add((CxxModuleWrapper) entry.getValue().getModule());
|
||||
cxxModules.add(entry.getValue());
|
||||
}
|
||||
}
|
||||
return cxxModules;
|
||||
|
||||
Reference in New Issue
Block a user