国内众多Android开发环境有众多的应用市场,产品存在着不同渠道统计的需求,为此android开发人员需要为每个应用市场发布一个安装包,这是一件很苦逼的事,更换成android studio之后自带的编译工具gradle其实已经可以实现多渠道打包的功能了;下面主要简单介绍一下gradle如何实现的多渠道打包。
(一)在androidmanifest.xml中定义mate-data标签
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="your.package.name">
- <application>
-
- <meta-data android:name="UMENG_CHANNEL" android:value="{UMENG}"/>
-
- </application>
- </manifest>
这里需要注意的是:上面的value的值要和渠道名所对应,比如wandoujia里面要对应为你豌豆荚的渠道名称
(二)在build.gradle下的productFlavors定义渠道号:
- productFlavors {
-
- internal {}
-
- /*InHouse {}
- pcguanwang {}
- h5guanwang {}
- hiapk {}
- m91 {}
- appchina {}
- baidu {}
- qq {}
- jifeng {}
- anzhi {}
- mumayi {}
- m360 {}
- youyi {}
- wandoujia {}
- xiaomi {}
- sougou {}
- leshangdian {}
- huawei {}
- uc {}
- oppo {}
- flyme {}
- jinli {}
- letv {}*/
-
- productFlavors.all { flavor ->
- flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
- }
- }
同时需要注意的是,这里需要在defaultConfig中配置一个默认的渠道名称
- manifestPlaceholders = [UMENG_CHANNEL_VALUE: "channel_name"]
实现多渠道打包更换mate-data标签中的内容