作者:Tong,歡迎交流。
郵箱:wangtotang@gmail.com
GitHub:https://github.com/wangtotang
導讀:
學習完了Android ProGuard后,當然要立即實踐它。現在我們來嘗試為自己的工程進行ProGuard配置。
這是這個系列的第三篇文章,主要是收集了我們常用到的ProGuard配置。
本篇文章主要講解ProGuardRules這個開源工程。
這個工程項目收集了大量框架的ProGuard規則配置,在開發過程中,如果需要添加各個框架ProGuard的配置規則,可以參考工程下的Android·Library·Module的proguardrules/rules
目錄,一個文件就是一個框架的ProGuard規則。
Usage
這里提供三種使用方法,依個人愛好決定。
1.Gradle Dependencies
dependencies {
compile 'com.tong.proguardrules:proguardrules:latest.release'
}
2.FileTree
在src
同級目錄下新建文件夾,如rules
,然后將需要的配置規則文件復制進去,然后進行以下配置。
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
直接將文件復制到proguard-rules.pro
同級目錄下,然后進行以下配置。
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規則包含以下的框架:
- 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