多渠道打包
- 在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在安装包中添加不同的标识,以此区分各个渠道,方便统计app在市场的各种。
- 使用三方插件美团Walle打包方案
第一步
- Manifest.xml 中的application标签下添加meta-data
<meta-data
android:name="CHANNEL_NAME"
android:value="${
CHANNEL_VALUE}" />
第二步
android {
...
flavorDimensions "test"
productFlavors {
xiaomi {
}
qihu360 {
}
}
productFlavors.all {
flavor ->
flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
}
applicationVariants.all {
variant ->
variant.outputs.all {
outputFileName = "app_${
variant.productFlavors[0].name}_v${
variant.versionName}.apk"
}
}
}
第三步
获取渠道信息
- 获取渠道信息,根据CHANNEL_NAME,取到CHANNEL_VALUE
private fun getChannel(): String? {
try {
val pm = packageManager
val appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA)
val channel = appInfo.metaData.getString("CHANNEL_NAME")
if (!TextUtils.isEmpty(channel)) {
return channel
}
} catch (e: Exception) {
e.printStackTrace()
}
return null
}
参考资料