RN安卓实现分析之ReactActivity的前世今生

  • Post author:
  • Post category:其他


转载 请注明出处:

王亟亟的大牛之路

为什么写着一系列?

最近的工作内容都是RN相关的开发的一些内容,正好有对源码进行一些修改,所以把改的过程中的一些记录化作源码分析介绍给大家

准备怎么介绍?

会直接依序读源码+介绍的方式介绍RN安卓实现的原理(但是会分为多个篇幅,一篇内容太多不容易吸收)

OK,安利完就开始吧


https://github.com/ddwhan0123/Useful-Open-Source-Android

(各种库的收纳,长期维护)

写着一片之前,没有看过任何其他兄弟对相关内容的分析,不是觉得自己牛逼。

是怕别人的思维影响到我的理解,如果讲得不对,欢迎指出!


在我们初始化RN项目的时候会有几样标配


  • ReactActivity

  • 继承ReactContextBaseJavaModule的Module

  • 继承ReactPackage的Package

简单的描述下这几个小伙伴

Module是你的各种业务能力,可能是控件,可能是属性,可能是方法,作为Native对于JS模块的能力支持。

Package是你装载这些能力的容器。

ReactActivity是你的页面容器同能力于普通的Activity。


ReactActivity

public abstract class ReactActivity extends Activity
    implements DefaultHardwareBackBtnHandler, PermissionAwareActivity 

  • 抽象类

  • 实现DefaultHardwareBackBtnHandler

    (用来处理返回键事件)

  • 实现PermissionAwareActivity

    (用来处理授权相关能力,虽然叫Activity 但是是个接口)

构造函数

 protected ReactActivity() {
    mDelegate = createReactActivityDelegate();
  }

构造函数就一个,创建了自己的代理实现类

ReactActivityDelegate

,ReactActivityDelegate却很纯粹,是一个实现功能的类,这个后面介绍。

这里写图片描述

创建代理类也不复杂

1 传入当前页面的上下文对象

2 传入一个控件主入口的名称(实现多入口的实现就靠它,像这样)

'use strict'
import { AppRegistry } from 'react-native';
import RootView from './src/view/RootView'
import GoodsV



版权声明:本文为ddwhan0123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。