Skip to content

Instantly share code, notes, and snippets.

@huttneab
Created June 20, 2014 18:03
Show Gist options
  • Select an option

  • Save huttneab/55236ec047f239b60e5c to your computer and use it in GitHub Desktop.

Select an option

Save huttneab/55236ec047f239b60e5c to your computer and use it in GitHub Desktop.

Revisions

  1. huttneab created this gist Jun 20, 2014.
    123 changes: 123 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,123 @@
    ##---------------Begin: proguard configuration common for all Android apps ----------
    -optimizationpasses 5
    -dontusemixedcaseclassnames
    -dontskipnonpubliclibraryclasses
    -dontskipnonpubliclibraryclassmembers
    -dontpreverify
    -verbose
    -dump class_files.txt
    -printseeds seeds.txt
    -printusage unused.txt
    -printmapping mapping.txt
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

    -allowaccessmodification
    -keepattributes *Annotation*
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable
    -repackageclasses ''

    -keep public class * extends android.app.Activity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public class * extends android.content.ContentProvider
    -keep public class * extends android.app.backup.BackupAgentHelper
    -keep public class * extends android.preference.Preference
    -keep public class com.android.vending.licensing.ILicensingService
    -dontnote com.android.vending.licensing.ILicensingService

    # Explicitly preserve all serialization members. The Serializable interface
    # is only a marker interface, so it wouldn't save them.
    -keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
    }

    # Preserve all native method names and the names of their classes.
    -keepclasseswithmembers class * {
    native <methods>;
    }

    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
    }

    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
    }

    # Preserve static fields of inner classes of R classes that might be accessed
    # through introspection.
    -keepclassmembers class **.R$* {
    public static <fields>;
    }

    # Preserve the special static methods that are required in all enumeration classes.
    -keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
    }

    -keep public class * {
    public protected *;
    }

    -keep class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
    }
    ##---------------End: proguard configuration common for all Android apps ----------

    ##---------------Begin: proguard configuration for Gson ----------
    # Gson uses generic type information stored in a class file when working with fields. Proguard
    # removes such information by default, so configure it to keep all of it.
    -keepattributes Signature

    # Gson specific classes
    -keep class sun.misc.Unsafe { *; }
    #-keep class com.google.gson.stream.** { *; }

    # Application classes that will be serialized/deserialized over Gson
    -keep class com.google.gson.examples.android.model.** { *; }

    ##---------------End: proguard configuration for Gson ----------

    ##---------------Begin: proguard configuration for ButterKnife ----------
    -dontwarn butterknife.internal.**
    -keep class **$$ViewInjector { *; }
    -keepnames class * { @butterknife.InjectView *;}
    ##---------------End: proguard configuration for ButterKnife ----------

    -keep class retrofit.** { *; }
    -keep interface retrofit.** { *; }
    -keep class retrofit.http.** { *; }
    -keep class retrofit.client.** { *; }

    -keep class com.squareup.okhttp.** { *; }
    -keep interface com.squareup.okhttp.** { *; }

    -keepclasseswithmembers class * {
    @retrofit.http.* <methods>;
    }

    -keep class com.squareup.picasso.** { *;}
    -keep interface com.squareup.picasso.** { *;}

    -keep class com.squareup.otto.** { *;}
    -keep interface com.squareup.otto.** { *;}

    -keep class com.squareup.phrase.** { *;}
    -keep interface com.squareup.phrase.** { *;}

    -keep class com.path.** { *;}
    -keep interface com.path.** { *;}

    -dontwarn rx.**
    -dontwarn org.mockito.**
    -dontwarn com.google.appengine.api.urlfetch.**
    -dontwarn com.squareup.okhttp.internal.http.*
    -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement