manifestPlaceHolder的使用

作用

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

如何使用

  1. 在AndroidManifest里声明
 <meta-data
            android:name="KIMMY"
            android:value="${KIMMY}"/>

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,在三个项目里是不一样的。项目里面,友盟统计、极光推送都是这样的用法


个性化配置

额外注意点

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容