Why Gradle
Gradle makes the impossible possible, the possible easy and the easy elegant.
在Android开发中经常会用Gradle来构建项目,Gradle能很方便的项目的版本集成和打包,虽Gradle官方已经给出很详细的文档了,但还是有必要抽离出一些常用的配置。
整个Android项目的编译依赖于Gradle的编译,虽然前几天发布了Android 2.0 stable,拥有了Instant Run强大的功能,但是有“改一行布局代码Run一次”习惯的同学有必要知道如何加速Gradle的编译。
主要介绍一下:
如何配置Gradle
如何加速Gradle的编译
一些常用的项目构建知识
How Gradle
gradle.properties文件适合配置IDE的属性,当然也适合配置你在项目的关键/敏感参数,因为它将运行在Incubating parallel mode(
孵化并行模式,应该解释为运行时候嵌入在项目当中),也是属于默认的gitignore,这样你的敏感信息(key账号密码,appkey等)就不会被push到git了,你需要注意的是 属性中有中文的话,记得转成unicode来显示,不然可能引发一些莫名的错误
类似于这样,你可以把你的签名keystore的信息,服务端的endpoint,第三方服务的appkey,ide的配置信息放在这。
KEY_ALIAS=yat3s
KEYSTORE_PASSWORD=123456
KEY_PASSWORD=123456
umeng_appkey_product=adcdefghijk
umeng_appkey_dev=adcdefghijk
deepshare_appid=adcdefghijk
bugly_appid_product=adcdefghijk
bugly_appid_dev=adcdefghijk
rong_appkey=adcdefghijk
endpoint_product=http://api.yat3s.com
endpoint_dev=http://api.yat3s.com:9000
app_name=\u006f\u0070\u0065\u006e\u5f00\u8154`
那么配置好这些信息如何在Gradle和Java中使用呢?
其实Groovy语言和Java很接近也很好用,往下看↓
buildTypes
buildTypes {
release {
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "ENDPOINT", "\"${endpoint_product}\""
resValue "string", "umeng_appkey", "${umeng_appkey_product}"
resValue "string", "deepshare_appid",