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

What is the difference between proguard-android.txt and proguard-rules.pro ? - Android

在我的 buildType 中,我看到了这个:

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

我有一些问题:

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

The getDefaultProguardFile('proguard-android.txt') method obtains the default ProGuard settings from the Android SDK tools/proguard/ folder. The proguard-android-optimize.txt file is also available in this Android SDK folder with the same rules but with optimizations enabled. ProGuard optimizations perform analysis at the bytecode level, inside and across methods to help make your app smaller and run faster. Android Studio adds the proguard-rules.pro file at the root of the module, so you can also easily add custom ProGuard rules specific to the current module.

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

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

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

getDefaultProguardFile('proguard-android.txt') 将在 tools/proguard

中检索存储在 Android SDK 中的 ProGuard 设置

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

更多Information