- 首先我們看看buildconfig在哪個目錄下,一個是debug環境,另一個是當你打包apk纔會生成
的release正式環境的buildconfig,我這裏是爲了比對,都生成出來了。
debug環境下的buildconfig
/**
* Automatically generated file. DO NOT MODIFY
* 已經說明了這個文件是自動生成的,不要去改變它
*/
package com.simple.buildconfidemo;
public final class BuildConfig {
//是否爲debug模式
public static final boolean DEBUG = Boolean.parseBoolean("true");
//應用標識id,也可以理解爲包名
public static final String APPLICATION_ID = "com.simple.buildconfidemo";
//構建的類型,等會看release環境下的就會豁然開朗的
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";
}
release環境下的buildconfig
- 對照看上面debug的,就會發現不同之處
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.simple.buildconfidemo;
public final class BuildConfig {
public static final boolean DEBUG = false;
public static final String APPLICATION_ID = "com.simple.buildconfidemo";
public static final String BUILD_TYPE = "release";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}
- 我們分別運行不同環境下的apk,在程序入口處打上log
Log.d("simple",BuildConfig.BUILD_TYPE);
release正式環境
debug測試環境
- 可以看到不同環境打出的builde_type是不一樣,用BuildConfig.DEBUG當然也是一樣的道理,這裏只是爲了打出的log便於理解,所以就可以在程序中需要判斷是測試環境還是正式環境的地方做判斷啦,是不是瞬間 又get了一項新技能,這樣就不用自己在代碼中做修改了,如果每次打正式環境的包就要去修改很多東西, 很容易有疏漏的地方,別問我爲什麼知道!!!現在你只需要安心的打包就好了!
其實buildconfig的節點都是來自gradle中的節點,之後還會講到buildconfig自定義節點的延伸類容,
簡直好用得不要不要的。
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.simple.buildconfidemo"
minSdkVersion 9
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}