264 lines
8.6 KiB
Prolog
264 lines
8.6 KiB
Prolog
# 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
|
||
|
||
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||
public *;
|
||
}
|
||
#webView js调用不混淆,否则取不到数据
|
||
-keepclassmembers class com.zyp.ui.WebActivity$* {
|
||
<methods>;
|
||
}
|
||
|
||
#shrink,测试后发现会将一些无效代码给移除,即没有被显示调用的代码,该选项 表示 不启用 shrink。
|
||
#-dontshrink
|
||
#指定重新打包,所有包重命名,这个选项会进一步模糊包名,将包里的类混淆成n个再重新打包到一个个的package中
|
||
#-flattenpackagehierarchy
|
||
#优化时允许访问并修改有修饰符的类和类的成员
|
||
-allowaccessmodification
|
||
#不跳过(混淆) jars中的 非public classes 默认选项
|
||
-dontskipnonpubliclibraryclassmembers
|
||
#忽略警告
|
||
-ignorewarnings
|
||
#指定代码的压缩级别
|
||
-optimizationpasses 5
|
||
#不使用大小写混合类名
|
||
-dontusemixedcaseclassnames
|
||
#不去忽略非公共的库类
|
||
-dontskipnonpubliclibraryclasses
|
||
#不启用优化 不优化输入的类文件
|
||
-dontoptimize
|
||
#不预校验
|
||
-dontpreverify
|
||
#混淆时是否记录日志
|
||
-verbose
|
||
#混淆时所采用的算法
|
||
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
|
||
#保护注解
|
||
-renamesourcefileattribute SourceFile
|
||
#保持源文件和行号的信息,用于混淆后定位错误位置
|
||
-keepattributes SourceFile,LineNumberTable
|
||
#保持含有Annotation字符串的 attributes
|
||
-keepattributes *Annotation*
|
||
#过滤泛型
|
||
-keepattributes Signature
|
||
-keepattributes Exceptions,InnerClasses
|
||
|
||
-dontwarn org.apache.**
|
||
-dontwarn android.support.**
|
||
|
||
#基础配置
|
||
# 保持哪些类不被混淆
|
||
# 系统组件
|
||
-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.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 com.android.vending.licensing.ILicensingService
|
||
#如果有引用v4包可以添加下面这行
|
||
#-keep public class * extends android.support.v4.app.Fragment
|
||
#自定义View
|
||
-keep public class * extends android.view.View
|
||
# V4,V7
|
||
-keep class android.support.constraint.**{ *; }
|
||
#-keep class android.support.v4.**{ *; }
|
||
-keep class android.support.v7.**{ *; }
|
||
-keep class android.webkit.**{*;}
|
||
-keep interface android.support.v4.app.** { *; }
|
||
#保持 本化方法及其类声明
|
||
-keepclasseswithmembers class * {
|
||
native <methods>;
|
||
}
|
||
#保持view的子类成员: getter setter
|
||
-keepclassmembers public class * extends android.view.View {
|
||
void set*(***);
|
||
*** get*();
|
||
}
|
||
#保持Activity的子类成员:参数为一个View类型的方法 如setContentView(View v)
|
||
-keepclassmembers class * extends android.app.Activity {
|
||
public void *(android.view.View);
|
||
}
|
||
#保持枚举类的成员:values方法和valueOf (每个enum 类都默认有这两个方法)
|
||
-keepclassmembers enum * {
|
||
public static **[] values();
|
||
public static ** valueOf(java.lang.String);
|
||
}
|
||
#保持Parcelable的实现类和它的成员:类型为android.os.Parcelable$Creator 名字任意的 属性
|
||
-keep class * implements android.os.Parcelable {
|
||
public static final android.os.Parcelable$Creator *;
|
||
}
|
||
#保持 任意包名.R类的类成员属性。 即保护R文件中的属性名不变
|
||
-keepclassmembers class **.R$* {
|
||
public static <fields>;
|
||
}
|
||
|
||
# 记录生成的日志数据,在 proguard 目录下
|
||
|
||
-dump class_files.txt
|
||
|
||
-printseeds seeds.txt
|
||
|
||
-printusage unused.txt
|
||
|
||
-printmapping mapping.txt
|
||
|
||
|
||
-keepclasseswithmembernames class * {
|
||
native <methods>;
|
||
}
|
||
|
||
-keepclasseswithmembers class * {
|
||
public <init>(android.content.Context, android.util.AttributeSet);
|
||
}
|
||
|
||
-keepclasseswithmembers class * {
|
||
public <init>(android.content.Context, android.util.AttributeSet, int);
|
||
}
|
||
|
||
-keepclassmembers class * extends android.app.Activity {
|
||
public void *(android.view.View);
|
||
}
|
||
|
||
-keepclassmembers enum * {
|
||
public static **[] values();
|
||
public static ** valueOf(java.lang.String);
|
||
}
|
||
|
||
-keep class * implements android.os.Parcelable {
|
||
public static final android.os.Parcelable$Creator *;
|
||
}
|
||
-keepnames class * implements android.os.Parcelable {
|
||
public static final ** CREATOR;
|
||
}
|
||
|
||
-dontwarn java.util.**
|
||
-keep class java.util.** {*; }
|
||
|
||
-dontwarn org.apache.http.**
|
||
-keep class org.apache.http.** {*; }
|
||
|
||
-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 public class * implements java.io.Serializable {*;}
|
||
|
||
-keepclassmembers class **.R$* {
|
||
public static <fields>;
|
||
}
|
||
|
||
# GreenDao
|
||
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
|
||
public static java.lang.String TABLENAME;
|
||
}
|
||
-keep class **$Properties
|
||
|
||
# If you do not use SQLCipher:
|
||
-dontwarn org.greenrobot.greendao.database.**
|
||
# If you do not use Rx:
|
||
-dontwarn rx.**
|
||
|
||
# Picasso
|
||
-dontwarn com.squareup.okhttp.**
|
||
|
||
# okHttp
|
||
-dontwarn okhttp3.**
|
||
-dontwarn okio.**
|
||
-dontwarn javax.annotation.**
|
||
|
||
# A resource is loaded with a relative path so the package of this class must be preserved.
|
||
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
|
||
|
||
# Glide
|
||
-keep public class * implements com.bumptech.glide.module.GlideModule
|
||
#-keep public class * extends com.bumptech.glide.module.AppGlideModule
|
||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
|
||
**[] $VALUES;
|
||
public *;
|
||
}
|
||
|
||
# ======================= activation.jar =============================
|
||
-dontwarn javax.activation.**
|
||
-keep class javax.activation.**{*;}
|
||
-dontwarn com.sun.activation.registries.**
|
||
-keep class com.sun.activation.registries.**{*;}
|
||
|
||
# ======================= additionnal.jar ============================
|
||
-dontwarn myjava.awt.datatransfer.**
|
||
-keep class myjava.awt.datatransfer.**{*;}
|
||
-dontwarn org.apache.harmony.**
|
||
-keep class org.apache.harmony.**{*;}
|
||
|
||
# ======================= RxAndroid,RxJava ===========================
|
||
-dontwarn sun.misc.**
|
||
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
|
||
long producerIndex;
|
||
long consumerIndex;
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
|
||
rx.internal.util.atomic.LinkedQueueNode producerNode;
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
|
||
rx.internal.util.atomic.LinkedQueueNode consumerNode;
|
||
}
|
||
|
||
# ======================= arxlib =====================================
|
||
-dontwarn com.github.xy02.arxlib.**
|
||
-keep class com.github.xy02.arxlib.**{*;}
|
||
|
||
# ======================= mail.jar ===================================
|
||
-keep class com.sun.mail.**{*;}
|
||
-keep class javax.mail.**{*;}
|
||
|
||
# ======================= TaxiApp Keep ================================
|
||
-keep class net.sysolution.taxiapp.localserver.**{*;}
|
||
|
||
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
|
||
public static void dropTable(org.greenrobot.greendao.database.Database, boolean);
|
||
public static void createTable(org.greenrobot.greendao.database.Database, boolean);
|
||
}
|
||
|
||
# ======================= GSYVideoPlayer ================================
|
||
-keep class com.shuyu.gsyvideoplayer.video.** { *; }
|
||
-dontwarn com.shuyu.gsyvideoplayer.video.**
|
||
-keep class com.shuyu.gsyvideoplayer.video.base.** { *; }
|
||
-dontwarn com.shuyu.gsyvideoplayer.video.base.**
|
||
-keep class com.shuyu.gsyvideoplayer.utils.** { *; }
|
||
-dontwarn com.shuyu.gsyvideoplayer.utils.**
|
||
-keep class tv.danmaku.ijk.** { *; }
|
||
-dontwarn tv.danmaku.ijk.**
|
||
|
||
-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);
|
||
} |