Android配置文件gradle里的buildConfigField和manifestPlaceholders的理解

gradle文件的配置:
defaultConfig{
    //定义一个String类型的变量,变量名为APP_ID_2,变量值取至于APP_ID_2_VALUE
    buildConfigField "String", "APP_ID_2", ""${APP_ID_2_VALUE}""
    manifestPlaceholders = [
        APP_ID:"${APP_ID_VALUE}"//定义一个meta变量,变量名为APP_ID,值取至于APP_ID_VALUE变量
    ]
}
gradle文件的ext变量里设置真正的变量值。ext是一个内置变量。
{
    ext.APP_ID_2_VALUE = "22222222"
    ext.APP_ID_VALUE = "11111111"
}

这样,编译之后,APP_ID_2的值为22222222,APP_ID的值为11111111。
其他地方可以使用${APP_ID_2}引用该变量的值即为22222222,使用${APP_ID}引用该变量的值即为11111111。

比如上面的APP_ID_2在代码里面就可以通过
BuildConfig.APP_ID_2访问。也说明了buildConfigField的作用是将gradle里的ext配置的变量值传递到java层可以调用。

原文地址:https://www.cnblogs.com/yongfengnice/p/10552809.html