现在AndroidStudio已经是开发Android的主流IDE了,当然还有人在使用Eclipse特别是那些项目中使用自己开发的so文件的公司可能由于各种原因还没切换到AndroidStudio。在AS中常见的引用库我们是在我们项目的build.gradle进行引入常用库,并使用gradle来进行渠道打包等操作。
比如上图中的我们在gradle中引入的常用库,然后还有一些版本信息如下:
defaultConfig {
applicationId "neacy.rxdemo"
minSdkVersion 23
targetSdkVersion "23.0.2"
versionCode 1
versionName "1.0"
}
是吧一大堆的数字,在我们代码中如果如果说突然出现一个常量没有注释的话我们压根就不太明白到底是干嘛用,所以被人称之为”魔数”。当然在gradle中的这些数字也有大概的意思,每逢这些常量库版本升级需要改变版本号、我们项目版本迭代的时候就得每一行进行修改,万一漏了一处就是个悲剧诞生的开始。
所以我们在根目录下新建一个config.gradle来进行统一配置
然后在里面声明脚本代码来进行配置。
ext{
android = [compileSdkVersion : 23,
buildToolsVersion : "23.0.2",
minSdkVersion : 14,
targetSdkVersion : 23,
versionCode : 1,
versionName : "1.0"]
dependencies = ["support-v7" : 'com.android.support:appcompat-v7:23.+',
"design" : 'com.android.support:design:23.+',
"rx_android" : 'io.reactivex:rxandroid:1.0.1',
"rx_binding" : 'com.jakewharton.rxbinding:rxbinding:0.2.0',
"retrofit" : 'com.squareup.retrofit2:retrofit:2.0.0-beta3',
"retrofit_adapter" : 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta3']
}
这步完成之后我们需要在根目录下的build.gradle进行声明这个config.gradle
一切就绪之后,接下来就是在项目的gradle中进行引用即可了。
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
applicationId "neacy.rxdemo"
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile rootProject.ext.dependencies["support-v7"]
compile rootProject.ext.dependencies["design"]
// RxAndroid
compile rootProject.ext.dependencies["rx_android"]
compile rootProject.ext.dependencies["rx_binding"]
// Retrofit
compile rootProject.ext.dependencies["retrofit"]
compile rootProject.ext.dependencies["retrofit_adapter"]
}
然后每次本部更新之后我们只需要修改config.gradle对应的数字即可了,再也不用怕忘记改漏改了。