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

MBH picture MBH · Jan 1, 2016 · Viewed 14.3k times · Source

In my buildType I see this:

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

I have some questions:

  1. Why there are two files?
  2. What is the difference between them?
  3. Where should I write my rules?

Answer

starkshang picture starkshang · Jan 1, 2016

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.

Please refer this: https://developer.android.com/studio/build/shrink-code

Meaning that you should add your custom proguard file into proguard-rules.pro,if you want to separate some rules to many files,you can do it and declare them after this:

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