#指定代码的压缩级别
-优化过程5
#不要在包名称中混合大小写
-dontusemixedcaseclassnames
#不要忽略非公共库类
- dontskipnonpubliclibraryclasses
#不优化/优化输入的类文件
- dont最佳化
#事前检查
-dontpreverify
#混淆时是否记录
-verbose
#混淆时采用的算法
-优化! code/simplification/arithmetic! field/*, class/merging/*
#忽略警告
-ignorewarning
#保护注释
-keepattributes *Annotation*
#保护反射的普通调用
-keepattributes Signature
-keepattributes EnclosingMethod
#不混淆哪个班
- keep public class * extends Android.app.fragment
- keep public class * extends Android.app.activity
- keep public class * extends Android.app.application
- keep public class * extends Android.app.service
- keep public class * extends Android.content.broadcast receiver
- keep public class * extends Android.content.content provider
- keep public class * extends Android.app.backup.backupagenthelper
- keep public class * extends Android.preference.preference
- keeppublicclasscom.Android.vending.licensing.ilicensingservice
#不要混淆所有View的子类及其子类的get、set方法
- keep public class * extends Android.view.view {
公共(Android.content.context );
公共(Android.content.context,android.util.AttributeSet );
Public(Android.content.context,android.util.AttributeSet,int );
公共语音集* (…);
公共* * *获取* ();
}
#指定不要混淆所有的JNI方法
- keepclasseswithmembernamesclass * {
空;
}
Activity参数类型不会混淆View的所有方法
- keepclassmembersclass * extends Android.app.activity {
Ublicvoid*(Android.view.view );
}
不要混淆Parcelable及其子类和Creator成员变量
- keep class * implements Android.OS.parcelable {
publicstaticfinalandroid.OS.parcelable $ creator *;
}
不混淆可串行化接口
- keepnamesclass * implements Java.io.serializable
不要混淆可序列化接口子类中指定的部分成员变量和方法
- keepclassmembersclass * implements Java.io.serializable {
staticfinallongserialversionuid;
privatestaticfinaljava.io.objectstreamfield [ ] serialpersistentfields;
! 静态! 传输
! 私有;
! 私有;
privatevoidwriteobject (Java.io.object output stream;
privatevoidreadobject (Java.io.object inputstream;
java.lang.Object writeReplace (;
java.lang.Object readResolve (;
}
请勿混淆指定Enum类型的方法。 混淆报告的话
建议直接使用#上的- keepclassmembersclass * implements Java.io.serializable
#-keepclassmembers enum * {
# public static **[] values (;
# public static * * value of (Java.lang.string );
() )是
#不要混淆类r及其所有内部静态类的所有静态变量字段
-keepclassmembers class **.R$* {
公共静态;
}
如果有人使用Gson分析包,则直接添加以下行即可成功混淆: 否则,报告错误。
-keep class sun.misc.Unsafe { *; }
- keepclasscom.Google.gson.examples.Android.model.* * { *; }
如果有使用WebView的JS调用接口,则必须添加以下规则:
- keepclassmembersclassfqcn.of.JavaScript.interface.for.webview {
公共*;
}
####记录生成的记录数据,在接地构建时向本项目根输出####
#apk包中所有class的内部结构
-dump class_files.txt
#未混淆的类和成员
-printseeds seeds.txt
列出从apk中删除的代码
-printusage unused.txt
#混淆前后的映射
-printmapping mapping.txt
####记录生成的记录数据,在接地构建时向本项目根输出####
####项目特殊处理代码# # #
#银联
#保护第三方jar包(如果配置了Android Studio,则会报告错误) )。
#-libraryjarslibs/uppayassistex.jar
#忽略类警告
-dontwarn com.unionpay.**
#不要混淆类和成员变量
-keep class com.unionpay.** { *; }
#友爱
-keep class com.umeng.**{ *; }
#腾讯
-keep class com.tencent.**{ *; }
#支付宝
-keep class com.alipay.** { *; }
-dontwarn android.support.**
-dontwarn com.flurry.**
-dontwarn com.paypal.**
-dontwarn org .优雅的鞋垫. **
- dontwarnorg.Android.agoo.ut.impl.* *
#结束