【问题标题】:Use Proguard only to disable logging and for shrinking resources仅使用 Proguard 来禁用日志记录和缩减资源
【发布时间】:2015-12-24 09:13:27
【问题描述】:

build.gradle:

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.SginConfig
        }
}

我不希望 Proguard 优化或混淆我的代码,因为这会给我带来很多麻烦。我只想删除日志调用并启用缩减未使用资源。

proguard-rules.pro:

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}

仅当我将 getDefaultProguardFile 从 ('proguard-android.txt') 设置为 ('proguard-android-optimize.txt') 时,将上面的代码添加到 proguard-rules.pro 才有效

但通过将其设置为 proguard-android-optimize.txt 将启用优化标志,这在我的情况下是不想要的。

那么,如果 Proguard 不对我的代码进行任何缩小或优化,我该如何禁用日志记录和缩减资源呢?

【问题讨论】:

  • 你不能。 minifyingoptimizations 的一部分。 assumenosideeffects 是其中之一。

标签: android android-gradle-plugin proguard android-proguard


【解决方案1】:

您应该能够通过仅启用 assumenosideeffects 所依赖的特定 Proguard 优化来做到这一点。它依赖的两个是:

  • code/removal/simple:根据简单的控制流分析删除死代码。
  • code/removal/advanced:根据控制流分析和数据流分析去除死代码。

您可以阅读更多关于不同优化选项的信息here。所以这样的事情应该可以工作:

proguard-rules.pro

-optimizations code/removal/simple,code/removal/advanced
-dontobfuscate
-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}

build.gradle

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.SginConfig
        }
}

【讨论】:

    【解决方案2】:

    我认为您仍然可以尝试在您的 proguard 配置文件中使用 -dontobfuscatedontshrink 之类的选项。这些选项不会缩小和混淆代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 2018-07-17
      • 2011-06-22
      • 2015-04-21
      • 2015-02-01
      • 2012-09-21
      相关资源
      最近更新 更多