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层可以调用。