React Native开启Hermes引擎后应用体积增大如何进行包体积优化
React Native 开启Hermes引擎后包体积优化方案
开启Hermes后出现1~2M的包体积增量属于正常现象,增量主要来自内置的Hermes运行时库和预编译的JS字节码文件,可通过以下方案缩小体积:
- 移除不必要的架构支持
国内应用场景下只需适配armeabi-v7a和arm64-v8a两个ARM架构即可,在android/app/build.gradle中配置abiFilters,剔除x86、x86_64架构的相关so文件,可直接减少对应架构的Hermes库体积,配置示例:android { defaultConfig { ndk { abiFilters "armeabi-v7a", "arm64-v8a" } } } - 开启Hermes字节码优化
RN 0.66及以上版本支持配置Hermes编译参数,添加-O参数可对生成的字节码执行压缩优化,同时不影响正常运行和错误堆栈定位,配置示例:project.ext.react = [ enableHermes: true, hermesFlags: ["-O", "-output-source-map"] ] - 开启全量代码与资源压缩
Android打Release包时开启代码混淆和资源压缩,可同时压缩Java层代码、未使用资源文件,间接降低整体包体积,配置示例:android { buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } } - iOS端按需构建
iOS上架后App Store会自动按设备架构拆分包,用户下载时只会获取对应设备的架构文件,本地通用测试包的体积增量无需额外处理,测试阶段也可指定单一架构构建减少测试包体积。 - 清理多余调试产物
检查自定义构建流程,确保Release包未携带Hermes调试符号、调试工具组件等多余产物,RN官方默认构建脚本会自动过滤这类文件,无需额外配置。
内容的提问来源于stack exchange,提问作者Shubham Dhumal
相关产品推荐
相关产品推荐

