You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

proguard-base.pro 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. -keepattributes Signature
  11. # 不混淆注解类
  12. -keepattributes *Annotation*
  13. # 不混淆本地方法
  14. -keepclasseswithmembernames class * {
  15. native <methods>;
  16. }
  17. # 不混淆 Activity 在 XML 布局所设置的 onClick 属性值
  18. -keepclassmembers class * extends android.app.Activity {
  19. public void *(android.view.View);
  20. }
  21. # 不混淆枚举类
  22. -keepclassmembers enum * {
  23. public static **[] values();
  24. public static ** valueOf(java.lang.String);
  25. }
  26. # 不混淆 Parcelable 子类
  27. -keepclassmembers class * implements android.os.Parcelable {
  28. public static final android.os.Parcelable$Creator CREATOR;
  29. }
  30. # 不混淆 Serializable 子类
  31. -keepclassmembers class * implements java.io.Serializable {
  32. static final long serialVersionUID;
  33. private static final java.io.ObjectStreamField[] serialPersistentFields;
  34. !static !transient <fields>;
  35. !private <fields>;
  36. !private <methods>;
  37. private void writeObject(java.io.ObjectOutputStream);
  38. private void readObject(java.io.ObjectInputStream);
  39. java.lang.Object writeReplace();
  40. java.lang.Object readResolve();
  41. }
  42. # 不混淆 R 文件中的字段
  43. -keepclassmembers class **.R$* {
  44. public static <fields>;
  45. }
  46. # 不混淆 WebView 设置的 JS 接口的方法名
  47. -keepclassmembers class * {
  48. @android.webkit.JavascriptInterface <methods>;
  49. }