| | |
| | | # If you keep the line number information, uncomment this to |
| | | # hide the original source file name. |
| | | #-renamesourcefileattribute SourceFile |
| | | -keepattributes SourceFile,LineNumberTable |
| | | -keepattributes Exceptions, Signature, InnerClasses |
| | | -keepclasseswithmembernames class * { # 保持native方法不被混淆 |
| | | native <methods>; |
| | | } |
| | | -keep class * implements Android.os.Parcelable { # 保持Parcelable不被混淆 |
| | | public static final Android.os.Parcelable$Creator *; |
| | | } |
| | | -keepclassmembers enum * { |
| | | public static **[] values(); |
| | | public static ** valueOf(java.lang.String); |
| | | } |
| | | -keepattributes *Annotation* #保持注解 |
| | | #---------------------------------默认保留区--------------------------------- |
| | | -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.BroadcastReceiver |
| | | -keep public class * extends android.content.ContentProvider |
| | | -keep public class * extends android.app.backup.BackupAgentHelper |
| | | -keep public class * extends android.preference.Preference |
| | | -keep public class * extends android.view.View |
| | | -keep public class com.android.vending.licensing.ILicensingService |
| | | -keep class android.support.** {*;} |
| | | |
| | | -keep class androidx.room.** { *; } |
| | | -keep @androidx.room.** class * |
| | | -keep interface androidx.room.** { *; } |
| | | -keepclasseswithmembernames class * { |
| | | native <methods>; |
| | | } |
| | | -keepclassmembers class * extends android.app.Activity{ |
| | | public void *(android.view.View); |
| | | } |
| | | -keepclassmembers enum * { |
| | | public static **[] values(); |
| | | public static ** valueOf(java.lang.String); |
| | | } |
| | | -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); |
| | | } |
| | | -keepclasseswithmembers class * { |
| | | public <init>(android.content.Context, android.util.AttributeSet); |
| | | public <init>(android.content.Context, android.util.AttributeSet, int); |
| | | } |
| | | -keep class * implements android.os.Parcelable { |
| | | public static final android.os.Parcelable$Creator *; |
| | | } |
| | | -keepclassmembers class * implements java.io.Serializable { |
| | | static final long serialVersionUID; |
| | | 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 **.R$* { |
| | | *; |
| | | } |
| | | -keepclassmembers class * { |
| | | void *(**On*Event); |
| | | } |
| | | # 移除日志语句 |
| | | -assumenosideeffects class android.util.Log { |
| | | public static *** d(...); |
| | | # public static *** v(...); |
| | | # public static *** i(...); |
| | | # public static *** w(...); |
| | | # public static *** e(...); |
| | | } |
| | | #---------------------------------------------------------------------------- |
| | | -keep public class * extends android.view.View { |
| | | } |
| | | -keep class **.R$* {*;} |
| | | |
| | | #okhttp |
| | | -dontwarn okhttp3.** |
| | | -keep class okhttp3.**{*;} |
| | | -keep interface okhttp3.**{*;} |
| | | |
| | | #rxjava |
| | | -keep public class io.reactivex.android.**{*;} |
| | | -keep public class io.reactivex.**{*;} |
| | | -keep public class rx.android.**{*;} |
| | | -keep public class rx.**{*;} |
| | | -keep public class javax.annotation.**{*;} |
| | | -keep public class javax.inject.**{*;} |
| | | -keep class com.google.gson.** { *; } |
| | | #glide |
| | | -keep public class com.bumptech.glide.**{*;} |
| | | -keep public class com.luck.picture.lib.**{*;} |
| | | -keep public class androidx.**{*;} |
| | | |
| | | -keep public class com.bumptech.**{*;} |
| | | -keep public class com.scwang.**{*;} |
| | | -keep public class kotlin.**{*;} |
| | | -keep public class retrofit2.**{*;} |
| | | -keep public class okio.**{*;} |
| | | -keep public class com.google.**{*;} |
| | | |
| | | |
| | | # 若Android API 高于27添加以下(不需要/): |
| | | |
| | | -dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder |
| | | # for DexGuard only |
| | | #-keep resource xmlelements manifest/application/meta-data@value=GlideModule |
| | | -keep class com.xuexiang.xupdate.entity.** { *; } |
| | | |
| | | # Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo: |
| | | -keep class com.xuexiang.xupdatedemo.entity.** { *; } |
| | | |
| | | -keep class com.hjq.permissions.** {*;} |
| | | |
| | | #腾讯相关 |
| | | -keep class com.qq.** {*;} |
| | | -keep class com.tencent.** {*;} |
| | | #权限申请 |
| | | -keep class com.hjq.** {*;} |
| | | #列表相关 |
| | | -keep class com.scwang.** {*;} |
| | | #其他 |
| | | -keep class com.contrarywind.** {*;} |
| | | -keep class com.bigkoo.** {*;} |
| | | -keep class org.** {*;} |
| | | #当前模块 |
| | | -keep class com.dayu.qiheonlinelibrary.view.** {*;} |
| | | -keep class com.dayu.qiheonlinelibrary.activity.** {*;} |
| | | -keep class com.dayu.qiheonlinelibrary.card.** {*;} |
| | | -keep class com.dayu.qiheonlinelibrary.dbBean.** {*;} |