【问题标题】:What is the difference between proguard-android.txt and proguard-rules.pro ? - Androidproguard-android.txt 和 proguard-rules.pro 有什么区别? - 安卓
【发布时间】:2016-04-05 21:06:50
【问题描述】:

在我的buildType 我看到了这个:

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

我有一些问题:

  1. 为什么有两个文件?
  2. 它们有什么区别?
  3. 我应该在哪里写我的规则?

【问题讨论】:

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


    【解决方案1】:

    getDefaultProguardFile('proguard-android.txt') 方法获取 Android SDK tools/proguard/ 的默认 ProGuard 设置 文件夹。 proguard-android-optimize.txt 文件也可在 此 Android SDK 文件夹具有相同的规则但经过优化 启用。 ProGuard 优化在字节码处执行分析 级别,内部和跨方法,以帮助您的应用程序更小并运行 快点。 Android Studio 在根目录下添加proguard-rules.pro 文件 的模块,因此您还可以轻松添加自定义 ProGuard 规则 特定于当前模块。

    请参考:https://developer.android.com/studio/build/shrink-code

    意思是你应该将你的自定义proguard文件添加到proguard-rules.pro,如果你想将一些规则分隔到许多文件中,你可以这样做并在此之后声明它们:

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

    【讨论】:

    • 如果你打开proguard-android.txt,你会发现如下信息:This file is no longer maintained and is not used by new (2.2+) versions of the # Android plugin for Gradle. Instead, the Android plugin for Gradle generates the # default rules at build time and stores them in the build directory.
    【解决方案2】:

    getDefaultProguardFile('proguard-android.txt') 将检索存储在 Android SDKtools/proguard 中的 ProGuard 设置

    proguard-rules.pro 是位于模块根目录的文件。目的是允许您添加特定于模块的自定义规则 (ProGuard)。

    了解更多Information

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2012-01-22
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      相关资源
      最近更新 更多