You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何减小React Native生成的.apk安装包体积?

体积合理性说明

你当前拿到的27MB APK属于未做定制优化的React Native通用Release包的正常体积范围,如果是Debug包体积会更高。React Native默认构建的通用Release APK会默认包含4种主流CPU架构的原生运行库、完整JS运行时、框架核心代码,没有任何业务代码的初始项目通用包体积一般就在22-30MB区间,所以27MB是正常情况。

安装包体积优化方案
  • 拆分CPU架构包,取消通用包构建
    在android/app/build.gradle中开启ABI拆分配置,关闭通用包(universalApk)生成,单独为每种CPU架构输出对应APK。仅针对国内用户的话可以只保留armeabi-v7a和arm64-v8a两个架构,单架构包体积可以直接降到10-15MB区间。参考配置:
    android {
      defaultConfig {
        ndk {
          abiFilters "armeabi-v7a", "arm64-v8a"
        }
      }
      splits {
        abi {
          enable true
          reset()
          include "armeabi-v7a", "arm64-v8a"
          universalApk false
        }
      }
    }
    
  • 开启代码和资源压缩
    在Release构建配置中开启R8混淆和资源裁剪,删除未使用的原生代码、资源文件,可减少1-3MB体积。配置如下:
    android {
      buildTypes {
        release {
          minifyEnabled true
          shrinkResources true
          proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
        }
      }
    }
    
  • 启用Hermes JS引擎
    替换默认的JSC引擎为RN官方自研的Hermes轻量级JS引擎,可减少2-4MB体积,同时还能提升应用启动速度。开启方式为在android/app/build.gradle中设置:
    project.ext.react = [
      enableHermes: true
    ]
    
  • 裁剪冗余依赖和资源
    • 清理package.json中未使用的第三方依赖,避免冗余代码被打包进JS bundle
    • 用resConfigs配置指定需要保留的语言资源,例如仅保留中文可配置resConfigs "zh",删除其他语言的冗余资源
    • 删除项目中未使用的图片、音频等静态资源,用到的资源也提前做压缩处理
  • 裁剪RN内置模块
    移除RN默认内置但你当前项目未使用的模块,例如WebView、地理位置、蓝牙等模块,可进一步压缩1-2MB体积。

内容的提问来源于stack exchange,提问作者Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:54:02