RN(React Native) 与 Android 初识

2018-05-23  本文已影响28人  东方灵龙

RN(React Native)

源码地址: https://github.com/facebook/react-native

简介

本文主要讲述RN在Android系统上是如何进行初始化,介绍也会集中在Java语言上

1. 主要类介绍

1.1 ReactContext
ReactContext继承于ContextWrapper,是RN应用的上下文,可以通过getContext()方法或侧,通过它可以访问RN核心类的实现。
1.2 ReactNativeHost
RN的配置类,用于设定JSBundleFile,BundleAssetName,Dev环境,RedBox,JSMainModuleName等信息,最重要的是它拥有一个ReactInstanceManager的实例对象,可以用来管理RN的很多操作;
1.3 ReactInstanceManager
ReactInstanceManager是RN应用的总管理类,创建ReactContext、CatalystInstance等类,解析ReactPackage生成映射表,并且配合ReactRootView管理View的创建以及生命周期等功能;
1.4 CatalystInstance
CatalystInstance是RN的应用Java层,C++层,JS层通讯总管理类,总管Java层,JS层和谐Module映射表与回调,是三端通讯的入口与桥梁
1.5 ReactActivity和ReactFragmentActivity
RN继承Android原生的Activity,用来设置Activity的内容,创建代理类ReactActivityDelegate,载入RN页面loadAPP
1.6 ReactActivityDelegate
RN相关Activity的代理类,从创建ReactRootView,设置上下文, 生命周期的控制,到载入loadAPP;可以通过继承自定义代理类,再赋值给RN的Activity,可以带上Android的Bundle作为参数直接传递给JS层
1.7 ReactRootView
顾名思义,就是RN的主view,JS代码的Component设置的UI最终都显示到这个类中,同时还复写了onTouchEvent和onInterceptTouchEvent,用于分发事件到JS

2. 调用顺序图

图片为思维导图,大致从上往下调用,类之间通过箭头指向调用;

RN-ANDROID-01.png
上一篇下一篇

猜你喜欢

热点阅读