#-------------------------3.与js互相调用的类------------------------
#-------------------------4.反射相关的类和方法----------------------
#-------------------------5.基本不用动区域--------------------------
#指定代码的压缩级别
-optimizationpasses5
#不去忽略非公共的库类
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
# 是否使用大小写混合
-dontusemixedcaseclassnames
#预校验
-dontpreverify
#混淆时是否记录日志
-verbose
#忽略警告,避免打包时某些警告出现
-ignorewarning
# 混淆时所采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#保护注解
-keepattributes *Annotation*
#记录生成的日志数据,gradle build时在本项目根目录输出
#apk 包内所有 class 的内部结构
-dump class_files.txt
#未混淆的类和成员
-printseeds seeds.txt
#列出从 apk 中删除的代码
-printusage unused.txt
#混淆前后的映射
-printmapping mapping.txt
#-----------------------------6.默认保留区-----------------------
# 保持哪些类不被混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Fragment
-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、v7包可以添加下面这行
-keep publicclass*extendsandroid.support.*
-keepclasseswithmembersclass*{
public(android.content.Context,android.util.AttributeSet);
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
# 保持 native 方法不被混淆
-keepclasseswithmembernamesclass*{
native;
}
# 保持自定义控件类不被混淆
-keepclasseswithmembersclass*{
public(android.content.Context,android.util.AttributeSet);
}
# 保持自定义控件类不被混淆
-keepclasseswithmembersclass*{
public(android.content.Context,android.util.AttributeSet,int);
}
# 保持自定义控件类不被混淆
-keepclassmembersclass*extendsandroid.app.Activity{
publicvoid*(android.view.View);
}
# 保持枚举 enum 类不被混淆
-keepclassmembersenum*{
publicstatic**[]values();
publicstatic**valueOf(java.lang.String);
}
# 保持 Parcelable 不被混淆
-keepclass*implementsandroid.os.Parcelable{
publicstaticfinalandroid.os.Parcelable$Creator *;
}
#---------------------------7.webview-----------------------
-keepclassmembersclassfqcn.of.javascript.interface.for.webview{
public*;
}
-keepclassmembersclass*extendsandroid.webkit.webViewClient{
publicvoid*(android.webkit.WebView,java.lang.String,android.graphics.Bitmap);
publicboolean*(android.webkit.WebView,java.lang.String);
}
-keepclassmembersclass*extendsandroid.webkit.webViewClient{
publicvoid*(android.webkit.webView,jav.lang.String);
}
#-----------------------------end-------------------------------