转载 请注明出处:
王亟亟的大牛之路
为什么写着一系列?
最近的工作内容都是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 版权协议,转载请附上原文出处链接和本声明。