ReactNative源码分析之CatalystInstance

本文深入探讨ReactNative 0.61.5版本的CatalystInstance,作为Java与JS交互的关键接口,其涉及的功能包括:提供JSBundle加载方式,管理JavaScriptModule和NativeModule,内存监测,桥接状态监控,JSIModule和TurboModuleManager的使用等。通过PendingJSCall解析调用过程,并概述各模块的作用。
摘要由CSDN通过智能技术生成

当前分析的ReactNative版本为0.61.5:

首先我们来看CatalystInstance的定义,它其实是个接口,实现类为CatalystInstanceImpl。该接口提供了Java层与JS层交互的通道。

那么该接口有哪些功能呢?
1.提供JSBundle的url;
2.JS层和Java层通信接口(invokeCallback和callFunction);
3.管理所有的JavaScriptModule;
4.管理所有的NativeModule;
5.监听Bridge的空闲状态;
6.添加JSIModule和TurboModuleManager;

一、PendingJSCall

具体代码如下:

 public static class PendingJSCall {
   

    public String mModule;
    public String mMethod;
    public @Nullable NativeArray mArguments;

    public PendingJSCall(String module, String method, @Nullable NativeArray arguments) {
   
      mModule = module;
      mMethod = method;
      mArguments = arguments;
    }

    void call(CatalystInstanceImpl catalystInstance) {
   
      NativeArray arguments = mArguments != null ? mArguments : new WritableNativeArray();
      catalystInstance.jniCallJSFunction(mModule, mMethod, arguments);
    }

    public String toString() {
   
      return mModule
          + "."
          + mMethod
          + "("
          + 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值