# Add project specific ProGuard rules here.
|
# You can control the set of applied configuration files using the
|
# proguardFiles setting in build.gradle.
|
#
|
# For more details, see
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
# If your project uses WebView with JS, uncomment the following
|
# and specify the fully qualified class name to the JavaScript interface
|
# class:
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
# public *;
|
#}
|
|
# Uncomment this to preserve the line number information for
|
# debugging stack traces.
|
#-keepattributes SourceFile,LineNumberTable
|
|
# 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.** {*;}
|
|
-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.** {*;}
|
|
# Room 数据库
|
-keep class * extends androidx.room.RoomDatabase
|
-keep class * extends androidx.room.Entity
|
-keep class * extends androidx.room.Dao
|
-keep @androidx.room.Entity class *
|
-keepclassmembers class * {
|
@androidx.room.* *;
|
}
|