JSI
文章平均质量分 76
千里马-horse
专注于OpenGL、camera 应用开发、音视频开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Rect Native bridging 源码分析--Class.h
摘要:该文件是React Native桥接系统的核心组件,提供跨语言方法调用的类型安全支持。主要包含两个功能:1)callFromJs模板函数,实现JavaScript到C++类成员方法的调用,自动完成参数和返回值的类型转换;2)getParameterCount函数,编译期获取函数参数个数。通过静态断言确保类型安全,利用C++17特性实现零运行时开销的编译期优化,支持多种返回值场景。该组件是React Native实现高效跨语言交互的关键基础设施。原创 2026-01-02 10:49:32 · 507 阅读 · 0 评论 -
Rect Native bridging 源码分析--Array.h
摘要:该头文件是React Native框架中C++与JavaScript交互的核心桥接模块,定义了通用类型转换接口和工具。主要内容包括:1) 核心桥接模板Bridging的前置声明和void特化;2) 内部类型包装工具function_wrapper和bridging_wrapper;3) 公开类型别名bridging_t;4) 关键转换方法fromJs/toJs的三重重载实现;5) 编译期兼容性判断常量supportsFromJs/supportsToJs。该模块采用分层设计,通过模板元编程实现编译期优原创 2026-01-02 10:35:44 · 757 阅读 · 0 评论 -
Rect Native bridging 源码分析--Array.h
摘要: 该头文件实现了C++标准容器与JavaScript数组之间的双向转换桥接,用于React Native框架的跨语言通信。核心功能包括:1) 提供静态长度容器(array/pair/tuple)和动态长度容器(vector/list/set等)的转换模板;2) 通过toJs/fromJs方法实现双向转换;3) 采用分层设计分离通用逻辑与具体实现;4) 针对不同容器特性进行性能优化,如vector预分配内存、set自动排序去重等。该实现支持常见STL容器,为React Native的C++/JS交互提供原创 2026-01-02 10:30:04 · 538 阅读 · 0 评论 -
Rect Native bridging 源码分析--AString.h
本文分析了React Native中实现C++与JavaScript字符串互转的桥接代码。核心是通过模板特化为std::string和std::string_view提供类型安全的双向转换:std::string支持toJs()和fromJs()方法实现UTF-8编码的双向转换;std::string_view仅提供toJs()方法,通过reinterpret_cast优化性能。代码还通过继承方式让const char*和字符数组复用std::string_view的逻辑。该组件是React Native桥原创 2026-01-01 22:07:51 · 387 阅读 · 0 评论 -
React Native 源码分析 -- jsi.h
Facebook JSI(JavaScript Interface)是一个跨JavaScript运行时的通用C++抽象层,旨在实现高效、低侵入性的C++与JavaScript双向交互。其核心架构包含基础支撑模块(UUID/ICast/缓冲区)、运行时核心入口(Runtime)、双向交互机制(HostFunction/HostObject)以及完整的JS类型封装体系(Value/Object等)。JSI通过移动语义、零拷贝设计、严格类型校验和智能指针管理,显著提升了性能表现和安全性。该框架支持Hermes/V原创 2026-01-01 11:35:46 · 886 阅读 · 0 评论
分享