Android配置build.gradle的buildTypes動態自動維護debug和release包自定義字段變量值

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 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!開發

相關文章
相關標籤/搜索