您的位置:首页 > 大数据 > 人工智能

mainfestPlaceholders配置不同的变量的妙用

2018-03-30 16:44 134 查看
在接不同的sdk的时候,会碰见不同环境下的对应的value值不同,或者是说不同的渠道下配置的value值不同.这个时候最好的办法就是在build.gradle下配置,然后通过meta-data设置key和value值.其中value为动态指向

以下是一个在简单的mainfestPlacehoders配置,分别在release和debug环境下

第一步:在AndroidMainfest下配置changel标签

其中:meta-data是写在application里面,name就相当于key, value里面的值就是动态配置

<meta-data android:name="CHANGE_DATE"
android:value="${Environmental_key}"/>


第二步:在build.gradle下配置mainfestPlaceholder

其中mainfestPlaceholders除了在release和debug下配置以外,还可以在不同的渠道配置

mainfestPlaceholders里面配置的key值等于meta-data下配置的value值的名称(隐射),其中[]里面也是键值对格式

release环境下的key值22222 就为设置的value值

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
manifestPlaceholders = ["Environmental_key":"release环境下的key值22222"]

}
debug{
manifestPlaceholders = ["Environmental_key":"debug环境下的key值111111"]
}
}


第三步:在不同环境下动态获取设置的value值

//获取build.gradle中不同环境下的key(实际上是name字段)对应的value值
try {
ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
String changeDate = applicationInfo.metaData.getString("CHANGE_DATE");
Toast.makeText(this,changeDate,Toast.LENGTH_LONG).show();
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}


即在debug包下会弹出debug环境下的key值111111 正式包下会弹出:release环境下的key值22222
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息