为什么要学习多渠道打包?
程序开发完成后就需要传到应用市场,在国内有众多的应用市场,常见的有:应用宝、360手机助手、安卓市场、豌豆荚等,还有许多硬件厂商的应用市场。假如我们使用<a href="http://www.umeng.com">umeng</a>来做统计分析,那么就需要在app中配置渠道号,面对众多的应用市场,你需要针对每个应用市场打一个apk包,工作量很大而且都是一些没有任何营养的工作。这时候你就需要“多渠道打包”。
具体怎么样操作?
首先是一个AndroidMainfest.xml文件中的配置。
<pre>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jysd.dqddb">
<application>
<meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL_NAME"/>
</application>
</manifest>
</pre>
上面配置信息中需要注意的是meta-data元素。meta-data元素上有两个属性,分别是android:value和android:name。我们需要在build.gradle文件中配置一些信息,使得在打包的过程中动态替换掉andriod:value中的值.下面就介绍怎么在build.gradle中配置。
下面的是build.gradle文件
<pre>
apply plugin: 'com.android.application'
android {
//...这里省略其他配置,只关注多渠道打包配置
//这里是重点,在这里配置需要支持的应用市场信息,这里只是列举了一些,根据公司的要求请自行配置
productFlavors{
yingyongbao{}
qihu360{}
xiaomi{}
wandoujia{}
}
//这里是重点,这里表示将替换AndroidManifest.xml文件中meta-data元素中value的值。
productFlavors.all{
flavor->flavor.manifestPlaceholders=["UMENG_CHANNEL_VALUE":name]//name等于productFlavors中定义的应用平台名称。
}
}
dependencies {
//...
}
</pre>
上面的注释写的比较清楚,到这里配置就结束了。那么怎么取出来呢?请自行搜索关键字Android 获取meta属性值.