- keepclasseswithmembernames class * { native <methods>; }
保留某些子类不被混淆
1
- keep public class * extends android.app.Activity
保护在XML中设置onClick不被影响
1 2 3
- keepclassmembers class * extends android.app.Activity { public void *(android.view.View); }
保护Fragment - keep public class android.support.v4.app.Fragment.** {*;}
保留枚举不被混淆
1 2 3 4
- keepclassmembers enum * { public static **{} values(); public static ** valueOf(Java.lang.String); }
保留自定义控件不被混淆
1 2 3 4 5 6 7
- keep public class * extends android.view.View { *** get*(); void set*(***); public <init>(android.content.Context); public <init>(android.content.Context,android.util.ArrtibuteSet); public <init>(android.content.Context,android.util.ArrtibuteSet,int); }
保留Parcelable序列化不被混淆
1 2 3
- keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }
保留Serializable序列化类不被混淆
1 2 3 4 5 6 7 8
- keepclassemembers class * implements java.io.Serializable { static final long serialVersionID; 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(); }
保留R文件下的资源不被混淆
1
- keep class **.R${*;}
保留内部类不被混淆
1
- keep class com.example.app.ui.MainActivity$*{*;}
对WebView的处理
1 2 3 4 5 6 7
- keepclassmembers class * extends android.webkit.webViewClient { public void *(android.webkit.WebView,java.lang.String,android.graphics.Bitmap); public boolean *(android.webkit.WebView,java.lang.String); } - keepclassmembers class * extends android.webkit.webViewClient { public void *(android.webkit.webView,java.lang.String); }
对JavaScript
1 2 3
- keepclassemembers class com.example.app.MainActivity$JSInterface { <methods>; }
针对第三方库的混淆保护
1 2 3 4 5 6
- libraryjas libs/android-support-v4.jar - dontwarn android.support.v4.** - keep class android.support.v4.**{*;} - kepp interface android.support.v4.app.**{*;} - kepp public class * extends android.support.v4.** - keep public class * extends android.app.Fragment