zoukankan      html  css  js  c++  java
  • 多渠道打包(友盟统计)

    转自:http://www.cnblogs.com/0616--ataozhijia/p/4203997.html

    一般用渠道的统计无非是用友盟或者其它之类的,今天就以友盟的为例吧。
    渠道信息一般在 AndroidManifest.xml中修改以下值:

    <meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />

    首先你必须在AndroidManifest.xml中的meta-data修改以下的样子:

    <meta-data
        android:name="UMENG_CHANNEL"
        android:value="${UMENG_CHANNEL_VALUE}" />

    其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定义配置的值。

    build.gradle文件就利用productFlavors这样写:

    复制代码
    productFlavors {
     
    wandoujia {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
    }
     
    baidu {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
    }
     
    c360 {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]
    }
     
    uc {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]
    }
     
    }
     
    复制代码

    其中[UMENG_CHANNEL_VALUE: "wandoujia"]就是对应${UMENG_CHANNEL_VALUE}的值。

    最新更新
    后来发现上面的重复代码太多,就在网上又发现了一个更简洁的写法

    复制代码
    productFlavors {
     
    wandoujia {}
    baidu {}
    c360 {}
    uc {}
     
    productFlavors.all { flavor ->
    flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
     
    }
     
    复制代码

    其中name的值对相对应各个productFlavors的选项值,这样就达到自动替换渠道值的目的了。

    这样生成apk时,选择相应的Flavors来生成指定渠道的包就可以了,而且生成的apk会自动帮你加上相应渠道的后缀,非常方便和直观。大家可以自己反编译验证。

    推荐马伟奇老师的文章如何实现多渠道打包

  • 相关阅读:
    对象
    语句
    表达式和运算符
    类型、值和变量
    词法结构
    javac命令详解(下)
    javac命令详解(上)
    jar 查找多jar包中类的办法
    find -exec
    java编译相关问题总结
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/6876826.html
Copyright © 2011-2022 走看看