/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Process;
import android.view.View;
import com.facebook.common.logging.FLog;
import com.facebook.infer.annotation.Assertions;
import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.JavaJSExecutor;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.JavaScriptModuleRegistry;
import com.facebook.react.bridge.ModuleSpec;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.NativeModuleCallExceptionHandler;
import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactMarker;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.WritableNativeMap;
import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec;
import com.facebook.react.common.ApplicationHolder;
import com.facebook.react.common.LifecycleState;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.common.annotations.VisibleForTesting;
import com.facebook.react.cxxbridge.Arguments;
import com.facebook.react.cxxbridge.CatalystInstanceImpl;
import com.facebook.react.cxxbridge.JSBundleLoader;
import com.facebook.react.cxxbridge.JSCJavaScriptExecutor;
import com.facebook.react.cxxbridge.JavaScriptExecutor;
import com.facebook.react.cxxbridge.NativeModuleRegistry;
import com.facebook.react.cxxbridge.ProxyJavaScriptExecutor;
import com.facebook.react.cxxbridge.UiThreadUtil;
import com.facebook.react.devsupport.DevServerHelper;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.devsupport.DevSupportManagerFactory;
import com.facebook.react.devsupport.ReactInstanceDevCommandsHandler;
import com.facebook.react.devsupport.RedBoxHandler;
import com.facebook.react.module.model.ReactModuleInfo;
import com.facebook.react.module.model.ReactModuleInfoProvider;
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
import com.facebook.react.modules.core.DeviceEventManagerModule;
import com.facebook.react.modules.debug.DeveloperSettings;
import com.facebook.react.uimanager.AppRegistry;
import com.facebook.react.uimanager.DisplayMetricsHolder;
import com.facebook.react.uimanager.UIImplementationProvider;
import com.facebook.react.uimanager.UIManagerModule;
import com.facebook.react.uimanager.ViewManager;
import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper;
import com.facebook.soloader.SoLoader;
import com.facebook.systrace.Systrace;
import com.facebook.systrace.SystraceMessage;
import static com.facebook.react.bridge.ReactMarkerConstants.BUILD_NATIVE_MODULE_REGISTRY_END;
import static com.facebook.react.bridge.ReactMarkerConstants.BUILD_NATIVE_MODULE_REGISTRY_START;
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_CATALYST_INSTANCE_END;
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_CATALYST_INSTANCE_START;
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_REACT_CONTEXT_START;
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_VIEW_MANAGERS_END;
import static com.facebook.react.bridge.ReactMarkerConstants.CREATE_VIEW_MANAGERS_START;
import static com.facebook.react.bridge.ReactMarkerConstants.PROCESS_PACKAGES_END;
import static com.facebook.react.bridge.ReactMarkerConstants.PROCESS_PACKAGES_START;
import static com.facebook.react.bridge.ReactMarkerConstants.SETUP_REACT_CONTEXT_END;
import static com.facebook.react.bridge.ReactMarkerConstants.SETUP_REACT_CONTEXT_START;
import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
/**
* This class is managing instances of {@link CatalystInstance}. It expose a way to configure
* catalyst instance using {@link ReactPackage} and keeps track of the lifecycle of that
* instance. It also sets up connection between the instance and developers support functionality
* of the framework.
*
* An instance of this manager is required to start JS application in {@link ReactRootView} (see
* {@link ReactRootView#startReactApplication} for more info).
*
* The lifecycle of the instance of {@link XReactInstanceManagerImpl} should be bound to the
* activity that owns the {@link ReactRootView} that is used to render react application using this
* instance manager (see {@link ReactRootView#startReactApplication}). It's required to pass owning
* activity's lifecycle events to the instance manager (see {@link #onHostPause}, {@link
* #onHostDestroy} and {@link #onHostResume}).
*
* To instantiate an instance of this class use {@link #builder}.
*/
/* package */ class XReactInstanceManagerImpl extends ReactInstanceManager {
private static final String TAG = XReactInstanceManagerImpl.class.getSimpleName();
/* should only be accessed from main thread (UI thread) */
private final List<ReactRootView> mAttachedRootViews = new ArrayList<>();
private LifecycleState mLifecycleState;
private @Nullable ReactContextInitParams mPendingReactContextInitParams;
private @Nullable ReactContextInitAsyncTask mReactContextInitAsyncTask;
/* accessed from any thread */
private final @Nullable JSBundleLoader mBundleLoader; /* path to JS bundle on file system */
private final @Nullable String mJSMainModuleName; /* path to JS bundle root on packager server */
private final List<ReactPackage> mPackages;
private final DevSupportManager mDevSupportManager;
private final boolean mUseDeveloperSupport;
private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
private @Nullable volatile ReactContext mCurrentReactContext;
private final Context mApplicationContext;
private @Nullable DefaultHardwareBackBtnHandler mDefaultBackButtonImpl;
private String mSourceUrl;
private @Nullable Activity mCurrentActivity;
private final Collection<ReactInstanceEventListener> mReactInstanceEventListeners =
Collections.synchronizedSet(new HashSet<ReactInstanceEventListener>());
private volatile boolean mHasStartedCreatingInitialContext = false;
private final UIImplementationProvider mUIImplementationProvider;
private final MemoryPressureRouter mMemoryPressureRouter;
private final @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
private final JSCConfig mJSCConfig;
private final boolean mLazyNativeModulesEnabled;
private final boolean mLazyViewManagersEnabled;
private final ReactInstanceDevCommandsHandler mDevInterface =
new ReactInstanceDevCommandsHandler() {
@Override
public void onReloadWithJSDebugger(JavaJSExecutor.Factory jsExecutorFactory) {
XReactInstanceManagerImpl.this.onReloadWithJSDebugger(jsExecutorFactory);
}
@Override
public void onJSBundleLoadedFromServer() {
XReactInstanceManagerImpl.this.onJSBundleLoadedFromServer();
}
@Override
public void toggleElementInspector() {
XReactInstanceManagerImpl.this.toggleElementInspector();
}
};
private final DefaultHardwareBackBtnHandler mBackBtnHandler =
new DefaultHardwareBackBtnHandler() {
@Override
public void invok
没有合适的资源?快使用搜索试试~ 我知道了~
react-native-0.41.0-rc.1.zip
共2000个文件
js:848个
h:363个
java:342个
需积分: 0 0 下载量 125 浏览量
2024-08-29
15:51:45
上传
评论
收藏 21.75MB ZIP 举报
温馨提示
一个使用 React 构建 app 应用程序的框架 A framework for building native applications using React
资源推荐
资源详情
资源评论
收起资源包目录
react-native-0.41.0-rc.1.zip (2000个子文件)
Yoga.c 130KB
YGNodeList.c 2KB
JSCExecutor.cpp 27KB
YGJNI.cpp 19KB
NativeToJsBridge.cpp 13KB
JSCTracing.cpp 12KB
CatalystInstanceImpl.cpp 10KB
LocalString.cpp 9KB
Value.cpp 9KB
jscexecutor.cpp 9KB
CxxModuleWrapper.cpp 9KB
fbjni.cpp 8KB
Exceptions.cpp 8KB
JSCPerfLogging.cpp 8KB
ModuleRegistryHolder.cpp 8KB
CxxMessageQueue.cpp 7KB
JSCHelpers.cpp 7KB
MicroProfiler.cpp 7KB
MethodInvoker.cpp 7KB
CxxNativeModule.cpp 6KB
OnLoad.cpp 6KB
OnLoad.cpp 6KB
jni_helpers.cpp 6KB
Instance.cpp 6KB
JSCWrapper.cpp 6KB
InspectorController.cpp 5KB
methodcall.cpp 5KB
ReadableNativeMap.cpp 5KB
ConsoleAgent.cpp 5KB
Inspector.cpp 5KB
JSDispatcher.cpp 4KB
JSCWebWorker.cpp 4KB
jsarg_helpers.cpp 4KB
ProxyExecutor.cpp 4KB
ModuleRegistry.cpp 4KB
SampleCxxModule.cpp 4KB
Environment.cpp 3KB
ReadableNativeArray.cpp 3KB
JSLoader.cpp 3KB
CxxMessageQueueTest.cpp 3KB
value.cpp 3KB
lyra.cpp 3KB
glog_init.cpp 3KB
JSIndexedRAMBundle.cpp 3KB
WritableNativeMap.cpp 3KB
JMessageQueueThread.cpp 3KB
JInspector.cpp 3KB
Unicode.cpp 3KB
WritableNativeArray.cpp 3KB
Executor.cpp 2KB
JniJSModulesUnbundle.cpp 2KB
LegacyRuntimeAgent.cpp 2KB
ByteBuffer.cpp 2KB
JSCLegacyProfiler.cpp 2KB
log.cpp 2KB
Countable.cpp 2KB
MethodCall.cpp 2KB
Protocol.cpp 2KB
Hybrid.cpp 2KB
JSCNativeModules.cpp 2KB
JSCLegacyTracing.cpp 2KB
JSCPerfStats.cpp 2KB
NativeCommon.cpp 2KB
LegacyDispatcher.cpp 2KB
LegacyScriptDebugServer.cpp 2KB
LegacyDebuggerAgent.cpp 1KB
jsbigstring.cpp 1KB
Agent.cpp 1KB
JSCMemory.cpp 1KB
WeakReference.cpp 1KB
assert.cpp 1KB
LegacyAgents.cpp 1KB
jsclogging.cpp 1KB
RecoverableErrorTest.cpp 1KB
JSLogging.cpp 1008B
References.cpp 928B
LegacyInspectorEnvironment.cpp 902B
JSBundleType.cpp 891B
JSCSamplingProfiler.cpp 817B
PageAgent.cpp 810B
NativeArray.cpp 791B
onload.cpp 751B
JExecutorToken.cpp 742B
OnLoad.cpp 603B
NativeMap.cpp 589B
Error.cpp 519B
Platform.cpp 493B
InspectorAgent.cpp 449B
JSCUtils.cpp 362B
Dummy.cpp 143B
Util.cpp 121B
Dispatcher.cpp 82B
react-native.css 30KB
style.css 1KB
jni.h 51KB
CoreClasses.h 21KB
References.h 20KB
CoreClasses-inl.h 19KB
Meta-inl.h 17KB
References-inl.h 14KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
a3737337
- 粉丝: 0
- 资源: 2869
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ansys apdl 车轨耦合车桥耦合 列车模型:考虑车体、转向架、车轮质量和二系悬挂 钢轨:标准60轨、75轨 轨道结构:板式
- 基于matlab实现的标准粒子群算法及svm参数辨识+源码+文档(毕业设计&课程设计&项目开发)
- 计算机、电子信息、人工智能学习资料汇总
- doubanFlask-main.zip
- 最新单目标测试集,灰狼算法跑cec2022测试集,这是最新的单目标测试集,能够有效评估算法的性能 GWO跑cec2022
- RemoteApp 配置工具
- 基于MATLAB实现的FOM参数辨识并改进其模型+源码+文档(毕业设计&课程设计&项目开发)
- 基于springboot校园志愿者管理系统.zip
- 基于matlab开发的动力学参数辨识代码+源码+代码架构+仿真数据(毕业设计&课程设计&项目开发)
- 个人飞机大战小游戏planeGame1.15
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功