| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- # Add project specific ProGuard rules here.
- # By default, the flags in this file are appended to flags specified
- # in D:\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 *;
- #}
- #---------------------------------基本指令区----------------------------------
- -ignorewarnings
- -dontusemixedcaseclassnames # 是否使用大小写混合
- -dontpreverify # 混淆时是否做预校验
- -verbose # 混淆时是否记录日志
- -printmapping proguardMapping.txt
- -optimizationpasses 5 # 指定代码的压缩级别
- -dontskipnonpubliclibraryclassmembers
- -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
- -keepattributes *Annotation*,InnerClasses
- -keepattributes Signature # 避免混淆泛型
- -keepattributes EnclosingMethod
- -keepattributes SourceFile,LineNumberTable #运行抛出异常时保留代码行号
- -keepattributes Exceptions # 解决AGPBI警告
- #继承自activity,application,service,broadcastReceiver,contentprovider....不进行混淆
- -keep public class * extends android.app.Activity
- -keep public class * extends android.app.Application
- -keep public class * extends android.support.multidex.MultiDexApplication
- -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.** {*;}
- # 所有View的子类及其子类的get、set方法都不进行混淆
- -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);
- }
- # 这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆
- -keepclassmembers class * extends android.app.Activity {
- public void *(android.view.View);
- }
- # 对于带有回调函数onXXEvent的,不能被混淆
- -keepclassmembers class * {
- void *(*Event);
- }
- # 枚举类不能被混淆
- -keepclassmembers enum * {
- public static **[] values();
- public static ** valueOf(java.lang.String);
- }
- # natvie 方法不混淆
- -keepclasseswithmembernames class * {
- native <methods>;
- }
- # 保持 Parcelable 不被混淆
- -keep class * implements android.os.Parcelable {
- public static final android.os.Parcelable$Creator *;
- }
- #不混淆Serializable接口的子类中指定的某些成员变量和方法
- -keepclassmembers class * implements java.io.Serializable {
- static final long serialVersionUID;
- private static final java.io.ObjectStreamField[] serialPersistentFields;
- !static !transient <fields>;
- private void writeObject(java.io.ObjectOutputStream);
- private void readObject(java.io.ObjectInputStream);
- java.lang.Object writeReplace();
- java.lang.Object readResolve();
- }
- -keepclassmembers class * {
- public <init> (org.json.JSONObject);
- }
- # 不混淆R类里及其所有内部static类中的所有static变量字段,$是用来分割内嵌类与其母体的标志
- -keep public class **.R$*{
- public static final int *;
- }
- #---------------------------------webview------------------------------------
- -keepclassmembers class fqcn.of.javascript.interface.for.webview {
- public *;
- }
- -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);
- }
- #---------------------------------业务组件实体类---------------------------------
- -keep class com.guiying.news.data.bean.** {*;}
- -keep class com.guiying.girls.data.bean.** {*;}
- #---------------------------------第三方库及jar包-------------------------------
- #litepal数据库不能被混淆
- -keep class org.litepal.** {*;}
- -keep class * extends org.litepal.crud.DataSupport {*;}
- #Glide不能被混淆
- -keep public class * implements com.bumptech.glide.module.GlideModule
- -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
- **[] $VALUES;
- public *;
- }
- #PersistentCookieJar
- -dontwarn com.franmontiel.persistentcookiejar.**
- -keep class com.franmontiel.persistentcookiejar.**
- #activityrouter
- -keep class com.github.mzule.activityrouter.router.** { *; }
- #友盟统计
- -keep class com.umeng.analytics.** {*;}
- -dontwarn com.umeng.analytics.**
- #友盟推送
- -dontwarn com.taobao.**
- -dontwarn anet.channel.**
- -dontwarn anetwork.channel.**
- -dontwarn org.android.**
- -dontwarn org.apache.thrift.**
- -dontwarn com.xiaomi.**
- -dontwarn com.huawei.**
- -keep class com.taobao.** {*;}
- -keep class org.android.** {*;}
- -keep class anet.channel.** {*;}
- -keep class com.umeng.** {*;}
- -keep class com.xiaomi.** {*;}
- -keep class com.huawei.** {*;}
- -keep class org.apache.thrift.** {*;}
- -keep class com.alibaba.sdk.android.**{*;}
- -keep class com.ut.**{*;}
- -keep class com.ta.**{*;}
- #换肤框架的混淆文件
- -keep class solid.ren.skinlibrary.** {*;}
- -dontwarn solid.ren.skinlibrary.**
- #高德相关混淆文件
- #3D 地图
- -keep class com.amap.api.** {*;}
- -keep class com.autonavi.** {*;}
- -keep class com.a.a.** {*;}
- -keep class com.loc.** {*;}
- -dontwarn com.amap.api.**
- -dontwarn com.autonavi.**
- -dontwarn com.a.a.**
- -dontwarn com.loc.**
- # simple-xml-core的SDK
- -keep class org.simpleframework.xml.** {*;}
- -dontwarn org.simpleframework.xml.**
- # acra的 SDK
- -keep class org.acra.** {*;}
- -dontwarn org.acra.**
- # 网络请求库async-http
- -keep class com.loopj.android.http.** {*;}
- -dontwarn com.loopj.android.http.**
- #pinyin4j
- -dontwarn net.soureceforge.pinyin4j.**
- -dontwarn demo.**
- -keep class net.sourceforge.pinyin4j.** { *;}
- -keep class demo.** { *;}
- -keep class com.hp.** { *;}
- #httpclient (org.apache.http.legacy.jar)
- -dontwarn android.net.compatibility.**
- -dontwarn android.net.http.**
- -dontwarn com.android.internal.http.multipart.**
- -dontwarn org.apache.commons.**
- -dontwarn org.apache.http.**
- -dontwarn org.apache.http.protocol.**
- -keep class android.net.compatibility.**{*;}
- -keep class android.net.http.**{*;}
- -keep class com.android.internal.http.multipart.**{*;}
- -keep class org.apache.commons.**{*;}
- -keep class org.apache.org.**{*;}
- -keep class org.apache.harmony.**{*;}
- #图表库
- -keep class com.github.mikephil.charting.** {*;}
- -dontwarn com.github.mikephil.charting.**
- # 讯飞语音
- -keep class com.chinaMobile.** {*;}
- -keep class com.iflytek.** {*;}
- -keep class com.iflytek.sunflower.** {*;}
- -dontwarn com.iflytek.sunflower.**
- -dontwarn com.chinaMobile.**
- -dontwarn com.iflytek.**
- # greenDao混淆
- -keep class de.greenrobot.dao.** {*;}
- -keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
- public static Java.lang.String TABLENAME;
- }
- -keep class **$Properties
- # gson
- -keep class com.google.gson.** {*;}
- -keep class com.google.**{*;}
- -keep class sun.misc.Unsafe { *; }
- -keep class com.google.gson.stream.** { *; }
- -keep class com.google.gson.examples.android.model.** { *; }
- # zxing
- -keep class com.google.zxing.** {*;}
- -dontwarn com.google.zxing.**
- ##百度定位
- -keep class com.baidu.** {*;}
- -keep class vi.com.** {*;}
- -dontwarn com.baidu.**
- ## okhttp
- -dontwarn com.squareup.okhttp.**
- -keep class com.squareup.okhttp.{*;}
- #okhttp3.x
- -dontwarn com.squareup.okhttp3.**
- -keep class com.squareup.okhttp3.** { *;}
- -dontwarn okio.**
- #retrofit
- -dontwarn retrofit.**
- -keep class retrofit.** { *; }
- -dontwarn okio.**
- #recyclerview-animators
- -keep class jp.wasabeef.** {*;}
- -dontwarn jp.wasabeef.*
- #multistateview
- -keep class com.kennyc.view.** { *; }
- -dontwarn com.kennyc.view.*
- # universal-image-loader 混淆
- -dontwarn com.nostra13.universalimageloader.**
- -keep class com.nostra13.universalimageloader.** { *; }
- #-ButterKnife 7.0
- -keep class butterknife.** { *; }
- -dontwarn butterknife.internal.**
- -keep class **$$ViewBinder { *; }
- -keepclasseswithmembernames class * {
- @butterknife.* <fields>;
- }
- -keepclasseswithmembernames class * {
- @butterknife.* <methods>;
- }
- #eventbus 3.0
- -keepattributes *Annotation*
- -keepclassmembers class ** {
- @org.greenrobot.eventbus.Subscribe <methods>;
- }
- -keep enum org.greenrobot.eventbus.ThreadMode { *; }
- -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
- <init>(java.lang.Throwable);
- }
- #EventBus
- -keepclassmembers class ** {
- public void onEvent*(**);
- }
- -keepclassmembers class ** {
- public void xxxxxx(**);
- }
- # support-v4
- -dontwarn android.support.v4.**
- -keep class android.support.v4.app.** { *; }
- -keep interface android.support.v4.app.** { *; }
- -keep class android.support.v4.** { *; }
- # support-v7
- -dontwarn android.support.v7.**
- -keep class android.support.v7.internal.** { *; }
- -keep interface android.support.v7.internal.** { *; }
- -keep class android.support.v7.** { *; }
- # support design
- -dontwarn android.support.design.**
- -keep class android.support.design.** { *; }
- -keep interface android.support.design.** { *; }
- -keep public class android.support.design.R$* { *; }
|