时间长了总是忘记这部分内容,笔记记录下,便于勾起回忆(呵呵)
使用场景:
- 签名信息
- 敏感信息(账号、密码等),且很多类共同使用。
一、使用
1.gradle.properties添加内容
//PATH=./keystore.jks
STORE_PASSWORD=123456
ALIAS=alias
ALIAS_PASSWORD=2399213
NAME=jack
PASSWORD=234124
PORT = 8080
2.在build.gradle(Module:app)文件中使用
signingConfigs{
release{
storeFile file("相对或绝对路径")
storePassword STORE_PASSWORD
keyAlias ALIAS
keyPassword ALIAS_PASSWORD
}
}
注:网上看到storeFile file(PATH)
的写法,但是各种尝试后,都报错。
3. 代码中引用
在build.gradle(module app)中进行变量的重定义,即将配置内容转化成代码中能引用的形式。
代码中引用分为java代码和xml文件中应用。
buildTypes {
debug {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String","USERNAME","\"${NAME}\""//java代码中引用的定义形式
buildConfigField "int","port",PORT
resValue "string","password","${PASSWORD}"//资源文件中,xml文件中引用的定义形式
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String","USERNAME","\"${NAME}\""
resValue "string","password","${PASSWORD}"
}
}
在java代码中引用:
String userName = BuildConfig.USERNAME;
在xml中引用:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password"
/>
知识拓展
android 中读取properties文件
编写代码的时候,有些变量经常变动,为了修改方便(避免漏改,提高效率),可以把变量卸载properties文件中
在assets文件夹中,常见test.properties
文件,内容格式:
user=jack
java代码中取值:
public static String getPropertiesURL(Context c, String s) {
String name= null;
Properties properties = new Properties();
try {
properties.load(c.getAssets().open("test.properties"));
url = properties.getProperty(s);
} catch (Exception e) {
e.printStackTrace();
}
return name;
}
敏感信息不能通过该形式保存。