千家信息网

Android几种多渠道打包的步骤是怎样的

发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,Android几种多渠道打包的步骤是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、什么是多渠道打包在不同的应用
千家信息网最后更新 2025年01月27日Android几种多渠道打包的步骤是怎样的

Android几种多渠道打包的步骤是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1、什么是多渠道打包

  在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在安装包中添加不同的标识,以此区分各个渠道,方便统计app在市场的各种。

2、几种打包方式

友盟 UMeng Android Studio自带 美团 Walle

3、开始使用

  3.1 友盟UMeng

  第一步:在AndroidManifest中添加

  第二步:在build.gradle中添加,baidu {}为指定渠道名称简写

build { ...... productFlavors { baidu {} xiaomi {} qihu360 {} yingyongbao {} huawei {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL: name] } }

  第三步:设置输出APK名称

  Android Studio 2.3版本:

build { ...... applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def fileName = "driver_${variant.productFlavors[0].name}_v${defaultConfig.versionName}.apk" output.outputFile = new File(outputFile.parent, fileName) } } }}

  Android Studio 3.0版本:

build { ...... applicationVariants.all { variant -> variant.outputs.all { outputFileName = "driver_${variant.productFlavors[0].name}_v${variant.versionName}.apk" } }}

  Gradle后如果出现如下报错

  则需要配置flavor dimension的维度是该版本号,这样维度就是都是统一的了

build { ...... defaultConfig { ...... flavorDimensions "versionCode" }}

  第四步:编译打包

  Build - Generate Signed Bundle or APK - 选择Release或Debug

  3.2 Android Studio自带

  Android Studio多形态打包与友盟打包方式相同,但是标签中name可自行定义,不限制为"UMENG_CHANNEL"

  3.3 美团 Walle

  第一步:配置根build.gradle

buildscript { dependencies { classpath 'com.mcxiaoke.packer-ng:plugin:2.0.1' }}

  第二步:配置App build.gradle

apply plugin: 'packer'dependencies { ...... implementation 'com.mcxiaoke.packer-ng:helper:2.0.1'}

  第三步:插件配置

build { ...... packer { archiveNameFormat = '${buildType}-v${versionName}-${channel}' // 定义输出APK名称 archiveOutput = new File(project.rootProject.buildDir, "apks") // 设置APK输出目录 channelFile = new File(project.rootDir, "channel.txt") // 添加渠道配置文件 }}

  第四步:新建渠道配置文件channel.txt

  在工程根目录下新建channel.txt文件,如图

  文件内容为渠道名称,要求:必须每一行一个渠道

  第五步:编译打包

  使用Terminal命令:

gradlew clean apkRelease

可参考:[美团多渠道打包官方文档](https://github.com/mcxiaoke/packer-ng-plugin)

4、获取渠道信息

  1、友盟 和 Android Studio获取方式

  通过读取AndroidManifest中标签

private String getChannel() { try {   PackageManager pm = getPackageManager();   ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);   String channel = appInfo.metaData.getString(key); // key为标签中的name   if (!TextUtils.isEmpty(channel)) {   return channel;   }  } catch (Exception e) {   e.printStackTrace();  }  return null;}

  2、美团 Walle获取方式

  美团集成自带获取方法

private String getChannel() { try {   PackageManager pm = getPackageManager();   ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);   String channel = appInfo.metaData.getString(key); // key为标签中的name   if (!TextUtils.isEmpty(channel)) {   return channel;   }  } catch (Exception e) {   e.printStackTrace();  }  return null;}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

渠道 配置 多渠道 名称 文件 方式 不同 市场 标签 版本 输出 内容 维度 需求 帮助 应用 统计 编译 步骤 清楚 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 日益突出网络安全威胁 我的勇者所有的服务器名称 管理软件开发公司人员比例解析 网络安全保卫局官在什么地方 传奇链接服务器失败 叮咚在线网络技术有限公司 宝藏世界服务器 高中生网络安全教育课件视频 软件开发阶段可以使用的工具 服务器本地安全策略默认 自考本科数据库多少分过 软件开发工程师级别定岗划分 数据库如何存放压缩文件 从企业专有数据库中 网络安全防护的4新要求是指 网络安全保密检查及整改情况 葫芦岛新零售软件开发多少钱 晋宁嵌入式软件开发 软件开发主管工作总结 数据库中复合函数 软件开发多少钱1个月 网络数据库技术中drop 松江区管理软件开发要多少钱 网络安全创新展厅 安徽省渠道网络技术开发区 数据库iphone怎么看 支付宝 数据库设计 软件开发项目管理专业怎么样 csgo服务器管理员登录 电子软件开发类大学专业
0