ReactNative打離線包-android篇
離線包就是把RN和你寫的js圖片等資源都打包放入app,不需要走網路下載。
打包命令說明:
react-native bundle
Options:
--entry-file Path to the root JS file, either absolute or relative to JS root [required]
--platform Either "ios" or "android"
--transformer Specify a custom transformer to be used (absolute path) [default: "/Users/babytree-
mbp13/projects/xcodeProjects/AwesomeProject/node_modules/react-native/packager/transformer.js"]
--dev If false, warnings are disabled and the bundle is minified [default: true]
--prepack If true, the output bundle will use the Prepack format. [default: false]
--bridge-config File name of a a JSON export of __fbBatchedBridgeConfig. Used by Prepack. Ex.
./bridgeconfig.json
--bundle-output File name where to store the resulting bundle, ex. /tmp/groups.bundle [required]
--bundle-encoding Encoding the bundle should be written in
([https://nodejs.org/api/buffer.html#buffer_buffer).]
(https://nodejs.org/api/buffer.html#buffer_buffer).) [default: "utf8"]
--sourcemap-output File name where to store the sourcemap file for resulting bundle, ex.
/tmp/groups.map
--assets-dest Directory name where to store assets referenced in the bundle
--verbose Enables logging [default: false]
安卓打包步驟
1、在工程根目錄下執行打包命令,比如
react-native bundle --entry-file index.android.js --bundle-output ./android/app/src/main/assets/index.android.bundle --platform android --assets-dest ./android/app/src/main/res/ --dev false
其中--entry是入口js檔案,android系統就是index.android.js,ios系統就是index.ios.js,--bundle-output就是生成的bundle檔案路徑,--platform是平臺,--assets-dest是圖片資源的輸出目錄,這個在後面的圖片增量更新中會用到,--dev表示是否是開發版本,打正式版的安裝包時我們將其賦值為false。
請參考上面命令說明,根據自己的情況進行修改再執行。注意要先保證[./android/app/src/main/assets/]資料夾存在。
2、命令執行完生成如下資源
3、修改MainApplication檔案,設定BundleAssetName
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override protected boolean getUseDeveloperSupport() { return BuildConfig.DEBUG; }
@Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage() ); }
@Nullable @Override protected String getBundleAssetName() { return "index.android.bundle"; }
};
4、通過Android Studio打包即可(也可通過命令打包)
生成的apk在 \android\app\build\outputs\apk
其他
To disable the developer menu for production builds:
For iOS open your project in Xcode and select Product → Scheme → Edit Scheme... (or press ⌘ + <). Next, select Run from the menu on the left and change the Build Configuration to Release.
For Android, by default, developer menu will be disabled in release builds done by gradle (e.g with gradle assembleRelease task). Although this behavior can be customized by passing proper value to ReactInstanceManager#setUseDeveloperSupport.
參考連結:https://segmentfault.com/a/1190000004192816
官方文件:http://facebook.github.io/react-native/docs/running-on-device-android.html#content
官方文件2:http://facebook.github.io/react-native/docs/signed-apk-android.html#content
相關文章
- ReactNative打離線包-ios篇ReactiOS
- RN精進筆記(六)RN打離線包篇筆記
- ReactNative工程修改Android包名ReactAndroid
- WPExpress78_update 離線包Express
- 【Android Build】高效批量打渠道包AndroidUI
- Android Studio module 打aar包Android
- android 離線下載Android
- Android APK打渠道包實施方案AndroidAPK
- vue-cli3打包後分離配置檔案Vue
- android sdk離線升級方法Android
- python離線安裝外部依賴包Python
- python(pip)包/模組:如何離線安裝?Python
- 區塊鏈錢包-android篇區塊鏈Android
- ReactNative呼叫Android原生模組ReactAndroid
- Android Studio使用離線GradleAndroidGradle
- ReactNative填坑之旅–Navigation篇ReactNavigation
- ReactNative原始碼篇:啟動流程React原始碼
- macOS monterey 12系統離線pkg安裝包Mac
- 谷歌瀏覽器下載離線安裝包谷歌瀏覽器
- Springboot 打jar包分離lib,配置檔案正確方式Spring BootJAR
- Android ReactNative資料互動AndroidReact
- Android Studio 3.1.1 打Jar包出現AGPBI異常AndroidJAR
- Android SDK4.0 離線安裝方法Android
- MacOS 13.0b2 離線系統安裝包Mac
- echarts 地圖 免費離線js,json包分享Echarts地圖JSON
- ReactNative原始碼篇:通訊機制React原始碼
- 區塊鏈錢包開發(Android篇)區塊鏈Android
- ReactNative專案打包(Android&&IOS)ReactAndroidiOS
- Android WebView 實現離線快取閱讀AndroidWebView快取
- MacOS 11-13.x離線安裝包 通用版Mac
- rhel9.2離線下載安裝包,並安裝
- ReactNative學習筆記四之動畫篇React筆記動畫
- MacOS 11.x-12.x完整離線安裝包 (新增Monterey)Mac
- 堅果雲for Android支援離線預覽office嗎?Android
- 純小白uni-app+Android Studio離線打包APPAndroid
- Maven專案打jar包MavenJAR
- 【手把手學習flutter】Flutter打Android包的基本配置和包體積優化策略FlutterAndroid優化
- KubeKey v3.1 釋出:快速自定義離線安裝包