proguard-android.txt和proguard-rules.pro有什么区别? - Android

时间:2016-01-01 06:40:47

标签: android android-gradle proguard android-proguard

在我的buildType中,我看到了这一点:

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

我有一些问题:

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

2 个答案:

答案 0 :(得分:30)

  

获取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'

答案 1 :(得分:3)

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

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

了解更多Information