如何减小React-Native Android应用程序的大小

6

我为我的React Native安卓应用编写的代码只有12KB,但生成的包大小为7.9MB。我该如何减小包的大小?

根据React Native的文档,我已经在文件app_root/android/app/proguard-rules.pro上启用了ProGuard,但是包的大小没有减小。

...
android {
    ...
    buildTypes {
        release {
            ...
            minifyEnabled true
        }
    }
}
...

这个问题有解决方案吗?

minifyEnabled false 是什么意思? - IntelliJ Amiya
默认情况下是false,但这并不起作用。 - Praveen Prasad
现在的大小是30MB,对于不同的架构分别为9MB。 - Vinil Prabhu
4个回答

6

React Native应用的APK文件包含x86和ARM的JSCore二进制文件。如果你不需要x86版本,可以将文件大小减少到3-4MB。

1)在你的app/build.gradle中设置:

def enableSeparateBuildPerCPUArchitecture = true

2)从abiFilters中删除x86

这有助于将大小从7.8 MB减小到4.5 MB。


2
如何从abiFilters中移除x86? - Guy
我认为在android.defaultConfig.ndk文件中的行abiFilters "armeabi-v7a", "x86"应该简单地更改为abiFilters "armeabi-v7a" - oldwizard

3
Android设备支持两种主要的设备架构,即armebix86。默认情况下,RN将这两种架构的本地库构建到同一个apk中。
打开android/app/build.gradle:
设置def enableProguardInReleaseBuilds = true,这将启用Progaurd来压缩Java字节码。这会稍微减小应用程序的大小。
还有,
设置def enableSeparateBuildPerCPUArchitecture = true
在android/app/build/outputs/apk/中检查 - 您将收到两个apk文件,适用于armeabi和x86,大约是原始apk大小的一半。

很好的回答。但有一个问题...是否有一个概述,列出哪些设备支持x86和哪些支持armeabi? - suther

2

有几种技术可以减小您的APK大小:

  1. 按架构分割应用程序,您可以按照一系列知名的架构来分割您的APK:armeabi-v7a、x86、arm64-v8a、x86_64

    如果您要分发应用程序,使用Play商店是一个不错的选择来处理Android应用捆绑包。

  2. 启用Proguard将导致APK更小。

  3. 优化图像资源,如果有机会,请尽可能使用SVG资源。

在React-Native 0.62中启用新的JavaScript引擎会导致最终APK大小的变化,该引擎可以使本地库的大小减少近40% Hermes引擎

下面这些数据来自于Hermes引擎,并提到了APK大小的减小。 enter image description here


1
如果您能提供关于您最后一句话的文档和资源,我将不胜感激...(RN.62) - Iman Salehi

0
release {
    signingConfig signingConfigs.debug
    minifyEnabled enableProguardInReleaseBuilds
    proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    shrinkResources true
    ndk { 
        abiFilters "x86", "armeabi-v7a" //this will help you to shrink your app size in release build
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接