10

我已经完成了我的应用程序,有什么想法可以缩小 Android 和 Java 代码吗?它可以节省apk文件大小并提高性能吗?比较 unminify 源代码。

4

7 回答 7

24

在您的构建类型中启用 shrinkResources。请注意,它需要启用缩小。在您的 Gradle 文件中:

android {
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
        }
    }
}

接受的答案现在已经过时,所以如果其他人偶然发现这个问题,我会添加这个答案。

于 2014-12-10T10:06:47.663 回答
7

您可以为此使用 ProGuard。但是请注意,当涉及到崩溃报告等时,您的代码将被混淆,因此您需要保留混淆映射以便能够检索版本之间的堆栈跟踪等。但是,它确实可以更好地保护您免于对 .APK 进行逆向工程。

更多信息@Android 开发者:http: //developer.android.com/tools/help/proguard.html

于 2012-12-02T13:16:03.823 回答
4

分为三个部分

  1. 缩小启用
  2. 使用Proguard
  3. 收缩资源

如果要删除未使用的编码部分,则可以使用shrinkResources true

如果您不想使用默认文件,如dmp.txt, mapping.txt,等seeds.txtusage.txt那么您应该使用useProguard false

如果你想缩小你的代码和资源,那么你必须使用minifyEnabled true

有关更多详细信息,请参阅此链接

于 2017-03-17T13:00:40.300 回答
3

只需启用ProGuard,它会缩小和混淆您的应用程序。它包含在 Android 开发者工具中。

于 2012-12-02T13:15:34.453 回答
1

缩小在非脚本语言中几乎没有意义。您可以做的是使用 ProGuard 即删除未使用的代码部分,但由于 Android 应用程序中的主要臃肿通常是资源(可绘制对象),请确保您没有太多的资源或太大的大小。

于 2012-12-02T13:16:28.930 回答
0

这对我有用,我禁用了即时运行

buildTypes {
        release {
            minifyEnabled true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

在 proguard-rules.pro

-ignorewarnings
-keep class * {
    public private *;
}
于 2017-09-25T16:07:39.003 回答
0

如果您不想优化代码,请使用 proguard-android.txt配置文件而不是proguard-android-optimize.txt. 如果要优化代码注意优化有一定的风险,比如并不是所有的优化都可以在所有版本的dalvik VM上运行良好。

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
于 2020-10-14T08:58:32.007 回答