In my buildType
I see this:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
I have some questions:
- Why there are two files?
- What is the difference between them?
- Where should I write my rules?
The
getDefaultProguardFile('proguard-android.txt')
method obtains
the default ProGuard settings from the Android SDKtools/proguard/
folder. Theproguard-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 theproguard-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'
Answer:
The getDefaultProguardFile('proguard-android.txt')
will retrieve the ProGuard settings that are stored in the Android SDK
in tools/proguard
The proguard-rules.pro
is a file that is located at the root of the module. The purpose is to allow you to add custom rules (ProGuard) that are specific to the module.
For more Information
Tags: androidandroid