1. 程式人生 > >Android中BuildConfig類的那些事

Android中BuildConfig類的那些事

宣告

本文章都只是在AndroidStudio基於Gradle構建專案開發的驗證,所以不保證其它開發環境與構建專案方式也是這樣

BuildConfig身在何處

瞭解一個東西前,至少先要知道這東西在哪裡吧!而我們今天要了解的這個類又在哪裡了,我相信應該還有一些安卓開發人員沒見過此類的身影。那麼這類在哪裡了?
答案:一般情況是在applicationId<應用包名>.BuildConfig;如:我的應用ID為:com.jay.demo,那麼此類的全類名就是com.jay.demo.BuildConfig

但這是一般情況,也就是說我們在建立工程時確定的應用包名,但這裡答案准確的來說,此類是和R<resouce>

類在同一個包裡的,那麼R<resouce>類的名路徑是怎麼確定的了?
答案:很明確,是由AndroidManifest.xml檔案中的manifest標籤中的package屬性指定的包路徑

BuildConfig有啥用

我們先從類名來試圖理解這個類是做什麼的,BuildConfig很明顯是由BuildConfig組成,Build = 構建Config = 配置,那麼直譯過來就是BuildConfig = 構建配置,大致猜到了這個類可能會與一個配置相關的資訊

BuildConfig的真面目

package com.jay.demo;

public final
class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); public static final String APPLICATION_ID = "com.jay.demo"; public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = ""; public static final int VERSION_CODE = 1; public
static final String VERSION_NAME = "1.0"; public BuildConfig() { } }

這是建立一個專案後BuildConfig類,那這類中有些啥東西了?如果看過我之前的一篇文章,可能會更好的理解–Android Studio中Module的build.gradle詳解,說之前科普下一個小知識,此類是不可修改的,嚴格來說不能通過我們之前正常編碼那樣對類一樣修改

package com.jay.demo;

public final class BuildConfig {
    //這個常量是標識當前是否為`debug`環境,由`buildType`中的`debuggable`來確定的,這是修改此類值的一個方式
    public static final boolean DEBUG = Boolean.parseBoolean("true");
    //application id
    public static final String APPLICATION_ID = "com.jay.demo";
    //當前編譯方式
    public static final String BUILD_TYPE = "debug";
    //編譯渠道,如果沒有渠道,則為空
    public static final String FLAVOR = "";
    //版本號
    public static final int VERSION_CODE = 1;
    //版本名,所以獲取當前應用的版本名可以直接 BuildConfig.VERSION_NAME
    public static final String VERSION_NAME = "1.0";

    public BuildConfig() {
    }
}