混淆配置详解
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable 保留原代码的行号信息
-
injars androidtest.jar【jar包所在地址】
-
outjars out【输出地址】
-
libraryjars 'D:\android-sdk-windows\platforms\android-9\android.jar' 【引用的库的jar,用于解析injars所指定的jar类】
-
optimizationpasses 5
-
dontusemixedcaseclassnames 【混淆时不会产生形形色色的类名 】
puzzle
-
dontskipnonpubliclibraryclasses 【指定不去忽略非公共的库类。 】
puzzle
-
dontpreverify 【不预校验】
-
verbose
-
optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 【优化】
puzzle
-
keep public class * extends android.app.Activity 【不进行混淆类名的类,保持其原类名和包名】
-
keep public abstract interface com.asqw.android.Listener{
public protected <methods>; 【所有public protected的方法名不进行混淆】
}
-
keep public class com.asqw.android{
public void Start(java.lang.String); 【对该方法不进行混淆】
}
-
keepclasseswithmembernames class * { 【对所有类的native方法名不进行混淆】
native <methods>;
}
-
keepclasseswithmembers class * { 【对所有类的指定方法的方法名不进行混淆】
public <init>(android.content.Context, android.util.AttributeSet);
}
-
keepclassmembers class * extends android.app.Activity {【对所有类的指定方法的方法名不进行混淆】
public void *(android.view.View);
}
-
keepclassmembers enum * {【对枚举类型enum的所有类的以下指定方法的方法名不进行混淆】
public static **[] values();
public static ** valueOf(java.lang.String);
}
-
keep class * implements android.os.Parcelable {【对实现了Parcelable接口的所有类的类名不进行混淆,对其成员变量为Parcelable$Creator类型的成员变量的变量名不进行混淆】
public static final android.os.Parcelable$Creator *;
}
-
keepclasseswithmembers class org.jboss.netty.util.internal.LinkedTransferQueue {【对指定类的指定变量的变量名不进行混淆】 volatile transient org.jboss.netty.util.internal.LinkedTransferQueue$Node head; volatile transient org.jboss.netty.util.internal.LinkedTransferQueue$Node tail; volatile transient int sweepVotes; }
-
keep public class com.unionpay.
** {
*; }【对com.unionpay包下所有的类都不进行混淆,即不混淆类名,也不混淆方法名和变量名】