buildTypes { debug { minifyEnabled false } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt') } } 

但是,当我生成“释放apk”,并在我安装后,应用程序运行速度减慢(滞后)..为什么这种情况发生与minify启用? 这是我的依赖:

 dependencies { compile '' compile '' compile '' compile '' compile 'com.jrummyapps:colorpicker:2.1.6' compile 'org.apache.commons:commons-lang3:3.4' compile '' compile '' compile project(':library') testCompile 'junit:junit:4.12' androidTestCompile '' androidTestCompile '' androidTestCompile '' } 


 # This is a configuration file for ProGuard. # -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose # Optimization is turned off by default. Dex does not like code run # through the ProGuard optimize and preverify steps (and performs some # of these optimizations on its own). -dontoptimize -dontpreverify # Note that if you want to enable optimization, you cannot just # include optimization flags in your own project configuration file; # instead you will need to point to the # "proguard-android-optimize.txt" file instead of this one from your # file. -keepattributes *Annotation* -keep public class -keep public class # For native methods, see -keepclasseswithmembernames class * { native <methods>; } # keep setters in Views so that animations can still work. # see -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } # We want to keep methods in Activity that could be used in the XML attribute onClick -keepclassmembers class * extends { public void *(android.view.View); } # For enumeration classes, see -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator CREATOR; } -keepclassmembers class **.R$* { public static <fields>; } # The support library contains references to newer platform versions. # Don't warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn** # Understand the @Keep support annotation. -keep class -keep class * {*;} -keepclasseswithmembers class * { <methods>; } -keepclasseswithmembers class * { <fields>; } -keepclasseswithmembers class * { <init>(...); } 


 -keep class com.mylibrary.** -keep interface com.mylibrary.** -keep enum com.mylibrary.** 


 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('', { exclude module: 'support-annotations' }) compile '' compile '' testCompile 'junit:junit:4.12' compile '' compile 'org.jetbrains:annotations-java5:15.0' } 

Solutions Collecting From Web of "ProGuard导致应用程序滞后"

尽pipeproguard-android.txt的注释指定了一些原因,但是我惊奇地看到禁止某些优化的标志,因为在创build新的Android项目时默认的自动生成的proguard-android.txt文件不包含这样的标志。 尝试删除以下行,看看是否有改进:

 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontoptimize -dontpreverify 



Java总是第一次运行缓慢。 因为它必须被加载和解释。 再次运行testing。 看看这个问题。


ProGuard在运行时不会导致应用程序滞后。 这可能是由于你的库包含在gradle文件中。

我强烈build议您使用Android Studio分析器来查看应用程序的行为。 通过这个我的意思是内存,CPU,networking等保存结果进行比较,然后尝试使用相同的应用程序版本与proguard更改。 性能打击来自proguard是不太可能的。 如果可能的话,将结果和您的观察结果传给进一步分析。 另外请注意,构buildtypes也有所不同,在debugging/发布版本中是否有不同的代码?