最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React?Native采用Hermes熱更新打包方案詳解

 更新時間:2022年05月18日 15:25:30   作者:xiangzhihong8  
這篇文章主要介紹了React?Native采用Hermes熱更新打包實戰(zhàn),在傳統(tǒng)的熱更新方案中,我們實現(xiàn)熱更新需要借助code-push開源方案,包括熱更新包的發(fā)布兩種方式詳解,感興趣的朋友一起看看吧

1, 背景

如果我們打開RN的Android源碼,在build.gradle中回看到這樣一段代碼。

  if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }

此段代碼的含義是,如果開啟了就采用新的hermes,如果未開啟則采用老的jsc加載引擎。Hermes 是專門針對 React Native 應(yīng)用而優(yōu)化的全新開源 JavaScript 引擎。對于很多應(yīng)用來說,啟用 Hermes 引擎可以優(yōu)化啟動時間,減少內(nèi)存占用以及空間占用。

2,熱更新傳統(tǒng)方案

在傳統(tǒng)的熱更新方案中,我們實現(xiàn)熱更新需要借助code-push開源方案,熱更新包的發(fā)布有兩種方式:

  • code-push release-react:打bundle并自動上傳
  • code-push release:需先打bundle,再通過該命令上傳

如果采用code-push release-reactapp熱更新后,殺掉進程重新進入,app首屏加載的時候速度會很慢,甚至可能出現(xiàn)白屏。這是因為生成的bundle只是通過babel編譯轉(zhuǎn)碼,然后經(jīng)過js壓縮和削減,代碼的執(zhí)行效率并不高。

而開啟Hermes引擎后,可以執(zhí)行純文本的 JS 代碼,效率比替換js引擎前更低,執(zhí)行效率也更高。

3,使用Hermes打包

首先,我們執(zhí)行react-native bundle命令進行打包,比如。

react-native bundle --platform android --entry-file index.android.js --bundle-output ./bundles/index.android.bundle --assets-dest ./bundles --dev false

接下來,我們需要將bundle轉(zhuǎn)成字節(jié)碼。轉(zhuǎn)化前,我們需要先下載hermes-engine。

npm i hermes-engine

接著,執(zhí)行如下命令將bundle轉(zhuǎn)換成字節(jié)碼

 cd node_modules/hermes-engine/oxs-bin
 ./hermesc -emit-binary -out index.android.bundle.hbc /Users/xxxx/work/react-native/app/bundles/index.android.bundle

將之前bundle目錄下的index.android.bundle刪掉,將當(dāng)前的index.android.bundle.hbc重命名為index.android.bundle,再移動到之前bundle目錄下。最后,使用下面的命令執(zhí)行 bundle熱更新包的發(fā)布。

code-push release AndroidAppNamexx ./bundles 1.0.0 --d Staging --des "描述" --m true

使用這種方式后,下次有熱更新的時候,加載的速度比之前也有明顯的提升,特別是bundle包內(nèi)容比較大的時候。

到此這篇關(guān)于React Native采用Hermes熱更新打包方案詳解的文章就介紹到這了,更多相關(guān)React Native熱更新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React文件名和目錄規(guī)范最佳實踐記錄(總結(jié)篇)

    React文件名和目錄規(guī)范最佳實踐記錄(總結(jié)篇)

    React在使用時非常靈活,如果沒有一個規(guī)范約束項目,在開發(fā)過程中會非常混亂,本文將介紹幾個優(yōu)秀的規(guī)范,介紹文件名和目錄前,需要先簡述一下幾種通用的類型,用來區(qū)分文件的功能,感興趣的朋友一起看看吧
    2022-05-05
  • React中useState的使用方法及注意事項

    React中useState的使用方法及注意事項

    useState通過在函數(shù)組件里調(diào)用它來給組件添加一些內(nèi)部state,下面這篇文章主要給大家介紹了關(guān)于React中useState的使用方法及注意事項的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Redux使用方法和基本原理解讀

    Redux使用方法和基本原理解讀

    這篇文章主要介紹了Redux使用方法和基本原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • react+ts實現(xiàn)簡單jira項目的最佳實踐記錄

    react+ts實現(xiàn)簡單jira項目的最佳實踐記錄

    這篇文章主要介紹了react+ts實現(xiàn)簡單jira項目,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • React精髓!一篇全概括小結(jié)(急速)

    React精髓!一篇全概括小結(jié)(急速)

    這篇文章主要介紹了React精髓!一篇全概括小結(jié)(急速),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • antd踩坑之javascriptEnabled配置方式

    antd踩坑之javascriptEnabled配置方式

    這篇文章主要介紹了antd踩坑之javascriptEnabled配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 使用webpack5從0到1搭建一個react項目的實現(xiàn)步驟

    使用webpack5從0到1搭建一個react項目的實現(xiàn)步驟

    這篇文章主要介紹了使用webpack5從0到1搭建一個react項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • ReactDOM 隱藏特性詳解

    ReactDOM 隱藏特性詳解

    這篇文章主要為大家介紹了ReactDOM 隱藏特性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 詳解Stack?Navigator中使用自定義的Render?Callback

    詳解Stack?Navigator中使用自定義的Render?Callback

    這篇文章主要為大家介紹了Stack?Navigator中使用自定義的Render?Callback使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 深入理解React Native原生模塊與JS模塊通信的幾種方式

    深入理解React Native原生模塊與JS模塊通信的幾種方式

    本篇文章主要介紹了深入理解React Native原生模塊與JS模塊通信的幾種方式,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07

最新評論

福安市| 合川市| 邵东县| 五常市| 玛沁县| 上高县| 马尔康县| 加查县| 高唐县| 临泽县| 许昌市| 盐源县| 横山县| 望都县| 巨野县| 府谷县| 灵川县| 象州县| 潮安县| 义马市| 淮安市| 南京市| 杨浦区| 天祝| 永仁县| 百色市| 博兴县| 天台县| 广元市| 巫溪县| 宣化县| 南川市| 五莲县| 丁青县| 乌鲁木齐市| 金川县| 抚州市| 驻马店市| 雷山县| 额尔古纳市| 西丰县|