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'
}
}
我有一些问题:
- 为什么有两个文件?
- 它们有什么区别?
- 我应该在哪里写我的规则?
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)。
在我的 buildType
中,我看到了这个:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
我有一些问题:
- 为什么有两个文件?
- 它们有什么区别?
- 我应该在哪里写我的规则?
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.
请参考: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)。