123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479 |
- # Add project specific ProGuard rules here.
- # By default, the flags in this file are appended to flags specified
- # in /Users/xieshengqi/Library/Android/sdk/tools/proguard/proguard-android.txt
- # You can edit the include path and order by changing the proguardFiles
- # directive in build.gradle.
- #
- # For more details, see
- # http://developer.android.com/guide/developing/tools/proguard.html
- # Add any project specific keep options here:
- # 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 # 是否使用大小写混合
- -dontskipnonpubliclibraryclasses # 是否混淆第三方jar
- -dontpreverify # 混淆时是否做预校验
- -verbose # 混淆时是否记录日志
- -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法
- #
- -keep public class * extends android.app.Activity # 保持哪些类不被混淆
- -keep public class * extends android.app.FragmentActivity # 保持哪些类不被混淆
- -keep public class * extends android.app.AppCompatActivity # 保持哪些类不被混淆
- -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 # 保持哪些类不被混淆
- #
- #
- #指定代码的压缩级别
- -optimizationpasses 5
- #包明不混合大小写
- -dontusemixedcaseclassnames
- #不去忽略非公共的库类
- -dontskipnonpubliclibraryclasses
- #优化 不优化输入的类文件
- -dontoptimize
- #预校验
- -dontpreverify
- #混淆时是否记录日志
- -verbose
- # 混淆时所采用的算法
- -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
- #保护注解
- -keepattributes *Annotation*
- # 保持哪些类不被混淆
- -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
- #忽略警告
- -ignorewarning
- ##记录生成的日志数据,gradle build时在本项目根目录输出##
- #apk 包内所有 class 的内部结构
- -dump proguard/class_files.txt
- #未混淆的类和成员
- -printseeds proguard/seeds.txt
- #列出从 apk 中删除的代码
- -printusage proguard/unused.txt
- #混淆前后的映射
- -printmapping proguard/mapping.txt
- ########记录生成的日志数据,gradle build时 在本项目根目录输出-end######
- #如果引用了v4或者v7包
- -dontwarn android.support.**
- ####混淆保护自己项目的部分代码以及引用的第三方jar包library-end####
- #保持 native 方法不被混淆
- -keepclasseswithmembernames class * {
- native <methods>;
- }
- #保持自定义控件类不被混淆
- -keepclasseswithmembers class * {
- public <init>(android.content.Context, android.util.AttributeSet);
- }
- #保持自定义控件类不被混淆
- -keepclassmembers class * extends android.app.Activity {
- public void *(android.view.View);
- }
- -keep public class * extends android.view.View {
- public <init>(android.content.Context);
- public <init>(android.content.Context, android.util.AttributeSet);
- public <init>(android.content.Context, android.util.AttributeSet, int);
- public void set*(...);
- }
- #保持 Parcelable 不被混淆
- -keep class * implements android.os.Parcelable {
- public static final android.os.Parcelable$Creator *;
- }
- #保持 Serializable 不被混淆
- -keepnames class * implements java.io.Serializable
- #保持 Serializable 不被混淆并且enum 类也不被混淆
- -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();
- }
- #保持枚举 enum 类不被混淆
- -keepclassmembers enum * {
- public static **[] values();
- public static ** valueOf(java.lang.String);
- }
- -keepclassmembers class * {
- public void *ButtonClicked(android.view.View);
- }
- #不混淆资源类
- -keepclassmembers class **.R$* {
- public static <fields>;
- }
- #避免混淆泛型 如果混淆报错建议关掉
- #-keepattributes Signature
- -keep class com.umeng.commonsdk.** {*;}
- -keepclasseswithmembernames class * { # 保持 native 方法不被混淆
- 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 class * extends android.support.v4.app.FragmentActivity { # 保持自定义控件类不被混淆
- public void *(android.view.View);
- }
- -keepclassmembers enum * { # 保持枚举 enum 类不被混淆
- public static **[] values();
- public static ** valueOf(java.lang.String);
- }
- -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆
- public static final android.os.Parcelable$Creator *;
- }
- #-keep class com.kuxuan.moneynote.base.; # 保持自己定义的类不被混淆
- # okhttp
- -dontwarn okio.**
- -keep class okio.** {*;}
- #第三方BaseRecyclerViewAdapterHelper
- -keep class com.chad.library.adapter.** {
- *;
- }
- -keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter
- -keep public class * extends com.chad.library.adapter.base.BaseViewHolder
- -keepclassmembers class ** extends com.chad.library.adapter.base.BaseViewHolder {
- <init>(...);
- }
- #butterknife混淆
- -keep class butterknife.** { *; }
- -dontwarn butterknife.internal.**
- -keep class **$$ViewBinder { *; }
- -keepclasseswithmembernames class * {
- @butterknife.* <fields>;
- }
- -keepclasseswithmembernames class * {
- @butterknife.* <methods>;
- }
- #eventBus混淆
- -keepclassmembers class ** {
- @org.greenrobot.eventbus.Subscribe <methods>;
- }
- -keep enum org.greenrobot.eventbus.ThreadMode { *; }
- # Only required if you use AsyncExecutor
- -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
- <init>(java.lang.Throwable);
- }
- -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.resource.bitmap.ImageHeaderParser$** {
- **[] $VALUES;
- public *;
- }
- # Retrofit
- -dontnote retrofit2.Platform
- -dontnote retrofit2.Platform$IOS$MainThreadExecutor
- -dontwarn retrofit2.Platform$Java8
- -keepattributes Signature
- -keepattributes Exceptions
- -keepclassmembers enum * {
- public static **[] values();
- public static ** valueOf(java.lang.String);
- }
- #友盟统计
- -keepclassmembers class * {
- public <init> (org.json.JSONObject);
- }
- -keep public class com.kuxuan.moneynote.R$*{
- public static final int *;
- }
- #
- #第三方裁剪
- -dontwarn com.yalantis.ucrop**
- -keep class com.yalantis.ucrop** { *; }
- -keep interface com.yalantis.ucrop** { *; }
- # Gson
- #-keep class com.example.testing.retrofitdemo.bean.**{*;} # 自定义数据模型的bean目录
- #自定义类
- -keep class com.kuxuan.moneynote.json.** { *; }
- -keep class com.kuxuan.moneynote.ad.** { *; }
- -keep public class * extends com.kuxuan.moneynote.base.mvpbase.BaseModel
- -keep public class * extends com.kuxuan.moneynote.base.mvpbase.BasePresent
- -keep public class * extends com.kuxuan.moneynote.base.mvpbase.BaseView
- -keep public class * extends com.kuxuan.moneynote.base.mvpbase.MvpFragment
- -keep public class * extends com.kuxuan.moneynote.base.mvpbase.MvpFragmentActivity
- -keep public class * extends com.kuxuan.moneynote.base.BaseViewHolder
- -keep class com.kuxuan.moneynote.base.**{*;}
- -keep class com.kuxuan.moneynote.db.**{*;}
- -dontshrink
- -dontoptimize
- -dontwarn com.google.android.maps.**
- -dontwarn android.webkit.WebView
- -dontwarn com.umeng.**
- -dontwarn com.tencent.weibo.sdk.**
- -dontwarn com.facebook.**
- -keep public class javax.**
- -keep public class android.webkit.**
- -dontwarn android.support.v4.**
- -keep enum com.facebook.**
- -keepattributes Exceptions,InnerClasses,Signature
- -keepattributes *Annotation*
- -keepattributes SourceFile,LineNumberTable
- -keep public interface com.facebook.**
- -keep public interface com.tencent.**
- -keep public interface com.umeng.socialize.**
- -keep public interface com.umeng.socialize.sensor.**
- -keep public interface com.umeng.scrshot.**
- -keep public class com.umeng.socialize.* {*;}
- -keep class com.facebook.**
- -keep class com.facebook.** { *; }
- -keep class com.umeng.scrshot.**
- -keep public class com.tencent.** {*;}
- -keep class com.umeng.socialize.sensor.**
- -keep class com.umeng.socialize.handler.**
- -keep class com.umeng.socialize.handler.*
- -keep class com.umeng.weixin.handler.**
- -keep class com.umeng.weixin.handler.*
- -keep class com.umeng.qq.handler.**
- -keep class com.umeng.qq.handler.*
- -keep class UMMoreHandler{*;}
- -keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
- -keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
- -keep class im.yixin.sdk.api.YXMessage {*;}
- -keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
- -keep class com.tencent.mm.sdk.** {
- *;
- }
- -keep class com.tencent.mm.opensdk.** {
- *;
- }
- -keep class com.tencent.wxop.** {
- *;
- }
- -keep class com.tencent.mm.sdk.** {
- *;
- }
- -dontwarn twitter4j.**
- -keep class twitter4j.** { *; }
- -keep class com.tencent.** {*;}
- -dontwarn com.tencent.**
- -keep class com.kakao.** {*;}
- -dontwarn com.kakao.**
- -keep public class com.umeng.com.umeng.soexample.R$*{
- public static final int *;
- }
- -keep public class com.linkedin.android.mobilesdk.R$*{
- public static final int *;
- }
- -keepclassmembers enum * {
- public static **[] values();
- public static ** valueOf(java.lang.String);
- }
- -keep class com.tencent.open.TDialog$*
- -keep class com.tencent.open.TDialog$* {*;}
- -keep class com.tencent.open.PKDialog
- -keep class com.tencent.open.PKDialog {*;}
- -keep class com.tencent.open.PKDialog$*
- -keep class com.tencent.open.PKDialog$* {*;}
- -keep class com.umeng.socialize.impl.ImageImpl {*;}
- -keep class com.sina.** {*;}
- -dontwarn com.sina.**
- -keep class com.alipay.share.sdk.** {
- *;
- }
- -keepnames class * implements android.os.Parcelable {
- public static final ** CREATOR;
- }
- -keep class com.linkedin.** { *; }
- -keep class com.xieshengqi.** { *; }
- -keep class com.android.dingtalk.share.ddsharemodule.** { *; }
- -keepattributes Signature
- #greendao3.2.0,此是针对3.2.0,如果是之前的,可能需要更换下包名
- -keep class org.greenrobot.greendao.**{*;}
- -keep public class * extends org.greenrobot.greendao.AbstractDao
- -keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
- public static java.lang.String TABLENAME;
- }
- -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);
- }
- -keep class **$Properties
- -keepclassmembers class **$Properties {*;}
- #支付宝
- -keep class com.alipay.android.app.IAlixPay{*;}
- -keep class com.alipay.android.app.IAlixPay$Stub{*;}
- -keep class com.alipay.android.app.IRemoteServiceCallback{*;}
- -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
- -keep class com.alipay.sdk.app.PayTask{ public *;}
- -keep class com.alipay.sdk.app.AuthTask{ public *;}
- -keep class com.alipay.sdk.app.H5PayCallback {
- <fields>;
- <methods>;
- }
- -keep class com.alipay.android.phone.mrpc.core.** { *; }
- -keep class com.alipay.apmobilesecuritysdk.** { *; }
- -keep class com.alipay.mobile.framework.service.annotation.** { *; }
- -keep class com.alipay.mobilesecuritysdk.face.** { *; }
- -keep class com.alipay.tscenter.biz.rpc.** { *; }
- -keep class org.json.alipay.** { *; }
- -keep class com.alipay.tscenter.** { *; }
- -keep class com.ta.utdid2.** { *;}
- -keep class com.ut.device.** { *;}
- #穿山甲广告相关混淆
- -keep class com.bytedance.sdk.openadsdk.** { *; }
- -keep class com.androidquery.callback.** {*;}
- -keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
- -keep class com.ss.sys.ces.* {*;}
- #网易云盾
- -keepattributes *Annotation*
- -keep public class com.netease.nis.captcha.**{*;}
- -keep public class android.webkit.**
- -keepattributes SetJavaScriptEnabled
- -keepattributes JavascriptInterface
- -keepclassmembers class * {
- @android.webkit.JavascriptInterface <methods>;
- }
- #友盟
- -keep class com.umeng.** {*;}
- -keepclassmembers class * {
- public <init> (org.json.JSONObject);
- }
- -keepclassmembers enum * {
- public static **[] values();
- public static ** valueOf(java.lang.String);
- }
- -keep public class * extends android.app.Service
- #华为推送
- -ignorewarning
- -keepattributes *Annotation*
- -keepattributes Exceptions
- -keepattributes InnerClasses
- -keepattributes Signature
- -keepattributes SourceFile,LineNumberTable
- -keep class com.hianalytics.android.**{*;}
- -keep class com.huawei.updatesdk.**{*;}
- -keep class com.huawei.hms.**{*;}
- -keep class com.huawei.android.hms.agent.**{*;}
- #下载工具类
- -keepattributes Annotation
- -keepclassmembers class * { @org.greenrobot.eventbus.Subscribe ;}
- -keep enum org.greenrobot.eventbus.ThreadMode { *; }
- -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { (java.lang.Throwable);}
- -keep class com.allenliu.versionchecklib.**{*;}
|