巧用buildconfig切换常量
作者:互联网
应用中有个需求,对于不同分支版本的appkey是不一样的值。为了让library不用新建分支,我们通过在主feature的分支下进行参数配置,主feature分支不同,则对应的appkey的值是不一样的。具体的操作方法如下:
1.主分支所在的project的buidle.gradle中:
ext {
romAppsOutDir = "${rootProject.rootDir}/rom_apps_out"
appkey = "\"ticni\""
appSecret = "\"3EYWTj\”"
//appkey = "\"tis\""
//appSecret="\"JCd2WjIToWn6\""
2.需要切换常量值的library的build.gradle中:
android {
compileSdkVersion versions.compileSdk
buildToolsVersion versions.buildTools
defaultConfig {
minSdkVersion 21
consumerProguardFiles 'proguard-rules.pro'
buildConfigField("String","HEADER_APP_KEY","${appkey}")
buildConfigField("String","HEADER_APP_SECRET","${appSecret}")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
3.在使用的地方引用buildconfig中的值:
import static com.network.api.BuildConfig.HEADER_APP_KEY;
import static com.network.api.BuildConfig.HEADER_APP_SECRET;
/**
* 对header中的请求参数进行较验,文档如下
* <p>
* http://gerrit/plugins/giti+/master/java/com/mobvoi/be/common/checker/README.md
*/
public class ReqAppkeyInterceptor implements Interceptor {
private static final String APP_KEY = HEADER_APP_KEY;
private static final String APP_SECRET = HEADER_APP_SECRET;
/**
4.生成BuildConfig文件如下:
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.network.api";
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 = "";
// Fields from default config.
public static final String HEADER_APP_KEY = "tinni";
public static final String HEADER_APP_SECRET = "3VkCh83ZILOx7DEYWTj";
}
grenZh 发布了47 篇原创文章 · 获赞 7 · 访问量 1万+ 私信 关注标签:buildconfig,常量,HEADER,APP,public,String,static,final,巧用 来源: https://blog.csdn.net/qq_31180471/article/details/104485837