1. 程式人生 > >使用Gradle統一管理常用庫和版本號

使用Gradle統一管理常用庫和版本號

現在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對應的數字即可了,再也不用怕忘記改漏改了。