美文网首页多渠道
manifestPlaceHolde的使用

manifestPlaceHolde的使用

作者: 紫阚 | 来源:发表于2018-10-30 16:58 被阅读12次

    作用

    一般用于数据的个性化配置,在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设置为空,达到开发模式下不统计崩溃错误的目的

    相关文章

      网友评论

        本文标题:manifestPlaceHolde的使用

        本文链接:https://www.haomeiwen.com/subject/jlggtqtx.html