From 3ff5ad0e7a44e5cc112a7a3140d5e0b2431b1444 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Sat, 5 Mar 2016 13:47:43 +0100 Subject: [PATCH] Start using proguard --- play-services-core/build.gradle | 6 ++++++ play-services-core/proguard-rules.pro | 1 + proguard.flags | 27 ++++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 120000 play-services-core/proguard-rules.pro diff --git a/play-services-core/build.gradle b/play-services-core/build.gradle index c49804bc..5c2d54f1 100644 --- a/play-services-core/build.gradle +++ b/play-services-core/build.gradle @@ -98,6 +98,12 @@ android { // TODO: Remove MissingTranslation once we have stable strings and proper translations. disable 'MissingTranslation', 'InvalidPackage' } + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } } if (file('user.gradle').exists()) { diff --git a/play-services-core/proguard-rules.pro b/play-services-core/proguard-rules.pro new file mode 120000 index 00000000..155f5218 --- /dev/null +++ b/play-services-core/proguard-rules.pro @@ -0,0 +1 @@ +../proguard.flags \ No newline at end of file diff --git a/proguard.flags b/proguard.flags index e53c0c85..9c6d08fd 100644 --- a/proguard.flags +++ b/proguard.flags @@ -1,10 +1,35 @@ +# We use ProGuard for optimizations, obfuscation is for those who have sth to hide +-dontobfuscate +-optimizations !code/allocation/variable + +# We're referencing stuff that is unknown to the system +-libraryjar ../unifiednlp-compat/build/classes/main +-dontwarn java.awt.** +-dontwarn javax.annotation.** + +# OkIO, OkHttp +-dontwarn okio.** +-dontwarn com.squareup.okhttp.** +-dontwarn org.oscim.tiling.source.OkHttpEngine +-dontwarn org.oscim.tiling.source.OkHttpEngine$OkHttpFactory + # Disable ProGuard Notes, they won't help here -dontnote # Keep dynamically loaded GMS classes -keep public class com.google.android.gms.maps.internal.CreatorImpl -keep public class com.google.android.gms.common.security.ProviderInstallerImpl +-keep public class com.google.android.gms.plus.plusone.PlusOneButtonCreatorImpl -keepclassmembers class com.google.android.gms.common.security.ProviderInstallerImpl { public *; -} \ No newline at end of file +} + +# Keep library info +-keep class **.BuildConfig +-keepclassmembers class **.BuildConfig { *; } + +# Keep protobuf class builders +-keep public class * extends com.squareup.wire.Message +-keep public class * extends com.squareup.wire.Message$Builder +-keepclassmembers class * extends com.squareup.wire.Message$Builder { public (...); }