关于Android需要多渠道打包的意义不需要多说,众多Android应用的分发平台,我们需要进行各种数据的统计。
1,360加固保
这种方式非常简单,只需要在加固前设置好多渠道配置便可,上传apk便可以生成各渠道包。
2,Android studio
(1)在manifest.xml中添加
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
(2)在build.gradle 设置productFlavors
在Android节点下添加:
productFlavors {
//配置多渠道打包平台
xiaomi { }
baidu {
//在默认的的id和name后面追加,使用这种方式可以同时安装测试和正式环境的apk,也可以使用 applicationId等属性覆盖性设置。未设置则使用默认设置
applicationIdSuffix ".baidu"
versionNameSuffix "-baidu"
}
}
//统一设置所有平台使用名字替换UMENG_CHANNEL_VALUE值,也可以在上面每个凭条分别设置
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
这样打包的时候选择所有Flavor就可以同时打包出所有平台的apk
(3)如果在不同平台需要配置不同的资源文件,在src目录下建立不同平台的文件夹,名字与平台名称一致,目录结构同main文件夹即可
(4)测试打包出来的UMENG_CHANNEL_VALUE值
private String getApplicationMetaValue(String name) {
String value ="";
try {
ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
value = applicationInfo.metaData.getString(name);
}catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return value;
}
getApplicationMetaValue("UMENG_CHANNEL");即可