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

本文从ReactActivity的起源和目的开始,通过源码分析阐述RN在Android上的实现原理。作者采用直接读源码并介绍的方式来讲解,重点关注ReactActivity及其代理类ReactActivityDelegate的生命周期和关键方法。ReactActivity主要负责处理返回键和授权,而ReactActivityDelegate则管理生命周期和加载应用。文章指出,自定义RN基础容器并非必须继承ReactActivity,而是根据业务需求来决定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载 请注明出处:王亟亟的大牛之路

为什么写着一系列?

最近的工作内容都是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 GoodsView from './src/view/GoodsView'
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值