作用
一般用于數(shù)據(jù)的個性化配置糠爬,在build.gradle里配置該屬性,可以在代碼中獲取對應(yīng)的值
如何使用
- 在AndroidManifest里聲明
<meta-data
android:name="KIMMY"
android:value="${KIMMY}"/>
name是key举庶,代碼中根據(jù)該名去獲取
value是指执隧,在build.gradle的manifest里面去使用
2.在build.gradle賦值
defaultConfig {
manifestPlaceholders = [
KIMMY :"default"
PENNY:"額外的數(shù)據(jù),不會被覆蓋"
]
}
buildTypes {
release {
manifestPlaceholders = [
KIMMY :"release模式生效"
]
}
debug {
manifestPlaceholders = [
KIMMY :"debug模式生效"
]
}
- 代碼里使用
ApplicationInfo appInfo = getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
Log.d("測試", "kimmy=" + appInfo.metaData.getString("KIMMY"));
使用環(huán)境
比如我們的推送插件被三個產(chǎn)品共同應(yīng)用户侥,每個產(chǎn)品定義自己的AppKey镀琉,那么在插件里面的AppKey,在三個項目里是不一樣的添祸。項目里面滚粟,友盟統(tǒng)計、極光推送都是這樣的用法
個性化配置
額外注意點
manifestPlaceholders 可以定義在三處 defaultConfig 刃泌、release 凡壤、debug 署尤。
打包的時候,defaultConfig里的數(shù)組和release或者debug里manifestPlaceholders 的數(shù)據(jù)亚侠,都會被添加到項目里曹体。
如果遇到key重名的,debug或者release會覆蓋defaultConfig的值硝烂。
因此利用這個覆蓋的特性箕别,我們可以在defaultConfig 里定義友盟、極光的key滞谢,在debug 下把友盟的key設(shè)置為空串稀,達(dá)到開發(fā)模式下不統(tǒng)計崩潰錯誤的目的