Android studio 代码混淆配置
release {
minifyEnabled true //开启混淆配置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
//混淆配置文件
-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -ignorewarnings -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #第三方jar #-libraryjars libs/android-support-v4.jar #-libraryjars libs/libwebp.jar #-libraryjars libs/nineoldandroids-2.4.0.jar #-libraryjars libs/org.apache.http.legacy.jar #-libraryjars libs/umeng-analytics-v5.6.4.jar #-libraryjars libs/umeng-update-v2.7.0.jar #-libraryjars libs/xUtils-2.6.14.jar #-libraryjars libs/xUtils-3.1.14.jar -keep class com.lidroid.** { *; } #baidu 广告 -keep class com.baidu.** { public protected *; } ################### region for xUtils -keepattributes Signature,*Annotation* -keep public class org.xutils.** { public protected *; } -keep public interface org.xutils.** { public protected *; } -keepclassmembers class * extends org.xutils.** { public protected *; } -keepclassmembers @org.xutils.db.annotation.* class * {*;} -keepclassmembers @org.xutils.http.annotation.* class * {*;} -keepclassmembers class * { @org.xutils.view.annotation.Event <methods>; } #################### end region # Save the obfuscation mapping to a file, so you can de-obfuscate any stack traces later on. -printmapping bin/classes-processed.map # Reduce the size of the output some more. -repackageclasses '' -allowaccessmodification -renamesourcefileattribute SourceFile -keepattributes Exceptions,InnerClasses,Signature -keepattributes SourceFile,LineNumberTable -keepattributes *Annotation* # Preserve all fundamental application classes. -keep public class * extends android.support.v7.app.AppCompatActivity -keep public class * extends android.app.Activity -keep public class * extends android.app.Service -keep public class * extends android.app.Application -keep class * extends android.content.ContentProvider -keep public class * implements java.io.Serializable {*; } -keep public class com.google.vending.licensing.ILicensingService -keep public class com.android.vending.licensing.ILicensingService -dontnote com.android.vending.licensing.ILicensingService -keep class * extends com.xxx.xxx.BaseActivity -keep class android.support.v4.** {*;} -keep class android.support.v7.** { *; } -keep class com.nineoldandroids.** { *; } -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(...); public void get*(); } -keepclasseswithmembers class * { public <init>(android.content.Context); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * implements android.os.Parcelable { static android.os.Parcelable$Creator CREATOR; } -keepclassmembers class **.R$* { public static <fields>; } -keepclassmembers class * extends java.lang.Enum { public static **[] values(); public static ** valueOf(java.lang.String); } #gson -keep class org.json.** {*;} -keep class sun.misc.Unsafe { *; } -keep class com.google.gson.** { *; } -keepattributes Signature -keep public class * implements java.io.Serializable -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; public *; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -keep class * extends RelativeLayout -keep class ScreenHelpert -keep class org.apache.http.** { *; } -dontwarn org.apache.http.** -dontwarn android.net.** -dontwarn android.support.** -keep class com.umeng.** { *; } -dontwarn com.umeng.** -keep class com.umeng.fb.ui.ThreadView { } -keep public class android.net.http.SslError -dontwarn android.webkit.WebView -dontwarn android.net.http.SslError -dontwarn android.webkit.WebViewClient