1.proguard-rules.pro文件


# 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.## 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 *;#}-optimizationpasses 5          # 指定代码的压缩级别-dontusemixedcaseclassnames # 是否使用大小写混合-dontpreverify # 混淆时是否做预校验-verbose # 混淆时是否记录日志-dontskipnonpubliclibraryclasses #不去忽略非公共的库类-dontoptimize #优化  不优化输入的类文件-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    # 保持哪些类不被混淆-keep public class * extends android.support.v4.app.Fragment    #如果有引用v4包可以添加下面这行-keep public class android.webkit.**#忽略警告#-ignorewarning##记录生成的日志数据,gradle build时在本项目根目录输出## #apk 包内所有 class 的内部结构-dump class_files.txt#未混淆的类和成员-printseeds seeds.txt#列出从 apk 中删除的代码-printusage unused.txt#混淆前后的映射-printmapping mapping.txt########记录生成的日志数据,gradle build时 在本项目根目录输出-end######-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 enum * {     # 保持枚举 enum 类不被混淆    public static **[] values();    public static ** valueOf(java.lang.String);}-keepclassmembers class * {   public <init>(org.json.JSONObject);}-keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆    public static final android.os.Parcelable$Creator *;}-keepnames class * implements java.io.Serializable #保持 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$* {    public static <fields>;}-dontwarn android.support.**-dontwarn android.webkit.WebView-keepattributes *Annotation*-keepattributes *JavascriptInterface*##################################自己及第三方#############################################################-dontwarn com.alipay.**-keep class com.alipay.**  {*;}-dontwarn com.tencent.**-keep class com.tencent.** {*;}-dontwarn com.anyan.client.**-keep class com.anyan.client.** {*;}-dontwarn com.umeng.**-keep class com.umeng.** {*;}-dontwarn cn.jpush.**-keep class cn.jpush.** {*;}-dontwarn com.google.**-keep class com.google.** {*;}-dontwarn okhttp3.**-keep class okhttp3.** {*;}-dontwarn okio.**-keep class okio.** {*;}-dontwarn rx.**-keep class rx.** {*;}-dontwarn sina.**-keep class sina.** {*;}-dontwarn com.linkcard.zerolink.**-keep class com.linkcard.zerolink.** {*;}-dontwarn com.umeng.analytics.**-keep class com.umeng.analytics.** {*;}-dontwarn com.nostra13.**-keep class com.nostra13.** {*;}-dontwarn com.sea_monster.**-keep class com.sea_monster.** {*;}-dontwarn de.**-keep class de.** {*;}-dontwarn uk.**-keep class uk.** {*;}-dontwarn io.rong.**-keep class io.rong.** {*;}-dontwarn com.google.zxing.**-keep class com.ulucu.eventbus.** {*;}-keep class com.ulucu.network.** {*;}-keepclassmembers class ** {    public void onEvent*(**);    void onEvent*(**);    public void onEventMainThread*(**);    void onEventMainThread*(**);}#使用第三方时,资源文件有可能通过反射机制应用,此时下面不能混淆-keep public class 包名.R$*{public static final int *;}#webview中js对象-keepclassmembers class com.ulucu.fragment.PayFragment$JavaScriptObject {   public *;}

2.gradle文件中相应代码

buildTypes {    debug {        signingConfig signingConfigs.debug        //混淆        minifyEnabled true        //zipalign优化        zipAlignEnabled true        //去除无用的resource文件        shrinkResources true        //加载默认混淆配置文件        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }    release {        //签名        signingConfig signingConfigs.release        //混淆        minifyEnabled true        //zipalign优化        zipAlignEnabled true        //去除无用的resource文件        shrinkResources true        //加载默认混淆配置文件        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }}

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android图片压缩
  4. Android(安卓)studio SDK6.0 不支持HttpClient解决办法
  5. android获取指定路径下目录文件
  6. Android圆形进度条
  7. Android—复选框和单选框使用
  8. android之PopUpWindow显示Listview(文件列表)
  9. Android: java.lang.ClassCastException: android.widget.imageV

随机推荐

  1. android命令行打包、签名+自动打包器
  2. 00015-相对布局位置属性
  3. Android(安卓)okhttp使用
  4. android开发杂记(持续更新中)
  5. Android快速入门-----数据存储(三)Sqlite应
  6. Android存储使用参考
  7. 移动应用测试框架—Calabash Android(安
  8. 点击事件必须点两次才能生效的原因
  9. android 识别图片上的二维码
  10. SD卡读写文件 代码学习