Hermes JS 引擎入门:让你的 React Native 应用飞起来

张开发
2026/4/19 15:20:06 15 分钟阅读

分享文章

Hermes JS 引擎入门:让你的 React Native 应用飞起来
目录一、什么是 Hermes二、Hermes 的核心优势三、如何启用 Hermes3.1 新项目React Native 0.703.2 Android 项目手动启用3.3 iOS 项目手动启用四、验证 Hermes 是否生效五、Hermes 工作原理简析六、常见问题 注意事项Q启用后 App 崩溃怎么办QHermes 支持哪些 JS 特性Q调试时如何使用 Chrome DevTools七、总结一、什么是 HermesHermes 是 Meta原 Facebook专为 React Native 设计并开源的 JavaScript 引擎。它于 2019 年在 Chain React 大会上首次发布目标只有一个让 React Native 应用在中低端 Android 设备上启动更快、占用内存更少。与 V8、JavaScriptCoreJSC等通用 JS 引擎不同Hermes 采用AOTAhead-of-Time预编译策略在构建阶段将 JS 代码编译为字节码运行时直接执行字节码绕过了传统引擎运行时解析 JIT 编译的耗时流程。 从 React Native0.70开始Hermes 已成为 Android 和 iOS双平台默认JS 引擎。二、Hermes 的核心优势指标传统 JSCHermesTTI首次可交互时间较慢显著缩短可达 50%包体积字节码较大更小内存占用较高更低启动时 JIT 开销有无AOT 预编译 对中低端 Android 设备如 2GB 内存机型提升效果尤为明显。三、如何启用 Hermes3.1 新项目React Native 0.70新建项目默认已启用 Hermes无需额外配置。3.2 Android 项目手动启用编辑android/gradle.properties确保以下配置存在# 启用 Hermes 引擎 hermesEnabledtrue同步 Gradle 并重新构建cdandroid ./gradlew cleancd..npx react-native run-android3.3 iOS 项目手动启用编辑ios/Podfile在:hermes_enabled处设置为trueuse_react_native!(:pathconfig[:reactNativePath],:hermes_enabledtrue)然后重新安装 Pod 并构建cdios podinstallcd..npx react-native run-ios四、验证 Hermes 是否生效在你的 React Native 代码中运行以下代码即可判断当前使用的引擎constisHermes()!!(globalasany).HermesInternal;console.log(Hermes 已启用,isHermes());// true 则生效也可以在 React 组件中显示import React from react; import { Text, View } from react-native; export default function App() { const isHermes !!(global as any).HermesInternal; return ( View TextJS 引擎{isHermes ? Hermes : 其他}/Text /View ); }五、Hermes 工作原理简析Hermes 的核心流程可以概括为构建阶段Metro Bundler 调用 Hermes 编译器hermesc将打包后的 JS bundle 转换为.hbcHermes Bytecode文件。运行阶段App 启动时直接加载.hbc字节码Hermes 虚拟机无需解析原始 JS直接执行省去了 Parse Compile 的开销。⚠️ Hermes不含 JIT即时编译器因此在长时间运行的计算密集型场景如复杂动画、大量数据处理下性能可能不如 V8/JSC 的 JIT 版本。它的优势在于启动速度和内存效率。六、常见问题 注意事项❗ 部分第三方原生库在 Hermes 下可能存在兼容性问题升级前请检查依赖库版本。Q启用后 App 崩溃怎么办先检查第三方库兼容性尤其是涉及 JS 语法的库如使用了 Proxy、WeakRef 等高级特性。可临时将hermesEnabled改回false排查。QHermes 支持哪些 JS 特性Hermes 支持 ES6 的绝大多数特性包括 async/await、可选链、空值合并等。完整支持列表可查阅 hermesengine.dev。Q调试时如何使用 Chrome DevToolsHermes 支持通过 Chrome DevTools 调试。开启 React Native Debugger 后选择打开 Hermes 调试器即可支持断点、内存快照等功能。七、总结Hermes 是 React Native 生态中一个重要的性能提升工具尤其适合面向中低端设备的移动应用。其 AOT 字节码编译策略显著降低了 TTI同时减少了内存占用。对于大多数 React Native 0.70 项目开箱即用、无需额外配置。建议所有正式项目默认启用 Hermes并通过实际设备进行性能对比测试以评估收益。如果本文对你有帮助欢迎点赞收藏有问题欢迎在评论区留言交流

更多文章