有时候我们为了保护一些密码或者密钥,会把生产的密码放在打包机的目录下,打包的时候再通过gradle读取,这样能很好的保护好密码或者密钥的流失!
新建fileConfigs.properties文件放在任意的目录下
#fileConfigs测试
FILE_CONFIGS_KEY=fileConfigsKey
在app的build.gradle 里面定义方法
def getPropertiesFromFile() {
//可以使用绝对路径,也可以使用相对路径
// /Users/xuefeng.kuang/Documents/kxf/fileConfigs.properties
// E:\kxf\fileConfigs.properties
def versionFile = file('../fileConfigs.properties')
Properties properties = new Properties()
if (versionFile.canRead()) {
properties.load(new FileInputStream(versionFile))
} else {
properties['FILE_CONFIGS_KEY'] = "null! Could not find fileConfigs.properties!"
//也可以直接抛异常
// throw new GradleException("Could not find fileConfigs.properties!")
}
logger.quiet("properties==${properties}")
return properties
}
def myProperties = getPropertiesFromFile()
使用时:
buildConfigField("String", "FILE_CONFIGS_KEY", "\"" + myProperties['FILE_CONFIGS_KEY'] + "\"")
接着在代码中引用
Log.i("MainActivity", "FILE_CONFIGS_KEY== " + BuildConfig.FILE_CONFIGS_KEY);
输出日志
2021-09-06 17:52:18.873 22407-22407/com.kxf.androidtestdemo I/MainActivity: FILE_CONFIGS_KEY== fileConfigsKey