# 基于 sdk/tools/proguard/proguard-android-optimize.txt 修改 -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* -optimizationpasses 5 -allowaccessmodification -dontpreverify -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose # 不要删除无用代码 -dontshrink # 不混淆泛型 -keepattributes Signature # 不混淆注解类 -keepattributes *Annotation* # 不混淆本地方法 -keepclasseswithmembernames class * { native ; } # 不混淆 Activity 在 XML 布局所设置的 onClick 属性值 -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } # 不混淆枚举类 -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # 不混淆 Parcelable 子类 -keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator CREATOR; } # 不混淆 Serializable 子类 -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient ; !private ; !private ; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # 不混淆 R 文件中的字段 -keepclassmembers class **.R$* { public static ; } # 不混淆 WebView 设置的 JS 接口的方法名 -keepclassmembers class * { @android.webkit.JavascriptInterface ; }