react native 代码执行(一)

本文详细介绍了React Native在Android端的代码执行流程,包括ReactActivityDelegate.onCreate、ReactRootView.startReactApplication、ReactInstanceManager.createReactContextInBackground等关键步骤。在启动过程中,涉及到ReactContext的创建、NativeModule和JavaScriptModule的交互以及JS代码的执行。文章深入剖析了从应用启动到JSBundle加载的完整过程。
摘要由CSDN通过智能技术生成

react native Android端代码执行的大体流程:

第一步:在应用的Application里做RN的初始化操作。

有两个需要注意的对象:

  • ReactNativeHost:持有ReactInstanceManager实例,做一些初始化操作。
  • 重载方法onCreate里面的SoLoader:加载C++底层库,准备解析JS。

第二步:页面继承ReactActivityReactActivity作为JS页面的容器。

第三步:有了ReactActivity作为容器,我们就可以用JS开发页面了。

react native启动流程相关的一些重要概念

ReactContext

概念:

ReactContext继承于ContextWrapper,也就是说它和Android中的Context是一个概念,是整个应用的上下文。那么什么是上下文呢,我们知道Android的应用模型是基于组件的应用设计模式, 组件的运行需要完整的运行环境,这种运行环境便是应用的上下文。

NativeModule/UIManagerModule/JavascriptModule

NativeModule/UIManagerModuleNativeModule是Java暴露给JS调用的APU集合,UIManagerModule也是供JS调用的API集合,它用来创建View。业务放可以通过实现NativeModule来自定义模块,通过getName()将模块名暴露给JS层,通过@ReactMethod注解将API暴露给JS层。

JavaScriptModule:JS暴露给Java调用的API集合等。业务放可以通过继承JavaScriptModule接口类似自定义接口模块,声明与JS相对应的方法
即可。

一、执行器的实现

1.1 Native代码执行器

ExecutorDelegate:在Executor.h中定义,由JsToNativeBridge实现,该抽象类用于JS代码调用Native代码。

1.2 JS代码执行器

JS的解析是在Webkit-JavaScriptCore中完成的,JSCExexutor.cpp对JavaScriptCore的功能做了进一步的封装,我们来看一下它的实现。

JSExecutor:在Executor.h中定义,正如它的名字那样,它是用来执行JS代码的。执行代码的命令是通过JS层的BatchedBridge传递过来的。

RN给了我们自定义JS解析器的能力,可以在CatalystInstance.BuildersetJSExecutor()

二、RN应用的启动流程

一句话概括启动流程:先是应用终端启动并创建应用上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值