123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- ## Add project specific ProGuard rules here.
- ## By default, the flags in this file are appended to flags specified
- ## in D:\Android\sdk/tools/proguard/proguard-android.txt
- ## You can edit the include path and order by changing the proguardFiles
- ## directive in build.gradle.
- #
- #
- ################################
- ##
- ## 公共部分(固定不变)
- ##
- ################################
- ##1.基本指令区
- ## 代码混淆压缩比,在0~7之间,默认为5,一般不做修改
- #-optimizationpasses 5
- ## 混合时不使用大小写混合,混合后的类名为小写
- #-dontusemixedcaseclassnames
- ## 指定不去忽略非公共库的类
- #-dontskipnonpubliclibraryclasses
- ## 这句话能够使我们的项目混淆后产生映射文件
- ## 包含有类名->混淆后类名的映射关系
- #-verbose
- ## 指定不去忽略非公共库的类成员
- #-dontskipnonpubliclibraryclassmembers
- ## 不做预校验,preverify是proguard的四个步骤之一,Android不需要preverify,去掉这一步能够加快混淆速度。
- #-dontpreverify
- ## 保留Annotation不混淆
- #-keepattributes *Annotation*,InnerClasses
- ## 避免混淆泛型
- #-keepattributes Signature
- ## 抛出异常时保留代码行号
- #-keepattributes SourceFile,LineNumberTable
- ## 指定混淆是采用的算法,后面的参数是一个过滤器
- ## 这个过滤器是谷歌推荐的算法,一般不做更改
- #-optimizations !code/simplification/cast,!field/*,!class/merging/*
- #
- ##2.默认保留区
- ## 保留我们使用的四大组件,自定义的Application等等这些类不被混淆
- ## 因为这些子类都有可能被外部调用
- #-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
- ## 保留support下的所有类及其内部类
- #-keep class android.support.** {*;}
- ## 保留继承的
- #-keep public class * extends android.support.v4.**
- #-keep public class * extends android.support.v7.**
- #-keep public class * extends android.support.annotation.**
- ## 保留R下面的资源
- #-keep class **.R$* {*;}
- #
- ## 保留本地native方法不被混淆
- #-keepclasseswithmembernames class * {
- # native <methods>;
- #}
- ## 保留在Activity中的方法参数是view的方法,
- ## 这样以来我们在layout中写的onClick就不会被影响
- #-keepclassmembers class * extends android.app.Activity{
- # public void *(android.view.View);
- #}
- ## 保留枚举类不被混淆
- #-keepclassmembers enum * {
- # public static **[] values();
- # public static ** valueOf(java.lang.String);
- #}
- ## 保留我们自定义控件(继承自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);
- #}
- #-keepclasseswithmembers class * {
- # public <init>(android.content.Context, android.util.AttributeSet);
- # public <init>(android.content.Context, android.util.AttributeSet, int);
- #}
- #
- ## 保留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 <fields>;
- # !private <methods>;
- # private void writeObject(java.io.ObjectOutputStream);
- # private void readObject(java.io.ObjectInputStream);
- # java.lang.Object writeReplace();
- # java.lang.Object readResolve();
- #}
- ## 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
- #-keepclassmembers class * {
- # void *(**On*Event);
- #}
- #
- ##3.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);
- #}
- #-keepclassmembers class * extends android.webkit.webViewClient {
- # public void *(android.webkit.webView, jav.lang.String);
- #}
- ##移除Log类打印各个等级日志的代码,打正式包的时候可以做为禁log使用
- ##这里可以作为禁止log打印的功能使用,另外的一种实现方案是通过BuildConfig.DEBUG的变量来控制
- #-assumenosideeffects class android.util.Log {
- # public static *** v(...);
- # public static *** i(...);
- # public static *** d(...);
- # public static *** w(...);
- # public static *** e(...);
- #}
- #
- #
- ################################
- ##
- ## 第三方jar包
- ##
- ################################
- #-keep class com.uuzuche.lib_zxing.** {*;}
- #-keep class cc.cloudist.acplibrary.** {*;}
- #-keep class com.handmark.pulltorefresh.library.** {*;}
- #-keep class android.arch.core.internal.** {*;}
- #-keep class android.arch.lifecycle.** {*;}
- #-keep class com.alibaba.fastjson.** {*;}
- #-dontwarn com.alibaba.fastjson.**
- #-keep class android.support.graphics.drawable.** {*;}
- #-keep class com.facebook.stetho.** {*;}
- #-keep class javax.annotation.** {*;}
- #-keep class com.lidroid.xutils.** {*;}
- #-keep class okhttp3.** {*;}
- #-keep class okio.** {*;}
- #-dontwarn okio.**
- #-keep class org.apache.commons.cli.** {*;}
- #-keep class org.junit.** {*;}
- #-keep class junit.** {*;}
- #-keep class org.hamcrest.** {*;}
- #
- #-keep class sun.misc.Unsafe {*;}
- #-keep class com.google.gson.** {*;}
- #-keep class com.google.gson.stream.** {*;}
- #-keep class com.android.volley.** {*;}
- #
- #-keep class butterknife.** {*;}
- #-dontwarn butterknife.internal.**
- #-keep class **$$ViewBinder { *; }
- #
- ################################
- ##
- ## 自己的代码
- ## 引用的其他Module可以直接在app的这个混淆文件里配置
- ##
- ################################
- ##实体类
- #-keep class com.uas.zdxw_smart_com.bean.** {*;}
- ##-keep .** {*;}
|