|
| 1 | +-dontobfuscate |
| 2 | +-dontwarn ** |
| 3 | + |
| 4 | + |
| 5 | +# http://blog.androidquery.com/2011/06/android-optimization-with-proper.html |
| 6 | + |
| 7 | +-optimizationpasses 5 |
| 8 | +-dontusemixedcaseclassnames |
| 9 | +-dontskipnonpubliclibraryclasses |
| 10 | +-dontpreverify |
| 11 | +-verbose |
| 12 | +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* |
| 13 | + |
| 14 | +-keep public class * extends android.app.Activity |
| 15 | +-keep public class * extends android.app.Application |
| 16 | +-keep public class * extends android.app.Service |
| 17 | +-keep public class * extends android.content.BroadcastReceiver |
| 18 | +-keep public class * extends android.content.ContentProvider |
| 19 | +-keep public class * extends android.app.backup.BackupAgentHelper |
| 20 | +-keep public class * extends android.preference.Preference |
| 21 | +-keep public class com.android.vending.licensing.ILicensingService |
| 22 | + |
| 23 | +#keep all classes that might be used in XML layouts |
| 24 | +-keep public class * extends android.view.View |
| 25 | +-keep public class * extends android.app.Fragment |
| 26 | +-keep public class * extends android.support.v4.Fragment |
| 27 | + |
| 28 | + |
| 29 | +#keep all public and protected methods that could be used by java reflection |
| 30 | +-keepclassmembernames class * { |
| 31 | + public protected <methods>; |
| 32 | +} |
| 33 | + |
| 34 | +-keepclasseswithmembernames class * { |
| 35 | + native <methods>; |
| 36 | +} |
| 37 | + |
| 38 | +-keepclasseswithmembernames class * { |
| 39 | + public <init>(android.content.Context, android.util.AttributeSet); |
| 40 | +} |
| 41 | + |
| 42 | +-keepclasseswithmembernames class * { |
| 43 | + public <init>(android.content.Context, android.util.AttributeSet, int); |
| 44 | +} |
| 45 | + |
| 46 | + |
| 47 | +-keepclassmembers enum * { |
| 48 | + public static **[] values(); |
| 49 | + public static ** valueOf(java.lang.String); |
| 50 | +} |
| 51 | + |
| 52 | +-keep class * implements android.os.Parcelable { |
| 53 | + public static final android.os.Parcelable$Creator *; |
| 54 | +} |
| 55 | + |
| 56 | +-dontwarn **CompatHoneycomb |
| 57 | +-dontwarn org.htmlcleaner.* |
| 58 | + |
| 59 | + |
| 60 | +# PersistentCookieJar |
| 61 | +# https://github.com/franmontiel/PersistentCookieJar |
| 62 | +-dontwarn com.franmontiel.persistentcookiejar.** |
| 63 | +-keep class com.franmontiel.persistentcookiejar.** |
| 64 | + |
| 65 | +-keepclassmembers class * implements java.io.Serializable { |
| 66 | + static final long serialVersionUID; |
| 67 | + private static final java.io.ObjectStreamField[] serialPersistentFields; |
| 68 | + !static !transient <fields>; |
| 69 | + private void writeObject(java.io.ObjectOutputStream); |
| 70 | + private void readObject(java.io.ObjectInputStream); |
| 71 | + java.lang.Object writeReplace(); |
| 72 | + java.lang.Object readResolve(); |
| 73 | +} |
| 74 | + |
| 75 | + |
| 76 | +# AndroidAnnotations |
| 77 | +# https://github.com/androidannotations/androidannotations/wiki/ProGuard |
| 78 | + |
| 79 | +-optimizationpasses 5 |
| 80 | +-dontusemixedcaseclassnames |
| 81 | +-dontskipnonpubliclibraryclasses |
| 82 | +-dontpreverify |
| 83 | +-verbose |
| 84 | +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* |
| 85 | + |
| 86 | +-keep public class * extends android.app.Activity |
| 87 | +-keep public class * extends android.app.Application |
| 88 | +-keep public class * extends android.app.Service |
| 89 | +-keep public class * extends android.content.BroadcastReceiver |
| 90 | +-keep public class * extends android.content.ContentProvider |
| 91 | +-keep public class * extends android.app.backup.BackupAgentHelper |
| 92 | +-keep public class * extends android.preference.Preference |
| 93 | +-keep public class com.android.vending.licensing.ILicensingService |
| 94 | + |
| 95 | +-keepclasseswithmembernames class * { |
| 96 | + native <methods>; |
| 97 | +} |
| 98 | + |
| 99 | +-keepclasseswithmembernames class * { |
| 100 | + public <init>(android.content.Context, android.util.AttributeSet); |
| 101 | +} |
| 102 | + |
| 103 | +-keepclasseswithmembernames class * { |
| 104 | + public <init>(android.content.Context, android.util.AttributeSet, int); |
| 105 | +} |
| 106 | + |
| 107 | +-keepclassmembers enum * { |
| 108 | + public static **[] values(); |
| 109 | + public static ** valueOf(java.lang.String); |
| 110 | +} |
| 111 | + |
| 112 | +-keep class * implements android.os.Parcelable { |
| 113 | + public static final android.os.Parcelable$Creator *; |
| 114 | +} |
| 115 | + |
| 116 | + |
| 117 | +# ButterKnife |
| 118 | +# https://guides.codepath.com/android/Configuring-ProGuard#butterknife |
| 119 | + |
| 120 | +-keep class butterknife.** { *; } |
| 121 | +-dontwarn butterknife.internal.** |
| 122 | +-keep class **$$ViewBinder { *; } |
| 123 | + |
| 124 | +-keepclasseswithmembernames class * { |
| 125 | + @butterknife.* <fields>; |
| 126 | +} |
| 127 | + |
| 128 | +-keepclasseswithmembernames class * { |
| 129 | + @butterknife.* <methods>; |
| 130 | +} |
| 131 | + |
| 132 | + |
| 133 | +# OkHttp3 |
| 134 | +# https://guides.codepath.com/android/Configuring-ProGuard#okhttp3 |
| 135 | + |
| 136 | +-keepattributes Signature |
| 137 | +-keepattributes *Annotation* |
| 138 | +-keep class okhttp3.** { *; } |
| 139 | +-keep interface okhttp3.** { *; } |
| 140 | +-dontwarn okhttp3.** |
| 141 | +-dontnote okhttp3.** |
| 142 | +# Okio |
| 143 | +-keep class sun.misc.Unsafe { *; } |
| 144 | +-dontwarn java.nio.file.* |
| 145 | +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement |
| 146 | + |
| 147 | + |
| 148 | +# Retrolambda |
| 149 | +# https://guides.codepath.com/android/Configuring-ProGuard#retrolambda |
| 150 | + |
| 151 | +-dontwarn java.lang.invoke.* |
| 152 | + |
| 153 | + |
| 154 | +# EventBus |
| 155 | +# https://github.com/greenrobot/EventBus/blob/v2/HOWTO.md |
| 156 | + |
| 157 | +-keepclassmembers class ** { |
| 158 | + public void onEvent*(***); |
| 159 | +} |
| 160 | + |
| 161 | + |
| 162 | +# Crashlytics |
| 163 | +# https://docs.fabric.io/android/crashlytics/dex-and-proguard.html |
| 164 | + |
| 165 | +-keepattributes *Annotation* |
| 166 | +-keepattributes SourceFile,LineNumberTable |
| 167 | +-keep public class * extends java.lang.Exception |
| 168 | + |
| 169 | + |
| 170 | +# SLF4J |
| 171 | +# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-logback-android.pro |
| 172 | + |
| 173 | +-keep class org.slf4j.** { *; } |
| 174 | + |
| 175 | + |
| 176 | +# Picasso |
| 177 | +# https://github.com/square/picasso |
| 178 | + |
| 179 | +-dontwarn com.squareup.okhttp.** |
| 180 | + |
| 181 | + |
| 182 | +# greenDAO 2 |
| 183 | +# http://greenrobot.org/greendao/documentation//technical-faq |
| 184 | + |
| 185 | +-keepclassmembers class * extends de.greenrobot.dao.AbstractDao { |
| 186 | +public static java.lang.String TABLENAME; |
| 187 | +} |
| 188 | +-keep class **$Properties |
| 189 | + |
| 190 | + |
| 191 | +# Jsoup |
| 192 | +# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-jsoup.pro |
| 193 | + |
| 194 | +-keeppackagenames org.jsoup.nodes |
| 195 | + |
| 196 | + |
| 197 | +# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-support-design.pro |
| 198 | + |
| 199 | +-dontwarn android.support.design.** |
| 200 | +-keep class android.support.design.** { *; } |
| 201 | +-keep interface android.support.design.** { *; } |
| 202 | +-keep public class android.support.design.R$* { *; } |
| 203 | + |
| 204 | + |
| 205 | +# https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-support-v7-appcompat.pro |
| 206 | + |
| 207 | +-keep public class android.support.v7.widget.** { *; } |
| 208 | +-keep public class android.support.v7.internal.widget.** { *; } |
| 209 | +-keep public class android.support.v7.internal.view.menu.** { *; } |
| 210 | + |
| 211 | +-keep public class * extends android.support.v4.view.ActionProvider { |
| 212 | + public <init>(android.content.Context); |
| 213 | +} |
| 214 | + |
| 215 | + |
| 216 | +#http://stackoverflow.com/questions/27986264/android-proguard-with-httpcore-and-httpmime-using-android-studio-and-gradle |
| 217 | + |
| 218 | +-dontwarn org.apache.commons.** |
| 219 | +-keep class org.apache.http.** { *; } |
| 220 | +-dontwarn org.apache.http.** |
| 221 | + |
| 222 | + |
| 223 | +# Spullara Mustache |
| 224 | +# https://github.com/contentful/vault/issues/47 |
| 225 | + |
| 226 | +-dontwarn org.jruby.** |
| 227 | + |
| 228 | + |
| 229 | +# Configuration for Guava 18.0 |
| 230 | +# |
| 231 | +# disagrees with instructions provided by Guava project: https://code.google.com/p/guava-libraries/wiki/UsingProGuardWithGuava |
| 232 | + |
| 233 | +-keep class com.google.common.io.Resources { |
| 234 | + public static <methods>; |
| 235 | +} |
| 236 | +-keep class com.google.common.collect.Lists { |
| 237 | + public static ** reverse(**); |
| 238 | +} |
| 239 | +-keep class com.google.common.base.Charsets { |
| 240 | + public static <fields>; |
| 241 | +} |
| 242 | + |
| 243 | +-keep class com.google.common.base.Joiner { |
| 244 | + public static com.google.common.base.Joiner on(java.lang.String); |
| 245 | + public ** join(...); |
| 246 | +} |
| 247 | + |
| 248 | +-keep class com.google.common.collect.MapMakerInternalMap$ReferenceEntry |
| 249 | +-keep class com.google.common.cache.LocalCache$ReferenceEntry |
| 250 | + |
| 251 | +# http://stackoverflow.com/questions/9120338/proguard-configuration-for-guava-with-obfuscation-and-optimization |
| 252 | +-dontwarn javax.annotation.** |
| 253 | +-dontwarn javax.inject.** |
| 254 | +-dontwarn sun.misc.Unsafe |
| 255 | + |
| 256 | +# Guava 19.0 |
| 257 | +-dontwarn java.lang.ClassValue |
| 258 | +-dontwarn com.google.j2objc.annotations.Weak |
| 259 | +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement |
0 commit comments