Android Proguard不收缩试验APK
我正在使用Proguard收缩调试apk并测试apkAndroid Proguard不收缩试验APK,android,testing,proguard,android-proguard,Android,Testing,Proguard,Android Proguard,我正在使用Proguard收缩调试apk并测试apk buildTypes { debug { applicationIdSuffix ".debug" debuggable true signingConfig signingConfigs.debug minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'
buildTypes {
debug {
applicationIdSuffix ".debug"
debuggable true
signingConfig signingConfigs.debug
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testProguardFile 'proguard-test-rules.pro'
}
当我启用minify并运行集成测试时,debug apk方法计数会减少,但测试apk不会减少
我知道Proguard正在做一些事情,因为如果我在Proguard test rules.pro中没有正确的规则,我会看到警告,并且测试apk不会编译
发生了什么事?为什么我的测试apk没有缩小?仅供参考,以下是我的.pro文件:
proguard-rules.pro:
# general
-dontobfuscate
# for Retrofit2
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
# for RetroLambda
-dontwarn java.lang.invoke.*
# for Saripaar
-keep class com.mobsandgeeks.saripaar.** {*;}
-keep @com.mobsandgeeks.saripaar.annotation.ValidateUsing class * {*;}
# for OKIO
-dontwarn okio.**
# for RxJava
-dontwarn sun.misc.Unsafe
# for android.content.res classes
-dontwarn org.xmlpull.v1.**
# for Butterknife
-dontwarn rx.functions.Func1
proguard-test-rules.pro
-include proguard-rules.pro
-dontobfuscate
-dontwarn
-dontwarn org.hamcrest.**
-dontwarn android.test.**
-dontwarn android.support.test.**
-keep class android.support.test.** { *; }
-keep class junit.runner.** { *; }
-keep class junit.framework.** { *; }
-keep class org.jmock.core.** { *; }
-keep class org.easymock.** { *; }
-dontwarn com.fasterxml.jackson.databind.**
-dontwarn com.fasterxml.jackson.core.**
-dontwarn com.fasterxml.jackson.annotation.**
-dontwarn org.ietf.jgss.**
-dontwarn javax.xml.**
-dontwarn javax.swing.**
-dontwarn javax.lang.**
-dontwarn java.nio.**
-dontwarn java.lang.**
-dontwarn org.w3c.dom.traversal.**
-dontwarn org.eclipse.jetty.**
-dontwarn java.beans.**
-dontwarn org.slf4j.**
-dontwarn org.apache.http.**
ProGuard仅在以发布模式构建应用程序时运行,因此在以调试模式或测试模式构建应用程序时不必处理模糊代码。在调试模式或测试模式下构建不会调用ProGuard,因为这会使调试更加繁琐 ProGuard仅在以发布模式构建应用程序时运行,因此在以调试模式或测试模式构建应用程序时不必处理模糊代码。以调试模式或测试模式构建不会调用ProGuard,因为这会使调试更加繁琐 正如这里所解释的,这是一个过时的答案。此外,关于这一点的实际文档直接反驳了您的说法。“请注意,代码收缩会减慢构建时间,因此,如果可能的话,您应该避免在调试构建中使用它。”最后,正如我在问题中所说,Proguard在调试apk中工作良好,但在测试apk中工作不好。这是一个过时的答案,如下所述。此外,关于这一点的实际文档直接反驳了您的说法。“请注意,代码收缩会减慢构建时间,因此如果可能的话,您应该避免在调试构建中使用它。”最后,正如我在问题中所说,Proguard在调试apk中工作良好,但在测试apk中工作不好。您解决过这个问题吗?我在试图减少测试apk的方法计数时遇到了同样的问题。@roko不,这是我提出的问题:你解决过这个问题吗?我在尝试减少测试apk的方法计数时遇到了相同的问题。@roko否,这是我打开的问题: