Files
react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.java
T
Emily Janzer 7d8b7ff3aa Don't call ReactBridge.staticInit() on the main thread
Summary: Adding a hook to check if ReactBridge is initialized so we can avoid loading the .so on the main thread.

Reviewed By: fkgozali

Differential Revision: D17747958

fbshipit-source-id: 5969afa57dc1b446c03bc68eaa9e1385fe17c461
2019-10-03 16:21:28 -07:00

49 lines
1.3 KiB
Java

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
* directory of this source tree.
*/
package com.facebook.react.bridge;
import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
import android.os.SystemClock;
import com.facebook.soloader.SoLoader;
import com.facebook.systrace.Systrace;
public class ReactBridge {
private static volatile long sLoadStartTime = 0;
private static volatile long sLoadEndTime = 0;
private static boolean sDidInit = false;
public static boolean isInitialized() {
return sDidInit;
}
public static synchronized void staticInit() {
if (sDidInit) {
return;
}
sDidInit = true;
sLoadStartTime = SystemClock.uptimeMillis();
Systrace.beginSection(
TRACE_TAG_REACT_JAVA_BRIDGE, "ReactBridge.staticInit::load:reactnativejni");
ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START);
SoLoader.loadLibrary("reactnativejni");
ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END);
Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
sLoadEndTime = SystemClock.uptimeMillis();
}
public static long getLoadStartTime() {
return sLoadStartTime;
}
public static long getLoadEndTime() {
return sLoadEndTime;
}
}