manifestPlaceHolder的使用

作用

一般用于数据的个性化配置,在build.gradle里配置该属性,可以在代码中获取对应的值

如何使用

  1. 在AndroidManifest里声明
 

name是key,代码中根据该名去获取
value是指,在build.gradle的manifest里面去使用

2.在build.gradle赋值

defaultConfig {
     
        manifestPlaceholders = [
        KIMMY :"default"
        PENNY:"额外的数据,不会被覆盖"
            ]
    }
buildTypes {
        release {
          manifestPlaceholders = [
        KIMMY :"release模式生效"
            ]
        }
        debug {
      
            manifestPlaceholders = [
        KIMMY :"debug模式生效"
            ]
        }
  1. 代码里使用
 ApplicationInfo appInfo = getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
 Log.d("测试", "kimmy=" + appInfo.metaData.getString("KIMMY"));

使用环境

比如我们的推送插件被三个产品共同应用,每个产品定义自己的AppKey,那么在插件里面的AppKey,在三个项目里是不一样的。项目里面,友盟统计、极光推送都是这样的用法


manifestPlaceHolder的使用_第1张图片
个性化配置

额外注意点

manifestPlaceholders 可以定义在三处 defaultConfig 、release 、debug 。
打包的时候,defaultConfig里的数组和release或者debug里manifestPlaceholders 的数据,都会被添加到项目里。
如果遇到key重名的,debug或者release会覆盖defaultConfig的值。

因此利用这个覆盖的特性,我们可以在defaultConfig 里定义友盟、极光的key,在debug 下把友盟的key设置为空,达到开发模式下不统计崩溃错误的目的

你可能感兴趣的