本组件是面向 React Native 提供热更新功能的组件,详情请访问我们的官方网站 https://pushy.reactnative.cn。
- 中国区服务使用 Pushy(https://pushy.reactnative.cn),由武汉青罗网络科技有限公司运营,服务器位于中国境内,也通过 cloudflare 智能分流,完全支持海外用户高速访问。使用人民币支付订阅。
- 全球区服务使用 Cresc(https://cresc.dev),由 CHARMLOT PTE. LTD. 运营,服务器位于新加坡。使用美元支付订阅。
- 中国区与全球区服务由不同公司实体独立运营,服务器、数据及控制台系统彼此隔离。如果可以使用网银和支付宝结算,建议使用 Pushy,否则建议使用 Cresc。
现已支持鸿蒙以及新架构
请查看文档
- 对中国用户使用阿里云高速 CDN 分发,对比其他服务器在国外的热更新服务,分发更稳定,更新成功率极高。海外用户智能分流至 cloudflare,同样提供稳定高速的分发体验。
- 基于 bsdiff/hdiff 算法创建的超小更新包,通常版本迭代后在几十至几百 KB 级别(其他全量热更新服务所需流量通常在几十 MB 级别)。更针对 Hermes 字节码专门优化了 diff 算法(详见下方算法对比),补丁体积进一步显著缩小。
- 始终跟进 RN 最新正式版本,第一时间提供支持。支持 hermes 字节码格式。支持新架构(注:安卓 0.73.0 ~ 0.76.0 的新架构因官方 bug 不支持,0.73 以下或 0.76.1 以上的新架构可用)。
- 跨越多个版本进行更新时,只需要下载一个更新包,不需要逐版本依次更新。
- 命令行工具 & 网页双端管理,版本发布过程简单便捷,完全可以集成 CI。
- 后台自带数据统计(版本分布、更新成功率等)、灰度发布(按比例逐步放量)与版本健康度监控,无需自建数据链路即可掌控每次发布。
- 支持崩溃回滚,安全可靠,结合健康度监控可及时发现并止损问题版本。
- meta 信息及开放 API,提供更高扩展性。
- 提供付费的专人技术支持。
传统 diff 算法直接对字节做差分,而 Hermes 字节码中大量结构是"偏移量表"——JS 一处小改动会令其后所有偏移量整体位移,导致二进制差异被急剧放大。我们在 hdiff 之前引入了一层针对 HBC(Hermes 字节码)的 delta-friendly 可逆变换:对偏移位域做前项差分,从根源上消除这种位移放大。布局描述表由发布端随补丁下发,Hermes 版本演进时客户端零升级、自动兼容。
以下数据在真实 RN 0.86 应用的 release 产物上实测(Hermes HBC v98,字节码约 4.4 MB),每个补丁都先通过完整往返校验再记录体积。完整的评测方法、测试数据与可复现代码见 hbc-diff-benchmark。
Hermes 字节码(.hbc)——生产环境 Hermes 应用的实际发包格式:
| 迭代场景 | 全量 OTA(gzip) | bsdiff | bsdiff+lzma | hdiff | hdiff + HBC 变换 |
|---|---|---|---|---|---|
| 单行文案修改 | 1901.5 KB | 93.7 KB | 87.7 KB | 89.0 KB | 63.5 KB(−28% / −29%) |
| 小功能(约 60 行) | 1913.9 KB | 411.6 KB | 330.9 KB | 328.0 KB | 285.5 KB(−14% / −13%) |
| 中等功能(约 300 行) | 1973.7 KB | 551.6 KB | 430.6 KB | 431.6 KB | 398.4 KB(−7% / −8%) |
文本 JS bundle——非 Hermes 应用(同一应用、同样三个场景):
| 迭代场景 | 全量 OTA(gzip) | bsdiff | bsdiff+lzma | hdiff |
|---|---|---|---|---|
| 单行文案修改 | 807.2 KB | 0.3 KB | 0.7 KB | 0.1 KB |
| 小功能(约 60 行) | 813.1 KB | 7.4 KB | 7.4 KB | 5.8 KB |
| 中等功能(约 300 行) | 837.7 KB | 38.4 KB | 37.4 KB | 28.7 KB |
文本 bundle 没有偏移量表,diff 天然干净——补丁只有几百字节到几十 KB,较大改动下 hdiff 仍比 bsdiff 小约 20%~25%。偏移位移放大是 Hermes 字节码特有的问题,这正是 HBC 变换存在的意义。
要点:
- 增量更新比全量 OTA 节省 5~30 倍流量(单行改动 63.5 KB vs 全量 1.9 MB)。
- bsdiff+lzma 对照组(同一份 bsdiff 差分数据、换用 lzma 压缩)表明压缩器占了 bsdiff 与 hdiff 差距的大头——而 HBC 针对性变换再带来的 7%~29% 缩减是纯算法收益,且越是高频的小改动收益越大。
- hdiff 生成补丁比 bsdiff 快 2~4 倍,变换本身开销仅个位数毫秒。
- 安全兜底:改写任何字节前先对段边界、位域范围做全量校验,不匹配时自动回退到普通 hdiff 路径。
| 对比维度 | react-native-update | expo-update | react-native-code-push |
|---|---|---|---|
| 价格/成本 | 提供免费额度,多级梯度付费(最低约 66 元/月),流量不单独计费 | 提供免费额度,多级梯度付费(最低约 136 元/月),超出流量额外计费 | ❌ 已停运(Microsoft App Center 已于 2025 年 3 月 31 日停止服务) |
| 更新包大小 | ⭐⭐⭐⭐⭐ 几十至几百 KB(增量更新) | ⭐⭐⭐ 全量更新(通常几十 MB) | ❌ 已停运 |
| 中国地区访问速度 | ⭐⭐⭐⭐⭐ 阿里云 CDN,速度极快 | ⭐⭐ 国外服务器,可能较慢 | ❌ 已停运 |
| iOS 支持 | ✅ 支持 | ✅ 支持 | ❌ 已停运 |
| Android 支持 | ✅ 支持 | ✅ 支持 | ❌ 已停运 |
| 鸿蒙支持 | ✅ 支持 | ❌ 不支持 | ❌ 已停运 |
| Expo 支持 | ✅ 支持 | ✅ 支持 | ❌ 已停运 |
| RN 版本支持 | ⭐⭐⭐⭐⭐ 第一时间支持最新版本 | ⭐⭐⭐⭐ 跟随 Expo SDK | ❌ 已停运 |
| 新架构支持 | ✅ 支持 | ✅ 支持 | ❌ 已停运 |
| Hermes 支持 | ✅ 支持 | ✅ 支持 | ❌ 已停运 |
| 崩溃回滚 | ✅ 自动回滚机制 | ✅ 支持 | ❌ 已停运 |
| 灰度发布 | ✅ 后台自带,按比例逐步放量 | ✅ 支持 | ❌ 已停运 |
| 数据统计 | ✅ 后台自带(版本分布、更新成功率等) | ❌ 已停运 | |
| 健康度监控 | ✅ 后台自带版本健康度监控 | ❌ 不支持 | ❌ 已停运 |
| Hermes 专项 diff 优化 | ✅ HBC 结构感知,补丁更小 | ❌ 全量更新 | ❌ 已停运 |
| 管理界面 | ✅ 命令行工具 + Web 管理界面 | ✅ Expo Dashboard | ❌ 已停运 |
| CI/CD 集成 | ✅ 支持 | ✅ 支持 | ❌ 已停运 |
| API 扩展性 | ✅ Meta 信息 + 开放 API | ❌ 已停运 | |
| 中文文档/支持 | ⭐⭐⭐⭐⭐ 完整中文文档,中文社区支持 | ⭐⭐ 英文为主 | ❌ 已停运 |
| 技术支持 | ✅ 付费专人技术支持 | ❌ 已停运 | |
| 服务器部署 | ✅ 可托管也可付费私有部署 | ✅ Expo 托管(EAS Update) | ❌ 已停运 |
| 更新策略 | 灵活配置(静默/提示/立即/延迟) | 相对固定 | ❌ 已停运 |
| 流量消耗 | ⭐⭐⭐⭐⭐ 极低(增量更新) | ⭐⭐⭐ 较高(全量更新) | ❌ 已停运 |
| 更新成功率 | ⭐⭐⭐⭐⭐ 极高(国内 CDN 优势) | ⭐⭐⭐ 中等 | ❌ 已停运 |
本组件由React Native 中文网独家发布,如有定制需求可以联系我们。
关于此插件发现任何问题,可以前往Issues发帖提问。