Treader-open/app/proguard-rules.pro

117 lines
3.8 KiB
Prolog
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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
-optimizationpasses 5
-dontusemixedcaseclassnames
# 不混淆Annotation(保留注解)
-keepattributes *Annotation*,InnerClasses
# 避免混淆泛型
-keepattributes Signature
# 保留support下的所有类及其内部类
-keep class android.support.** {*;}
# 保留继承的support类
-keep public class * extends android.support.v4.**
-keep public class * extends android.support.v7.**
-keep public class * extends android.support.annotation.**
# 保留枚举类不被混淆
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# 保留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();
}
# 保留我们自定义控件继承自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);
}
# 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
-keepclassmembers class * {
void *(**On*Event);
void *(**On*Listener);
}
# webView的混淆处理
-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);
public void *(android.webkit.WebView, java.lang.String);
}
-keep class org.greenrobot.** { *; }
-keep interface org.greenrobot.** { *; }
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
# Gson
-keepattributes Signature
-keepattributes *Annotation*
-keep class sun.misc.** { *; }
-keep class com.google.gson.stream.** { *; }
-keep class com.dev.model.** { *; }
-keep class org.ebookdroid.** {*;}
-keep class org.emdev.** {*;}
-keep class org.tool.** {*;}
-assumenosideeffects class com.dev.android.utils.LOG {
public static *** d(...);
public static *** w(...);
public static *** e(...);
}
# Keep GreenDAO encrypted database classes
-keep class org.greenrobot.greendao.database.** { *; }
-keep class net.sqlcipher.** { *; }
-keep class android.database.Cursor { *; }
# Keep methods referenced by GreenDAO encrypted database
-keepclassmembers class * {
@org.greenrobot.greendao.annotation.* *;
}
# Keep database related classes
-keep class * extends org.greenrobot.greendao.database.DatabaseOpenHelper { *; }
-dontwarn net.sqlcipher.**
-dontwarn net.sqlcipher.database.**
-keep class com.dev.dao2.**{ *; }