refactor proguard rules

// FREEBIE
This commit is contained in:
Jake McGinty 2015-04-01 18:04:23 -07:00
parent 87760a795d
commit 597f7bbafd
11 changed files with 99 additions and 7 deletions

View File

@ -157,11 +157,31 @@ android {
buildTypes {
debug {
minifyEnabled true
proguardFiles 'proguard.cfg'
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-google-play-services.pro',
'proguard-dagger.pro',
'proguard-jackson.pro',
'proguard-sqlite.pro',
'proguard-appcompat-v7.pro',
'proguard-square-okhttp.pro',
'proguard-square-okio.pro',
'proguard-spongycastle.pro',
'proguard-rounded-image-view.pro',
'proguard.cfg'
}
release {
minifyEnabled true
proguardFiles 'proguard.cfg'
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-google-play-services.pro',
'proguard-dagger.pro',
'proguard-jackson.pro',
'proguard-sqlite.pro',
'proguard-appcompat-v7.pro',
'proguard-square-okhttp.pro',
'proguard-square-okio.pro',
'proguard-spongycastle.pro',
'proguard-rounded-image-view.pro',
'proguard.cfg'
signingConfig signingConfigs.release
}
}

View File

@ -0,0 +1,8 @@
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
# below line disabled due to LGE ROM bug.
# -keep public class android.support.v7.internal.view.menu.** { *; }
-keep public class * extends android.support.v4.view.ActionProvider {
public <init>(android.content.Context);
}

20
proguard-dagger.pro Normal file
View File

@ -0,0 +1,20 @@
-keepattributes *Annotation*,EnclosingMethod
-keep @interface dagger.*,javax.inject.*
-keep @dagger.Module class *
-keepclassmembers class * {
@javax.inject.* *;
@dagger.* *;
<init>();
}
-keepclasseswithmembernames class * {
@javax.inject.* <fields>;
}
-keep class javax.inject.** { *; }
-keep class **$$ModuleAdapter
-keep class **$$InjectAdapter
-keep class **$$StaticInjection
-keep class dagger.** { *; }
-keep class * extends dagger.** { *; }
-keep interface dagger.** {*;}
-dontwarn dagger.internal.codegen.**

View File

@ -0,0 +1,19 @@
## Google Play Services 4.3.23 specific rules ##
## https://developer.android.com/google/play-services/setup.html#Proguard ##
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}

12
proguard-jackson.pro Normal file
View File

@ -0,0 +1,12 @@
# Proguard configuration for Jackson 2.x (fasterxml package instead of codehaus package)
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepnames class com.fasterxml.jackson.** {
*;
}
-keepnames interface com.fasterxml.jackson.** {
*;
}
-dontwarn com.fasterxml.jackson.databind.**
-keep class org.codehaus.** { *; }

View File

@ -0,0 +1 @@
-dontwarn com.squareup.picasso.**

View File

@ -0,0 +1,2 @@
-keep class org.spongycastle.** {*;}
-dontwarn javax.naming.**

2
proguard-sqlite.pro Normal file
View File

@ -0,0 +1,2 @@
-keep class org.sqlite.** { *; }
-keep class org.sqlite.database.** { *; }

View File

@ -0,0 +1,6 @@
# OkHttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**

5
proguard-square-okio.pro Normal file
View File

@ -0,0 +1,5 @@
# Okio
-keep class sun.misc.Unsafe { *; }
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**

View File

@ -1,6 +1,3 @@
-keepattributes **
-keep class org.whispersystems.** { *; }
-keep class org.thoughtcrime.securesms.** { *; }
-keep class !com.afollestad.materialdialogs.**,!com.nineoldandroids.**,!org.spongycastle.crypto.tls.**,!com.doomonafireball.betterpickers.**,!org.w3c.**,!android.support.v7.internal.view.menu.**,!org.spongycastle.asn1.**,!org.spongycastle.crypto.ec.**,!org.spongycastle.x509.**,!org.spongycastle.crypto.agreement.**,!org.spongycastle.crypto.ec.**,!org.spongycastle.math.**,!org.spongycastle.pqc.**,!org.spongycastle.jcajce.provider.asymmetric.**,!org.apache.http.**,** {*;}
-dontpreverify
-dontoptimize
-dontwarn **