Android gradle tips

最近有人问到能否根据不同渠道动态修改 strings.xml 中字符串问题,正好整理下 gradle 中几个比较灵活且非常实用的配置。

动态赋值resValue

假如我们需要根据不同编译类型 (debug/release)或者不同渠道动态给 strings.xml 文件中的「url」赋值。只需要在「buildType」节点中根据不同的类型,或者「productFlavors」中根据不同的渠道加入一下代码:

1
resValue "string", "url", "http://xx.xx.xx"

自定义buildConfigField

默认情况下 BuildConfig 中有以下字段可以在java代码中直接调用

1
2
3
4
5
6
7
8
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.xxx.xxx.xxx";
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";
}

如果我们希望根据不同的 buildType 或者不同的 flavor 动态加入一些新的 Field 我们只需要在对应的地方加入类似下面这样的代码:

1
buildConfigField "boolean", "LOG_DEBUG", "true"

待续…..


作者:TheFresher
出处:http://liukun.engineer