React Native 升级版本至0.66的一些经验记录(Hermes与Realm)

React Native 升级版本至0.66的一些经验记录(Hermes与Realm)_第1张图片

 升级过程的话,官方有一个WEB端的工具可以提示你修改哪些内容。但是我是从一个较老的0.59.8(大约是19年5月发布的版本)的项目开始升级。并且项目中牵扯的三方库也不少,在之前的一次尝试按照官方指引升级0.65的过程中失败,一路解报错看不到头。因为时间问题那一次升级也暂时搁置了。

随时react native 0.66的发布hermes 引擎升级到了0.9.0版本,这还是非常令人激动的。

我最终的升级方案是重新建了0.66的工程 ,再将原来的业务代码全部迁移进去耗时还是比较多的。

注意开启hermes引擎,需要在build.gradle(:app)文件中开启,注意修改后clean+rebuild

project.ext.react = [
    enableHermes: true,  // clean and rebuild if changing
]

这里主要记录遇到一个realm库的问题,在开启hermes后,使用realm正式版本编译会提示

React Native 升级版本至0.66的一些经验记录(Hermes与Realm)_第2张图片

去到realm-js的github查看问题发现这个问题从19年0.60.2开始hermes引擎就存在了,一直还未出稳定版本,只有alpha版本。当然还有替代方案,可以换成watermelonDB。

React Native 升级版本至0.66的一些经验记录(Hermes与Realm)_第3张图片

我测试了 v10.20.0-alpha.1的版本,

(https://github.com/realm/realm-js/releases/tag/v10.20.0-alpha.1)
并开启hermes后运行程序,帧率会比之前理想(使用Perf Monitor对比观察)。

Hermes提升的线程性能目前还在测试,测试了打包后的android apk包体积,效果喜人。

React Native 升级版本至0.66的一些经验记录(Hermes与Realm)_第4张图片

APK包体积是原先的65%。 

2021-12-3更新:

测试了一个5000W次的FOR循环,实际结果发现 开启HERMES引擎后耗时居然远大于不开启时。

开启后耗时3542ms(截图仅截图一次,实际测了5,6次 均在3000ms以上)

未开启耗时300ms左右 

React Native 升级版本至0.66的一些经验记录(Hermes与Realm)_第5张图片

 

你可能感兴趣的:(react,native,android,android,react,native)