Android配置build.gradle的buildTypes動態自動維護debug和release包自定義字段變量值
在Android編譯出包階段,debug包和正式的release有時候須要做出有所區別的調整。
好比最多見的是App應用程序中Log日誌輸出開關的控制。開發者但願在debug階段Log日誌可以打開輸出,以便排查定位問題,而在正式的release包中,爲了不泄露App應用程序內部的信息而須要把Log日誌輸出關閉掉,這一般須要依賴於BuildConfig裏面Android系統定義的靜態變量值DEBUG,DEBUG是一個Android系統預先爲開發者準備的布爾值,當在debug階段,這個值爲true,當在打出的release包時候,這個值爲false。
如今若是單單一個BuildConfig.DEBUG值不能知足開發者需求,假如開發者須要自定義更多的相似於BuildConfig.DEBUG這樣的值,在debug階段和release階段自動動態維護和管理不一樣的值,以提供給App應用程序中的代碼使用,那麼能夠經過配置build.gradle的buildTypes實現,例如這樣配置buildTypes:android
apply plugin: 'com.android.application'
android {
.......
buildTypes {
debug {
buildConfigField "String", "MyAppType", '"debug"'
buildConfigField "String", "MyName", '"zhang"'
buildConfigField "boolean", "MyLOG_DEBUG", "true"
buildConfigField "int", "MyNumber", "2018"
}
release {
buildConfigField "String", "MyAppType", '"release"'
buildConfigField "String", "MyName", '"phil"'
buildConfigField "boolean", "MyLOG_DEBUG", "false"
buildConfigField "int", "MyNumber", "2019"
}
......
}
......
}app
buildTypes裏面定義了四個值:MyAppType(字符串String類型),MyName(字符串String類型),MyLOG_DEBUG(布爾值boolean類型),MyNumber(整數int類型)。
定義的類型固然不限於以上幾種,開發者根據須要能夠定義更多複雜類型。定義的格式爲:gradle
字段變量類型,字段變量名,具體的值ui
定義好後,Android Studio自動的在BuildConfig裏面產生:.net
後面若是包是debug模式,那麼字段變量和值的對應狀況爲:
"MyAppType", '"debug"'
"MyName", '"zhang"'
"MyLOG_DEBUG", "true"
"MyNumber", "2018"debug
若是是在release模式下的包,對應的值狀況:
"MyAppType", '"release"'
"MyName", '"phil"'
"MyLOG_DEBUG", "false"
"MyNumber", "2019"日誌
在上層Java代碼中直接經過BuildConfig使用之:blog
---------------------
做者:zhangphil
來源:CSDN
原文:https://blog.csdn.net/zhangphil/article/details/84834014
版權聲明:本文爲博主原創文章,轉載請附上博文連接!開發