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 
      5 # To prevent name conflict in incremental obfuscation.
      6 -useuniqueclassmembernames
      7 
      8 # Some classes in the libraries extend package private classes to chare common functionality
      9 # that isn't explicitly part of the API
     10 -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers
     11 
     12 # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
     13 -keepclassmembers enum * {
     14     public static **[] values();
     15     public static ** valueOf(java.lang.String);
     16 }
     17 
     18 # For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
     19 -keepclasseswithmembernames class * {
     20     native <methods>;
     21 }
     22 
     23 # class$ methods are inserted by some compilers to implement .class construct,
     24 # see http://proguard.sourceforge.net/manual/examples.html#library
     25 -keepclassmembernames class * {
     26     java.lang.Class class$(java.lang.String);
     27     java.lang.Class class$(java.lang.String, boolean);
     28 }
     29 
     30 # Keep serializable classes and necessary members for serializable classes
     31 # Copied from the ProGuard manual at http://proguard.sourceforge.net.
     32 -keepnames class * implements java.io.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 void writeObject(java.io.ObjectOutputStream);
     38     private void readObject(java.io.ObjectInputStream);
     39     java.lang.Object writeReplace();
     40     java.lang.Object readResolve();
     41 }
     42 
     43 # Keep Throwable's constructor that takes a String argument.
     44 -keepclassmembers class * extends java.lang.Throwable {
     45   <init>(java.lang.String);
     46 }
     47 
     48 # Please specify classes to be kept explicitly in your package's configuration.
     49 # -keep class * extends android.app.Activity
     50 # -keep class * extends android.view.View
     51 # -keep class * extends android.app.Service
     52 # -keep class * extends android.content.BroadcastReceiver
     53 # -keep class * extends android.content.ContentProvider
     54 # -keep class * extends android.preference.Preference
     55 # -keep class * extends android.app.BackupAgent
     56 
     57 # Parcelable CREATORs must be kept for Parcelable functionality
     58 -keep class * implements android.os.Parcelable {
     59   public static final ** CREATOR;
     60 }
     61 
     62 # The support library contains references to newer platform versions.
     63 # Don't warn about those in case this app is linking against an older
     64 # platform version.  We know about them, and they are safe.
     65 # See proguard-android.txt in the SDK package.
     66 #
     67 # DO NOT USE THIS: We figured it's dangerous to blindly ignore all support library warnings.
     68 # ProGuard may strip members of subclass of unknown super classes, in case an app is linking against
     69 # LOCAL_SDK_VERSION lower than the support library's LOCAL_SDK_VERSION.
     70 # See bug/20658265.
     71 # -dontwarn android.support.**
     72 
     73 # Less spammy.
     74 -dontnote
     75