Mako Shan

Mako 是一名密码朋克爱好者
这里是我记录生活和成长的地方

联系我的微信号
👏欢迎一起交流学习

Gradle多渠道打包

我们公司应用后台开发使用Umeng的数据统计(没办法国内Umeng做的最好),最近应用开始在国内各个市场上线,不得不吐槽国内Android市场太多,而且还有坑,我们应用最先是在Google Play上线,每家应用市场为了充量会自己从Google Play上抓取应用,导致我们上传应用前还要先再一次的签名认领应用。废话说的太多了。因为需要统计每个平台的数据, 友盟渠道区分是通过在AndroidManifest.xml的实现的:

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

我不得不手动修改需要的平台,这种重复的工作不能忍。查阅资料发现gradle的配置文件有Product flavors选项,可以生成不同的APK包,有不同的包名,或者不同的资源。那么现在打包的工作就变得简单了。

productFlavors {
        sspai {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
        gfan {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
        appchina {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }

        appchina {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }

        m3g {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
        googleplay {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
        yingyongbao {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
        m360 {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }

        xiaomi {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
        wandoujia {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
    }
8
Android应用程序中打开指定的豌豆荚下载页面
目录