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