diff options
Diffstat (limited to 'examples/android-proguard-example/proguard.cfg')
-rw-r--r-- | examples/android-proguard-example/proguard.cfg | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/examples/android-proguard-example/proguard.cfg b/examples/android-proguard-example/proguard.cfg new file mode 100644 index 00000000..9bdaa484 --- /dev/null +++ b/examples/android-proguard-example/proguard.cfg @@ -0,0 +1,90 @@ +##---------------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. +-keepclasseswithmembernames class * { + native <methods>; +} + +-keepclasseswithmembernames class * { + public <init>(android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembernames 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 + +# For using GSON @Expose annotation +-keepattributes *Annotation* + +# 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 ---------- |