1
0
mirror of https://github.com/etesync/android synced 2024-12-23 07:08:16 +00:00

shrink bytecode with ProGuard for both debug/release builds (closes #202)

* enable ProGuard for debug builds because real-life testing is done with debug builds
This commit is contained in:
R Hirner 2014-12-20 23:33:31 +01:00
parent 5ce03abad6
commit 8a75552a4c
2 changed files with 40 additions and 4 deletions

View File

@ -11,10 +11,13 @@ android {
}
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
release {
minifyEnabled false
// minifyEnabled true
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
dexOptions {
@ -32,7 +35,7 @@ dependencies {
compile 'org.apache.commons:commons-io:1.3.2'
// Lombok for useful @helpers
compile 'org.projectlombok:lombok:1.14.8'
provided 'org.projectlombok:lombok:1.14.8'
// ical4j for parsing/generating iCalendars
compile 'org.mnode.ical4j:ical4j:1.0.6'

33
app/proguard-rules.txt Normal file
View File

@ -0,0 +1,33 @@
# ProGuard usage for DAVdroid:
# shrinking yes - main reason for using ProGuard
# optimization no - too risky
# obfuscation no - DAVdroid is open-source
# preverification no (Android default)
-dontobfuscate
# SimpleXML
-keep class org.simpleframework.** { *; } # keep all interfaces etc. to allow reflection
-dontwarn com.bea.xml.stream.** # StAX API not used
-dontwarn javax.xml.stream.**
# ez-vcard
-dontwarn com.fasterxml.jackson.** # Jackson JSON Processor (for jCards) not used
-dontwarn freemarker.** # freemarker templating library (for creating hCards) not used
-dontwarn org.jsoup.** # jsoup library (for hCard parsing) not used
-dontwarn sun.misc.Perf
# ical4j: ignore unused dynamic libraries
-dontwarn groovy.** # Groovy-based ContentBuilder not used
-dontwarn org.codehaus.groovy.**
-dontwarn org.apache.commons.logging.** # Commons logging is not available
-dontwarn net.fortuna.ical4j.model.** # ignore warnings from Groovy dependency
# dnsjava
-dontwarn sun.net.spi.nameservice.** # not available on Android
# DAVdroid
-keep class at.bitfire.davdroid.** { *; } # all DAVdroid code is required