返回

React Native 引擎大战:Hermes 如何碾压 JSC?

前端

作为一名技术狂热分子,我一向着迷于探索新兴技术及其对行业格局的潜在影响。今天,我将把目光投向 React Native 领域,探讨 Hermes 引擎的崛起及其对现有 JSC 引擎的颠覆性影响。

Hermes 的崛起

Hermes 是 Meta(前身为 Facebook)开发的专门针对 React Native 应用优化的 JavaScript 引擎。与传统 JSC 引擎相比,它具有显着的优势,包括更快的启动时间、更流畅的性能以及更低的内存消耗。

JSC 的局限性

另一方面,JSC(JavaScriptCore)是苹果开发的 JavaScript 引擎,最初设计用于 Safari 浏览器。虽然它在 Web 应用程序中表现出色,但它在 React Native 环境中的表现却不如人意。

Hermes 的优势

以下是一些使 Hermes 成为 React Native 应用的首选引擎的关键优势:

  • 更快的启动时间: Hermes 使用Ahead-of-Time(AOT)编译,可显着减少应用程序启动时间。
  • 更流畅的性能: Hermes 经过优化,可在动画、滚动和用户交互方面提供更流畅的体验。
  • 更低的内存消耗: Hermes 专为移动设备设计,其轻量级设计可降低内存使用量并改善电池寿命。

启用 Hermes

在 React Native 0.70.0 及更高版本中,Hermes 已默认启用。但是,对于较旧版本的 React Native,可以使用以下步骤手动启用它:

  1. app/build.gradle 文件中添加以下代码:
android {
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }
    }
}
dependencies {
    implementation 'com.facebook.hermes:hermes-engine:0.9.0'
}
  1. MainApplication.java 文件中添加以下代码:
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
...
@Override
protected ReactNativeHost createReactNativeHost() {
    return new ReactNativeHost(this) {
        @Override
        protected ReactNativeExecutor.Factory getJSMainExecutorFactory() {
            return new HermesExecutorFactory();
        }
    };
}

通过遵循这些步骤,开发人员可以解锁 Hermes 的强大功能,从而为他们的 React Native 应用程序带来显着的性能提升。

结论

随着 Hermes 的兴起,React Native 应用程序的性能和用户体验已达到一个新的高度。与传统的 JSC 引擎相比,Hermes 的优势显而易见,包括更快的启动时间、更流畅的性能和更低的内存消耗。开发人员应拥抱 Hermes,充分利用其优势,为用户提供无缝且令人愉悦的移动体验。