Android proguard混淆


#指定代码的压缩级别
    -optimizationpasses 5

#包明不混合大小写
    -dontusemixedcaseclassnames

#不去忽略非公共的库类
    -dontskipnonpubliclibraryclasses


#不优化输入的类文件
    -dontoptimize


#预校验
    -dontpreverify


#混淆时是否记录日志
    -verbose


# 混淆时所采用的算法
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*


 #保护注解
    -keepattributes *Annotation*
    -keep class * extends java.lang.annotation.Annotation { *; }


 #保护反射
    -keepattributes EnclosingMethod


# 保持哪些类不被混淆
    -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
    -keep public class * extends android.view.View.** {*;}
    -keepclassmembers class * extends android.app.Activity {
       public void *(android.view.View);
    }




#忽略警告
    -ignorewarning

#apk 包内所有 class 的内部结构

    -dump class_files.txt


#未混淆的类和成员

    -printseeds seeds.txt


#列出从 apk 中删除的代码

    -printusage unused.txt


 #混淆前后的映射
    -printmapping mapping.txt






     # 这里的com.demo.application是自己项目的包名。
     -keep public class com.demo.application.R$*{
        public static final int *;
     }


    ####混淆保护自己项目的部分代码以及引用的第三方jar包library-end####
    -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*(...);
   }


    #保持 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);
    }


#保持 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();
    }


# 不混淆按钮类
   -keepclassmembers class * {
        public void *ButtonClicked(android.view.View);
    }


#不混淆资源类
    -keepclassmembers class **.R$* { *;}

    -keep class **.R$* { *; }


 #避免混淆泛型 如果混淆报错建议关掉
    -keepattributes Signature



###################保护第三方包引用不混淆#########################


    #如果用用到Gson解析包的,直接添加下面这几行就能成功混淆,不然会报错。
    #gson
    -keep class sun.misc.Unsafe { *; }
    -keep class com.idea.fifaalarmclock.entity.***
    -keep class com.google.gson.stream.** { *; }
    # Gson specific classes
    -keep class sun.misc.Unsafe { *; }


 #保持droidplugin不被混淆
    -dontwarn com.morgoo.droidplugin.**
     -keep class com.morgoo.droidplugin.** {*;}


#adapter也不能混淆
-keep public class * extends android.widget.BaseAdapter {*;}


### greenDAO 3
-keep class org.greenrobot.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.**
#保护greendao实体类不被混淆
-keep class package_name(包名).gen.**{*;}


#android-circular
-dontwarn  cn.kongnannan.**
-keep class cn.kongnannan.** {*;}


#commons-codec
-dontwarn  org.apache.commons.codec.**
-keep class org.apache.commons.codec.** {*;}


##eventbus.jar
-dontwarn  de.greenrobot.event.**
-keep class de.greenrobot.event.** {*;}


#frameworklib.jar
-dontwarn  com.plugin.frameworklib.**
-keep class com.plugin.frameworklib.** {*;}


#lite-http-library.jar
-dontwarn  com.litesuits.**
-keep class com.litesuits.** {*;}


#pinyin4j.jar
-dontwarn  net.sourceforge.pinyin4j.**
-keep class net.sourceforge.pinyin4j.** {*;}




##zxing
-dontwarn  com.google.zxing.**
-keep class com.google.zxing.** {*;}
-dontwarn  demo.**
-keep class demo.** {*;}


# OkHttp3
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-dontwarn okio.**




##fastjson.jar
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.**{*;}




#cube-sdk
-dontwarn in.srain.cube.**
-keep class in.srain.cube.**{*;}


#glide.jar
-dontwarn com.bumptech.glide.**
-keep class com.bumptech.glide.*{*;}


#junit.jar
-dontwarn org.junit.**
-keep class org.junit.**{*;}
-dontwarn junit.**
-keep class junit.**{*;}


#hamcrest-core.jar
#-keep class org.hamcrest.**
#-dontwarn org.hamcrest.*{*;}


-dontwarn cn.qqtheme.framework.**
-keep class cn.qqtheme.framework.**{*;}


-dontwarn com.yongchun.library.**
-keep class com.yongchun.library.**{*;}


# support-v4
#https://stackoverflow.com/questions/18978706/obfuscate-android-support-v7-widget-gridlayout-issue
-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
#@link http://stackoverflow.com/a/31028536
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }
#-------------------------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值