Home | History | Annotate | Download | only in core
      1 # see http://sourceforge.net/tracker/?func=detail&aid=2787465&group_id=54750&atid=474707
      2 -optimizations !code/simplification/arithmetic
      3 -optimizations !code/simplification/cast
      4 -allowaccessmodification
      5 
      6 # To prevent name conflict in incremental obfuscation.
      7 -useuniqueclassmembernames
      8 
      9 # dex does not like code run through proguard optimize and preverify steps.
     10 -dontoptimize
     11 -dontpreverify
     12 
     13 # Don't obfuscate. We only need dead code striping.
     14 -dontobfuscate
     15 
     16 # Add this flag in your package's own configuration if it's needed.
     17 #-flattenpackagehierarchy
     18 
     19 # Some classes in the libraries extend package private classes to chare common functionality
     20 # that isn't explicitly part of the API
     21 -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers
     22 
     23 # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
     24 -keepclassmembers enum * {
     25     public static **[] values();
     26     public static ** valueOf(java.lang.String);
     27 }
     28 
     29 # For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
     30 -keepclasseswithmembernames class * {
     31     native <methods>;
     32 }
     33 
     34 # class$ methods are inserted by some compilers to implement .class construct,
     35 # see http://proguard.sourceforge.net/manual/examples.html#library
     36 -keepclassmembernames class * {
     37     java.lang.Class class$(java.lang.String);
     38     java.lang.Class class$(java.lang.String, boolean);
     39 }
     40 
     41 # Keep classes and methods that have the guava @VisibleForTesting annotation
     42 -keep @com.google.common.annotations.VisibleForTesting class *
     43 -keepclassmembers class * {
     44 @com.google.common.annotations.VisibleForTesting *;
     45 }
     46 
     47 # Keep serializable classes and necessary members for serializable classes
     48 # Copied from the ProGuard manual at http://proguard.sourceforge.net.
     49 -keepnames class * implements java.io.Serializable
     50 -keepclassmembers class * implements java.io.Serializable {
     51     static final long serialVersionUID;
     52     private static final java.io.ObjectStreamField[] serialPersistentFields;
     53     !static !transient <fields>;
     54     private void writeObject(java.io.ObjectOutputStream);
     55     private void readObject(java.io.ObjectInputStream);
     56     java.lang.Object writeReplace();
     57     java.lang.Object readResolve();
     58 }
     59 
     60 # Please specify classes to be kept explicitly in your package's configuration.
     61 # -keep class * extends android.app.Activity
     62 # -keep class * extends android.view.View
     63 # -keep class * extends android.app.Service
     64 # -keep class * extends android.content.BroadcastReceiver
     65 # -keep class * extends android.content.ContentProvider
     66 # -keep class * extends android.preference.Preference
     67 # -keep class * extends android.app.BackupAgent
     68 
     69 #-keep class * implements android.os.Parcelable {
     70 #  public static final android.os.Parcelable$Creator *;
     71 #}
     72 
     73 
     74