12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- -optimizationpasses 5
- -dontusemixedcaseclassnames
- -dontskipnonpubliclibraryclasses
- -verbose
- -dontskipnonpubliclibraryclassmembers
- -dontpreverify
- -keepattributes *Annotation*,InnerClasses
- -keepattributes Signature
- #-keepattributes SourceFile,LineNumberTable
- -optimizations !code/simplification/cast,!field/*,!class/merging/*
- # 保留我们使用的四大组件,自定义的Application等等这些类不被混淆
- # 因为这些子类都有可能被外部调用
- -keep public class * extends android.content.ContentProvider
- -keep public class * extends android.view.View
- # 保留继承的
- -keep public class * extends android.support.v4.**
- -keep public class * extends android.support.v7.**
- -keep public class * extends android.support.annotation.**
- -keep public class * extends androidx.**
- -keep class android.support.** {*;}
- # 保留本地native方法不被混淆
- -keepclasseswithmembernames class * {
- native <methods>;
- }
- # 保留R下面的资源
- -keep class **.R$* {
- *;
- }
- # 保留我们自定义控件(继承自View)不被混淆
- -keep public class * extends android.view.View{
- *** get*();
- void set*(***);
- public <init>(android.content.Context);
- public <init>(android.content.Context, android.util.AttributeSet);
- public <init>(android.content.Context, android.util.AttributeSet, int);
- }
- # 保留Parcelable序列化类不被混淆
- -keep class * implements android.os.Parcelable {
- public static final android.os.Parcelable$Creator *;
- }
- # 保留Serializable序列化的类不被混淆
- -keepclassmembers class * implements java.io.Serializable {
- static final long serialVersionUID;
- private static final java.io.ObjectStreamField[] serialPersistentFields;
- !static !transient <fields>;
- !private <fields>;
- !private <methods>;
- private void writeObject(java.io.ObjectOutputStream);
- private void readObject(java.io.ObjectInputStream);
- java.lang.Object writeReplace();
- java.lang.Object readResolve();
- }
- # 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
- -keepclassmembers class * {
- void *(**On*Event);
- void *(**On*Listener);
- }
- # 移除Log类打印各个等级日志的代码,打正式包的时候可以做为禁log使用,这里可以作为禁止log打印的功能使用
- # 记得proguard-android.txt中一定不要加-dontoptimize才起作用
- # 另外的一种实现方案是通过BuildConfig.DEBUG的变量来控制
- -assumenosideeffects class android.util.Log {
- public static int v(...);
- public static int i(...);
- public static int w(...);
- public static int d(...);
- public static int e(...);
- }
- # Gson
- -keep class sun.misc.Unsafe* { *; }
- -keep class com.google.gson.stream.** { *; }
- -keep class com.test.risk.app.RiskManage{*;}
- -keep class com.test.risk.app.RiskListener{*;}
|