ReactNative源码篇:源码初识
来源:互联网 发布:融学软件下载 编辑:程序博客网 时间:2024/06/07 10:24
本篇系列文章主要分析ReactNative源码,分析ReactNative的启动流程、渲染原理、通信机制与线程模型等方面内容。
- 1ReactNative源码篇:源码初识
- 2ReactNative源码篇:代码调用
- 3ReactNative源码篇:启动流程
- 4ReactNative源码篇:渲染原理
- 5ReactNative源码篇:线程模型
- 6ReactNative源码篇:通信机制
源码地址:https://github.com/facebook/react-native
源码版本:
本篇文章是《ReactNative源码篇》的第一篇文章,刚开始,我们先不对源码做深入的分析,我们先要对源码的结构和ReactNative的框架有个大致的印象,
由此便引出了本篇文章需要讨论的两个问题:
- 1
- 2
好,我们先来看第一个问题。
ReactNative系统框架概述
ReactNative源码结构图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
react依赖另外几个包,它们的调用关系如下图所示:
ReactNative系统框架图如下所示:
注:JSCore,即JavaScriptCore,JS解析的核心部分,IOS使用的是内置的JavaScriptCore,Androis上使用的是https://webkit.org/家的jsc.so。
ReactNative系统框架主线与支线
从上面对ReactNative系统框架的分析,我们很容易看出源码的主线就在于ReactNative的启动流程、UI的绘制与渲染以及双边通信(Java调用JS,JS调用Java)。
源码主线:
- 1
- 2
- 3
- 4
源码支线:
- 1
- 2
- 3
在正式开始分析源码之前,我们先简单介绍一下各个类的作用,让大家先有个大概的印象,方便以后的讲解。
ReactContext(Java层)
- 1
ReactInstanceManagerImpl/ReactInstanceManagerImpl(Java层)
- 1
CatalystInstance/CatalystInstanceImpl(Java层/C++层)
- 1
NativeToJsBridge(C++层)
- 1
JsToNativeBridge(C++层)
- 1
JSCExecutor(C++层)
- 1
MessageQueue(JS层)
- 1
JavaScriptModule(Java层)
- 1
ReactContextBaseJavaModule/BaseJavaModule/NativeModule(Java层)
- 1
JavascriptModuleRegistry(Java层)
- 1
NativeModuleRegistry(Java层)
- 1
附录
为了方便大家理解,准备了导读PPT。
- ReactNative源码篇:源码初识
- ReactNative源码篇:源码初识
- ReactNative源码篇
- ReactNative源码篇:通信机制
- ReactNative源码篇:代码调用
- ReactNative源码篇:启动流程
- ReactNative源码篇:渲染原理
- F8App-ReactNative项目源码分析4-js篇
- Facebook F8App-ReactNative项目源码分析5-iOS篇
- Android2.3源码初识
- 初识LinkedHashMap源码
- springMVC初识 源码末尾
- F8App-ReactNative项目源码分析2-服务器端
- ReactNative iOS源码解析(一)
- ReactNative iOS源码解析(二)
- 【转】深入源码探索 ReactNative 通信机制
- ReactNative修改第三方插件源码
- Android源码解读 第一篇 初识源码
- 英伟达的 VR 探索之路:图像渲染
- python 如何引用modules
- [以太坊源代码分析]III. 挖矿和共识算法的奥秘
- cocos 线程相关
- android studio 链接不上手机
- ReactNative源码篇:源码初识
- python2.7生成验证码图片
- 服务器磁盘故障raid崩溃的数据恢复案例分析
- Servlet介绍(二)——Servlet中方法介绍
- Linux常用命令
- 匿名函数
- Java重点知识回顾(值传递,多线程,Map)
- [以太坊源代码分析] V. 从钱包到客户端
- python学习 ---replace()