作者:Tong,歡迎交流酸役。
郵箱:wangtotang@gmail.com
GitHub:https://github.com/wangtotang
導(dǎo)讀:
學(xué)習(xí)完了Android ProGuard后晴股,當(dāng)然要立即實踐它《雇現(xiàn)在我們來嘗試為自己的工程進(jìn)行ProGuard配置。
這是這個系列的第三篇文章舱殿,主要是收集了我們常用到的ProGuard配置形用。
本篇文章主要講解ProGuardRules這個開源工程就轧。
這個工程項目收集了大量框架的ProGuard規(guī)則配置,在開發(fā)過程中,如果需要添加各個框架ProGuard的配置規(guī)則田度,可以參考工程下的Android·Library·Module的proguardrules/rules
目錄妒御,一個文件就是一個框架的ProGuard規(guī)則。
Usage
這里提供三種使用方法镇饺,依個人愛好決定乎莉。
1.Gradle Dependencies
dependencies {
compile 'com.tong.proguardrules:proguardrules:latest.release'
}
2.FileTree
在src
同級目錄下新建文件夾,如rules
,然后將需要的配置規(guī)則文件復(fù)制進(jìn)去惋啃,然后進(jìn)行以下配置哼鬓。
android {
...
buildTypes {
release {
...
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles fileTree(dir: 'rules', include: ['*.pro']).asList().toArray()
}
}
}
- 在Gradle Plugin 2.2.0 以下,還可以使用以下語法:
android {
...
buildTypes {
release {
...
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
FileCollection proguardFileCollection = files { file('./rules').listFiles() }
proguardFiles(proguardFileCollection)
}
}
}
3.Files
直接將文件復(fù)制到proguard-rules.pro
同級目錄下边灭,然后進(jìn)行以下配置异希。
android {
...
buildTypes {
release {
...
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFile 'proguard-eventbus.txt'
proguardFile 'proguard-google-play-services.txt'
proguardFile 'proguard-gson.txt'
}
}
}
Libraries
這些ProGuard規(guī)則包含以下的框架:
- ACRA 4.5.0
- ActionBarSherlock 4.4.0
- ActiveAndroid
- Adjust
- Amazon Web Services 1.6.x / 1.7.x
- Amazon Web Services 2.1.x
- AndroidAnnotations
- android-gif-drawable
- Apache Avro
- Alibaba Fastjson
- Butterknife
- Baidu
- Crashlytics 1.+ / 2.+
- Crittercism
- EventBus 2.0.2
- Facebook 3.2.0
- Facebook Conceal
- Facebook Stetho
- Facebook Fresco
- Flurry 3.4.0
- Google Analytics 3.0+
- Google Guava
- Google Play Services 4.3.23
- GreenDao
- Glide
- GSON
- Jackson 2.x
- Joda-Convert 1.6
- Joda-Time 2.3
- Jsoup
- LoganSquare
- New Relic
- Parse
- Realm
- RxJava
- RxJava-Promises
- Retrolambda
- Support Library
- Sqlite
- Square Dagger
- Square OkHttp
- Square Okio
- Square Otto
- Square Picasso
- Square Retrofit
- Square Wire
- SVG Android
- Icepick
- Simple-Xml
- Tencent Bugly