React Native鸿蒙化仓库
React Native for OpenHarmony (RNOH)
将 React Native 开发体验完整带入鸿蒙生态 (OpenHarmony)。高性能桥接、完整 Fabric 支持,让 RN 应用无缝运行于鸿蒙。
项目简介
本项目为 React Native 跨平台应用开发框架添加 OpenHarmony 平台支持
| 角色 / Role | 中文文档 | English Docs |
|---|---|---|
| 应用开发者 / Application Developer | README.md | README.md |
| 库开发者 / Library Developer | 三方库接入指南 | Library Integration Guide |
| 维护者或贡献者 / Maintainer or Contributor | 开发者共建指南 | Developer Documentation Co-creation Guide |
文档导航
🚀 快速开始
| 文档 | 说明 |
|---|---|
| 环境搭建 | 开发环境配置 |
| SDK版本配置指导 | SDK版本配置 |
| 编译构建指南 | release编译构建指南 |
📦 版本管理
| 文档 | 说明 |
|---|---|
| 版本说明 | 版本信息概览 |
| 版本升级指导 | 版本升级流程 |
| RN升级需要开发者适配整理 | RN版本适配说明 |
| 上游社区不兼容变更 | 不兼容变更记录 |
💡 开发文档
| 文档 | 说明 |
|---|---|
| 框架设计 | 提供设计原理、架构说明、接口规格等内容,帮助开发者理解框架底层原理。 |
| 开发指导 | 旨在帮助开发者从环境准备到功能实现顺利完成开发工作。 |
| 调试调测 | 提供调试调测工具与方法,提供开发者调试效率。 |
| 性能调优 | 包含性能优化方法、内存优化指导、最佳实践案例等内容,帮助开发者优化应用性能和内存占用。 |
❓ 问题定位
RNOH 语料已进入 Gemini、DeepSeek、GLM 等主流 AI 模型
推荐使用 AI 工具结合日志与上下文快速定位问题。提供 错误堆栈 + RNOH 版本 + 设备型号 可获得精准的根因分析与修复建议。
稳定性问题
| 步骤 | 操作 |
|---|---|
| 1. 收集日志 | 使用 DevEco Studio 获取 crash 日志或 tombstone |
| 2. 分析堆栈 | 重点关注 libRNOH.so、libreact_nativemodule.so 符号 |
| 3. 常见原因 | 线程未同步、NativeModule 生命周期错误、内存越界 |
| 4. AI 提示词 | "RNOH 0.82 在鸿蒙折叠屏上打开 Modal 闪退,堆栈如下:…… 请分析可能原因。" |
| 5. 验证方案 | 隔离可疑模块,使用 AddressSanitizer 检测 |
| 文档 | 说明 |
|---|---|
| 稳定性分析方法 | 提供:冻屏、CppCrash、内存异常等稳定性问题分析方法 |
| v0.72历史修复 | 0.72版本修复记录 |
| v0.77历史修复 | 0.77版本修复记录 |
| v0.82历史修复 | 0.82版本修复记录 |
性能问题
| 步骤 | 操作 |
|---|---|
| 1. 抓取数据 | React DevTools Profiler + 鸿蒙 DevEco Profiler |
| 2. 识别瓶颈 | JS 线程阻塞、UI 线程掉帧、过度渲染 |
| 3. 优化手段 | FlashList 替代 FlatList、避免匿名函数、启用 Hermes 并发 GC |
| 4. AI 提示词 | "RNOH 0.77 长列表滑动卡顿,JS 线程占用 80%,请给出优化策略。" |
| 5. 验证 | 对比优化前后帧率曲线 |
工程问题
| 步骤 | 操作 |
|---|---|
| 1. 编译错误 | 检查 git submodule、CMakeLists 依赖、RNOH 与 RN 版本对齐 |
| 2. 链接错误 | 确认 so 库完整打包,使用 readelf 检查符号 |
| 3. 模块未找到 | 检查 TurboModule 注册与 Codegen 生成 |
| 4. AI 提示词 | "RNOH 编译报错 undefined symbol: jsi::Value,环境 0.82,如何解决?" |
| 5. 复现隔离 | 新建最小 demo 工程逐步添加模块定位 |
| 文档 | 说明 |
|---|---|
| RN-JS打包 | JS打包流程 |
| hvigorfile配置 | Hvigor配置说明 |
| 构建与符号管理指南 | 构建与符号管理 |
推荐工作流: 粘贴错误堆栈 + 版本信息 + 设备型号 → AI 提供根因与补丁建议 → 提效 80%
FAQ
| 文档 | 说明 |
|---|---|
| FAQ总览 | 常见问题汇总 |
| 编译类FAQ | 编译相关问题 |
| 运行类FAQ | 运行相关问题 |
| 规格类FAQ | 规格相关问题 |
| 定位定界类FAQ | 问题定位方法 |
| 使用类FAQ | 使用相关问题 |
🤝 社区治理
| 文档 | 说明 |
|---|---|
| 开发者共建指南 | 共建流程指南 |
| 社区issue管理规范 | Issue处理规范 |
| 社区commit和pr规范 | Commit/PR规范 |
| 社区changelog规范 | 变更日志规范 |
| 仓库分支管理规范 | 分支管理规范 |
| rnoh包管理规范 | NPM包管理规范 |
社区交流
微信群:

邮件列表:
待补充
Built with ❤️ by OpenHarmony React Native SIG