Android开发之Gradle多渠道打包总结

Source

首先老套路看图:分别是小米的渠道和应用宝的渠道

这是渠道的渠道号的截图

 

先说下Gradle的多渠道打包,个人更喜欢这样写:

第一步:需要在清单文件添加标识:

<meta-data
           android:name="XiaYiYe"
           android:value="${XiaYiYeValue}" />

配置的name和value不是固定值,可以自己取的

第二步:

在app的gradle的android根节点添加如下配置:

 productFlavors {
        tool {
            manifestPlaceholders = [XiaYiYeValue: "360"]
        }
        yyb {
            manifestPlaceholders = [XiaYiYeValue: "yyb"]
        }
        xiaomi {
            manifestPlaceholders = [XiaYiYeValue: "xiaomi"]
        }
        huawei {
            manifestPlaceholders = [XiaYiYeValue: "huawei"]
        }
    }

当然上面的第二步也可以用下面的方法替代我不常用:

  productFlavors {
        "wandoujia" {

        }
        "xiaomi" {

        }
        "yyb" {

        }
        "huawei" {

        }
        baidu {

        }
        productFlavors.all {
            flavor -> flavor.manifestPlaceholders = [XiaYiYeValue: name]
        }
    }

这样就配置好了,然后获取渠道号码就行了:

  private void showValue() {
        try {
            PackageManager pm = getPackageManager();
            ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
            String channel = appInfo.metaData.getString("XiaYiYe");
            Toast.makeText(this, channel, Toast.LENGTH_LONG).show();
        } catch (PackageManager.NameNotFoundException ignored) {
        }
    }

上面的XiaYiYe这个key就是清单文件xml中配置的name这个值,获取到渠道号后直接上传到你们的后台就可以进行渠道统计了

发布了193 篇原创文章 · 获赞 107 · 访问量 38万+