proguard-base.pro 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # 基于 sdk/tools/proguard/proguard-android-optimize.txt 修改
  2. -optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
  3. -optimizationpasses 5
  4. -allowaccessmodification
  5. -dontpreverify
  6. -dontusemixedcaseclassnames
  7. -dontskipnonpubliclibraryclasses
  8. -verbose
  9. # 不要删除无用代码
  10. -dontshrink
  11. # 不混淆泛型
  12. -keepattributes Signature
  13. # 不混淆注解类
  14. -keepattributes *Annotation*
  15. # 不混淆本地方法
  16. -keepclasseswithmembernames class * {
  17. native <methods>;
  18. }
  19. # 不混淆 Activity 在 XML 布局所设置的 onClick 属性值
  20. -keepclassmembers class * extends android.app.Activity {
  21. public void *(android.view.View);
  22. }
  23. # 不混淆枚举类
  24. -keepclassmembers enum * {
  25. public static **[] values();
  26. public static ** valueOf(java.lang.String);
  27. }
  28. # 不混淆 Parcelable 子类
  29. -keepclassmembers class * implements android.os.Parcelable {
  30. public static final android.os.Parcelable$Creator CREATOR;
  31. }
  32. # 不混淆 Serializable 子类
  33. -keepclassmembers class * implements java.io.Serializable {
  34. static final long serialVersionUID;
  35. private static final java.io.ObjectStreamField[] serialPersistentFields;
  36. !static !transient <fields>;
  37. !private <fields>;
  38. !private <methods>;
  39. private void writeObject(java.io.ObjectOutputStream);
  40. private void readObject(java.io.ObjectInputStream);
  41. java.lang.Object writeReplace();
  42. java.lang.Object readResolve();
  43. }
  44. # 不混淆 R 文件中的字段
  45. -keepclassmembers class **.R$* {
  46. public static <fields>;
  47. }
  48. # 不混淆 WebView 设置的 JS 接口的方法名
  49. -keepclassmembers class * {
  50. @android.webkit.JavascriptInterface <methods>;
  51. }