android gradle構建版本

在實際開發中,網絡請求的根域名通常是不同的版本對應不同的服務器,比如我們現在分爲開發、測試、預發佈和正式,四個環境,以前是手動註釋代碼來更換環境,每次要操作很多,萬一遺漏一處,可能就會出現問題。最好的方法就是根據不同的版本,自動構建相應的環境,這樣就不會出現由於人爲因素導致的問題。
module中的build.gradle的buildType一般如下:

buildTypes {
    debug {
        // 測試環境配置
    }
    
    release {
        // 正式環境配置
    }
}

只有debug和release兩個版本,然而我們的環境是四個,於是再增加兩個:

buildTypes {
    dev {
        // 開發環境配置
    }
    debug {
        // 測試環境配置
    }
    preRelease {
        // 預發佈環境配置
    }
    release {
        // 正式環境配置
    }
}

好,現在我們可以看到在打包的環境,就有4個選項供我們選擇了。
在這裏插入圖片描述
現在問題是,如何根據不同的版本獲取不同的設定值。buildTypes 中的buildConfigField 可以幫助我們實現:

buildTypes {
    dev {
        // 開發環境配置
        buildConfigField "String", "BASE_URL", '"http://開發.com/"'
    }
    debug {
        // 測試環境配置
        buildConfigField "String", "BASE_URL", '"http://測試.com/"'
    }
    preRelease {
        // 預發佈環境配置
        buildConfigField "String", "BASE_URL", '"http://預發佈.com/"'
    }
    release {
        // 正式環境配置
        buildConfigField "String", "BASE_URL", '"http://正式.com/"'
    }
}

buildConfigField參數分別爲參數類型、參數名字、參數值。每個module都會根據buildTypes 在build目錄下自動生成一個BuildConfig.java的文件:

public final class BuildConfig {
  // ...
  public static final String BASE_URL = "http://api.t1.ctsax.com/";
}

然後我們就可以在java代碼中使用了:

/**
 * 描述:網絡請求配置類
 */
public final class Config {
    // ...
    public static final String BASE_URL = BuildConfig.BASE_URL;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章