From 7bf39ca87786d5a594e869a318f58206f0f37475 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Sun, 18 Mar 2018 18:09:42 +0100 Subject: [PATCH] Enable minification for release build. This reduces result apk size around 2x times. Signed-off-by: Yahor Berdnikau --- ultrasonic/build.gradle | 7 +++++-- ultrasonic/minify/proguard-jackson.pro | 11 +++++++++++ ultrasonic/minify/proguard-okhttp.pro | 8 ++++++++ ultrasonic/minify/proguard-retrofit.pro | 10 ++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 ultrasonic/minify/proguard-jackson.pro create mode 100644 ultrasonic/minify/proguard-okhttp.pro create mode 100644 ultrasonic/minify/proguard-retrofit.pro diff --git a/ultrasonic/build.gradle b/ultrasonic/build.gradle index 1a0b385c..27ecb88d 100644 --- a/ultrasonic/build.gradle +++ b/ultrasonic/build.gradle @@ -19,8 +19,11 @@ android { buildTypes { release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), + 'minify/proguard-okhttp.pro', + 'minify/proguard-retrofit.pro', + 'minify/proguard-jackson.pro' } debug { minifyEnabled false diff --git a/ultrasonic/minify/proguard-jackson.pro b/ultrasonic/minify/proguard-jackson.pro new file mode 100644 index 00000000..e5caeef8 --- /dev/null +++ b/ultrasonic/minify/proguard-jackson.pro @@ -0,0 +1,11 @@ +#### From Jackson + +-keepattributes *Annotation*,EnclosingMethod,Signature +-keepnames class com.fasterxml.jackson.** { +*; +} +-keepnames interface com.fasterxml.jackson.** { + *; +} +-dontwarn com.fasterxml.jackson.databind.** +-keep class org.codehaus.** { *; } diff --git a/ultrasonic/minify/proguard-okhttp.pro b/ultrasonic/minify/proguard-okhttp.pro new file mode 100644 index 00000000..f0cdf30c --- /dev/null +++ b/ultrasonic/minify/proguard-okhttp.pro @@ -0,0 +1,8 @@ +#### From okhttp + +-dontwarn okhttp3.** +-dontwarn okio.** +-dontwarn javax.annotation.** +-dontwarn org.conscrypt.** +# A resource is loaded with a relative path so the package of this class must be preserved. +-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase diff --git a/ultrasonic/minify/proguard-retrofit.pro b/ultrasonic/minify/proguard-retrofit.pro new file mode 100644 index 00000000..f6dd5b8f --- /dev/null +++ b/ultrasonic/minify/proguard-retrofit.pro @@ -0,0 +1,10 @@ +#### From retrofit + +# Retain generic type information for use by reflection by converters and adapters. +-keepattributes Signature +# Retain service method parameters. +-keepclassmembernames,allowobfuscation interface * { + @retrofit2.http.* ; +} +# Ignore annotation used for build tooling. +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement