Android 如何使用Proguard缩小颤振应用程序?

Android 如何使用Proguard缩小颤振应用程序?,android,dart,flutter,proguard,minify,Android,Dart,Flutter,Proguard,Minify,我已经做了一个颤振应用程序。发布的apk大约为14MB。我搜索了一些方法来缩小它,并发现了以下问题: 但我的问题是,我如何才能了解我在步骤1中使用的所有附加库?是否有任何命令可以了解它们,或者只是我添加到pubspec.yaml中的所有依赖项 我需要如何在这个文件/android/app/proguard rules.pro中实现它们 如果您使用的是firebase,请参阅 接下来,您需要考虑 PUBSPEC.YAML中的依赖项。您可以立即忽略任何纯DART包-您只是在寻找插件。在这些插件中,您

我已经做了一个颤振应用程序。发布的apk大约为14MB。我搜索了一些方法来缩小它,并发现了以下问题:

但我的问题是,我如何才能了解我在步骤1中使用的所有附加库?是否有任何命令可以了解它们,或者只是我添加到
pubspec.yaml
中的所有依赖项


我需要如何在这个文件
/android/app/proguard rules.pro
中实现它们

如果您使用的是firebase,请参阅

接下来,您需要考虑<代码> PUBSPEC.YAML中的依赖项。您可以立即忽略任何纯DART包-您只是在寻找插件。在这些插件中,您只对那些利用现有库的插件感兴趣。您可能已经将这些添加到gradle。这些都是你需要保护的名称缩短

最简单的方法可能只是尝试一下,看看在
NoClassDefFoundError
中会弹出什么包名,然后不断迭代添加它们


正如雷米所说,你的收益将是微乎其微的,所以它真的值得你这么做。在即将发布的版本中,您应该会看到APK大小的一些改进。

首先,我们将在构建文件中启用收缩和模糊处理。找到
/android/app/
文件夹中的
build.gradle
文件,并以粗体添加行

android {

    ...

    buildTypes {

        release {

            signingConfig signingConfigs.debug     

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

        }
    }
}
接下来,我们将创建一个配置,它将保留整个颤振包装器代码。创建
/android/app/proguard rules.pro
文件并插入其中:

#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

我怀疑职业后卫会做很多。Dart编译已使用树抖动。因此,除非您直接用Java编写代码(这是不可能的),否则胜利是微乎其微的。也许这个大小来自您的资产。这是可能的,但如果我知道需要添加哪些规则到proguard-rules.pro文件中,至少我可以尝试一下。可能的重复项您找到问题的答案了吗?如果是,请共享答案。不要将此行用于发布apk-->signingConfig signingConfigs.debug使用-->signingConfig signingConfigs.release