React Native 0.70 版本发布,Hermes 成为默认引擎

4,256 阅读3分钟

image.png

经过近两个月的优化后,React Native发布了0.70版本,主要带来了如下的一些功能:

  • 新架构涉及的文档的更新;
  • Hermes 作为默认引擎
  • Codegen 新的统一配置
  • Android 库自动链接
  • 对 Android 构建的完整 CMake 支持
  • 其他亮点

1,New Architecture 的新文档

在过去的几个月里,Meta一直在努力为文档中的New Architecture部分增加更多的说明内容。在新增的内容中,开发者可以很容易的找到迁移指南、例子和教程,让你尽快的掌握新架构的内容。

同时,开发者还可以通过新的文档,深入了解为什么要提供一个New Architecture 和它的各个部分,因为这能更好的帮助开发者理解新 API 背后的原理。

2,Hermes 作为默认引擎

React Native 0.70 是第一个默认启用Hermes 的版本。这是 Hermes 团队和 React Native 团队合作的结果,Meta 将努力改进和微调 Hermes,使其性能更强,并提供社区高度要求的功能。

关于Hermes介绍,大家可以参考【Hermes将成为React Native默认的JS引擎】和【React Native新架构】的相关介绍。

3,Codegen 新的统一配置

在 0.70 版本中,引入了一种统一的方式来定义 iOS 和 Android 的 Codegen 规格。在之前的版本中,你必须把 Android 的配置放在一个单独的 build.gradle 文件中,现在你可以直接在 package.json 中定义它,比如。

  "codegenConfig": {
    "name": "CustomAnimationView",
    "type": "components",
    "jsSrcsDir": "./src",
    "android": {
      "javaPackageName": "com.custom.animation"
    }
  }

这一改进为库维护者在将其代码库迁移到New Architecture时提供了更一致的体验,效率和维护成本也得到了降低。

4,Android 自动链接

在0.70版本中,New Architecture的用户能够自动链接原生库,而不需要在他们的Android.mk 或 CMake 文件上做任何额外的配置。

同时,自动链接是React Native 开发体验的一个重要部分,它允许开发者使用用 yarn add 命令包含外部库,而无需额外处理CocoaPods或Gradle设置。

虽然自动链接功能在 iOS 上的 New Architecture 库运行良好,但在 Android 上还有一些差强人意。不过,在 0.70 版本中,我们针对Android环境进行了优化,最终缩小了这一差距,现在可以继续在你的项目中加入带有 yarn add 的库,它们会在任何架构上被正确链接。 

5,对 Android 构建的全面 CMake 支持

从 0.70 开始,用户现在可以使用 CMake 来配置他们的 Native 构建了。虽然不希望应用程序的用户直接编写 C++ 代码,但你仍然需要一个本地编译的入口。  

从现在开始,你可以使用 CMakeLists.txt 文件而不是 Android.mk 文件来处理你项目中任何与 Android/Native 相关的东西。

6,升级依赖

安装0.70 版本需要做如下升级:

  • 将 RN CLI 升级到 9.0.0 版本
  • 将 Android Gradle Plugin 升级到 7.2.1
  • 将 Gradle 升级到 7.5.1
  • 将 RCT-Folly 升级到 2021-07-22
  • 将 Metro 升级到 0.72
  • 将 SoLoader 升级到 0.10.4

参考链接:reactnative.dev/blog/2022/0…