作者: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