印象深刻的实战经历——Android 如何生成多渠道文件

2024-01-10

????作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 ???? 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!????

在本篇文章您将了解到两个内容

  • 什么是多渠道文件
  • 在Android中如何生成多渠道文件。

背景

前段时间给研发写CI,在项目中了解了下 多渠道打包 的概念,当然比较懵逼,这啥是多渠道打包,怎么一会这个命令,一会那个命令,所以就抽空了解了下。
举一个例子,现在有很多的应用商店,比较小米、华为、vivo 等,我们上架应用的时候,使用一个APK就可以,但是由考虑到我们的业务特殊需求,比如针对不同的应用商店渠道来定制不同的界面,传统的做法通常是要维护多份代码。然后逐个打成相应渠道的APK文件,但是更新的话任务量比较重,而现在 Android Studio 通过 Gradle 就解决了这个问题。

多渠道打包

多渠道可以理解为,针对不同厂商的应用,可以一次性打包所有的厂商APK,也可以单独制定打包。
多渠道打包大致可以分为两步骤:
第一步:修改配置文件
比如,我们准备生成小米和华为两个渠道的APK文件,修改 testapp/build.gradle 文件,具体内容如下:

    productFlavors {
        xiaomi {
            applicationId "com.example.testapp.xiaomi"
        }
        huawei {
            applicationId "com.example.testapp.huawei"
        }

    }

添加 productFlavors闭包 ,在这个闭包中添加所有的渠道配置,另外当你运行的时候如果报错,那可能还需要在 defaultConfig闭包 中添加 flavorDimensions "versionCode" 配置。
(需要注意的是在Gradle中配置不能以数字开头)
这个配置完成之后呢,就相当于新增了两个task,可以在Gradle面板中看到
在这里插入图片描述
运行的时候直接运行这两个 task 即可。
第二步:编写差异性需求
针对不同的渠道编写差异性需求在 src 目录下新建两个文件分别为 huawei、xiaomi,在对应的文件中就可以编写渠道特有的功能,
在这里插入图片描述
当然也可以在 string.xml 文件中定义应用名从而覆盖原有的应用名,例如:

<resources>
    <string name="app_name">华为版</string>
</resources>

以上我们就完成了多渠道的配置,那么该如何生成多渠道呢,使用下面的方式:

#单渠道生成
gradlew :testapp:assemblehuawei
 #多渠道生成(生成所有的渠道包)
 gradlew :testapp:assemble

当在Android项目中有多个module时,我们指定任务的时候尽量使用绝对路径,如果有重名的task,则会全部运行。testapp 是module 的名字也就是子项目, :testapp:assemblehuawei 表示 assemblehuawei 任务是在 testapp module下的task。当研发抛给你一个命令的时候你就会知道其含义。当然我们也可以通过Gradle面板了解更多的task内容,也可以通过输出 gradlew task --all,展示出所有的task及其分组和描述信息。

了解完多渠道打包后,你就会变的豁然开朗。当然如果你想了解更多Gradle相关的知识,可以关注小曾哦,也可以关注本专栏, https://blog.csdn.net/weixin_42182599/category_12542958.html?spm=1001.2014.3001.5482 ,如果哪些地方不了解或者写的不够明确,可以随时私信小编啊,如果你想了解其他知识,当然也可以关注下方⬇️哦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

印象深刻的实战经历——Android 如何生成多渠道文件 的相关文章

随机推荐

  • Counter-strike 2游戏网站网页制作设计 基于html+css 使用HTML+CSS+JavaScript完成以下任务: 1.使用WebStorm建立和管理个人网站; 2.熟练使用CSS结

    Counter strike 2游戏网站网页制作设计 基于html css Counter strike 2游戏网站网页制作设计 基于html css网页项目的设计与实现 https www bilibili com video BV1Kw
  • 2024 首发 全自动网页生成系统源码 重构版

    使用光年后台管理框架重构了这个系统 源码优点 所有模板经过精心审核与修改 完美兼容小屏手机大屏手机 以及各种平板端 电脑端和360浏览器 谷歌浏览器 火狐浏览器等等各大浏览器显示 免费制作 为用户使用方便考虑 全自动网页制作系统无需繁琐的注
  • arduino安装DHT11库

    步骤操作如下 打开Arduino IDE 在菜单栏中选择 项目 gt 加载库 gt 管理库 在库管理器的搜索框中 输入 DHT sensor library 找到 DHT sensor library by Adafruit 点击 安装 安
  • 机器智能与人类智能的合作:认知能力的提升

    1 背景介绍 在过去的几十年里 人工智能 AI 技术的发展取得了显著的进展 从早期的规则引擎和专家系统到现代的深度学习和神经网络 AI已经成功地解决了许多复杂的问题 然而 尽管如此 人工智能仍然远远低于人类智能 人类智能的强大之处在于其认知
  • AI大模型应用入门实战与进阶:深入理解Transformer架构

    1 背景介绍 自从2017年的 Attention is All You Need 一文发表以来 Transformer架构已经成为自然语言处理 NLP 领域的主流模型 这篇文章将深入探讨Transformer架构的核心概念 算法原理以及实
  • 抖音矩阵云混剪系统源码 短视频矩阵营销系统V2.2.1(免授权版)

    抖音矩阵云混剪系统源码 短视频矩阵营销系统V2 2 1 免授权版 中网智达矩阵营销系统多平台多账号一站式管理 一键发布作品 智能标题 关键词优化 排名查询 混剪生成原创视频 账号分组 意向客户 自动采集 智能回复 多账号评论聚合回复 免切换
  • 【软件测试】学习笔记-高效提交Bug

    本篇文章介绍如何才能写出一份高效的软件缺陷报告 测试工程师需要利用对需求的理解 高效的执行力以及严密的逻辑推理能力 迅速找出软件中的潜在缺陷 并以缺陷报告的形式递交给开发团队 缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁 也是测试工程
  • 2024 影视APP下载页面自适应源码

    2024 影视APP下载页面自适应源码 2024 影视APP下载页面自适应源码2024 影视APP下载页面自适应源码2024 影视APP下载页面自适应源码
  • 机器学习与人类智能的融合:未来趋势与挑战

    1 背景介绍 人工智能 Artificial Intelligence AI 是指一种以计算机程序为代表的智能方法 可以理解 学习和应用人类智能的某些方面 机器学习 Machine Learning ML 是人工智能的一个子领域 它涉及到计
  • 太阳诱电树立超高端产品概念,与电子产业同步发展

    无论是传统的手机 家电 安防 汽车 医疗 交通 建筑的智能化转型 还是从物联网 工业4 0 智能硬件 互联网 一场基于大数据 互联网 应用软件等技术的硬件复兴热潮正在席卷全球 没有新东西出来 每家都一样 这一长期以来的争议一直困扰着CEAT
  • 2024 个人官网主页php源码

    带后台KongYi Team系统 官网网站与个人官网主页php源码 该项目适用于团队 工作室等类型 全站由Layui强力驱动 及光年后台模板的使用 团队介绍 项目展示 成员列表等 多管理员 项目管理 模板切换等等功能 有着防窥Js的使用 安
  • 太阳诱电 | 电容器为什么会发热?什么是纹波电流

    电容器中存在寄生于电极和电介质的电阻成分 当纹波电流等交流电流通过电容器时 电阻的成分会产生热量 为了抑制发热 选择ESR较低的电容器非常重要 陶瓷电容器在电容器中ESR较低 非常适合抑制发热 电容器中的纹波电流主要是指电源电路中由于IC的
  • 深度强化学习的核心算法:从QLearning到Deep QNetwork

    1 背景介绍 深度强化学习 Deep Reinforcement Learning DRL 是一种通过智能体与环境的互动学习的方法 它可以帮助智能体在没有明确指导的情况下学习如何执行最佳的动作 从而最大化收益 深度强化学习结合了强化学习 R
  • 基于机器学习的贷中风险预测模型-江苏银行“随e融”杯-二等奖

    文章目录 源码下载地址 项目介绍 界面预览 项目备注 毕设定制 咨询 源码下载地址 源码下载地址 点击这里下载源码 项目介绍 基于机器学习的贷中风险预测模型 江苏银行
  • JDK21 和 ActiveMQ 6.0.1

    ActiveMQ 安装和测试 一 ActiveMQ 下载 二 ActiveMQ 安装 三 代码测试 1 Pom 依赖 2 YML配置 3 启动类 4 MQ 配置类 5 MQ 消费者
  • 心灵与计算机:解密情感处理

    1 背景介绍 情感处理是人工智能领域中一个重要的研究方向 它旨在使计算机能理解 识别和处理人类的情感 情感处理的主要应用包括情感分析 情感识别 情感挖掘等 随着大数据 深度学习和自然语言处理等技术的发展 情感处理技术已经取得了显著的进展 然
  • 【强推荐】如何生成正式签名的APK文件

    在本篇文章您将了解到两种生成正式签名的APK文件 当然还会了解到 gradle build 与 gradle assemble 的区别 通过 Android Studio 生成 使用 Gradle 生成 文章目录 前言 使用Android
  • 【软件测试】学习笔记-脚本与数据的解耦 + Page Object模型

    本篇文章介绍GUI测试中两个非常重要的概念 测试脚本和数据的解耦 以及页面对象 Page Object 模型 测试脚本和数据的解耦 GUI自动化测试适用的场景 尤其适用于需要回归测试页面功能的场景 如果在测试脚本中硬编码 hardcode
  • 太阳诱电 | 陶瓷电容器的静电容量相关

    陶瓷电容器的静电容量会因温度而变化吗 电容器的静电容量的温度特性是什么 陶瓷电容器的静电容量随周围的温度而变化 静电容量因温度而变化的现象 称为静电容量的温度特性 这是由于陶瓷电容器使用的材料造成的 也是所有陶瓷电容的常有现象 以下是本公司
  • 印象深刻的实战经历——Android 如何生成多渠道文件

    作者简介 小曾同学 com 一个致力于测试开发的博主 主要职责 测试开发 CI CD 如果文章知识点有错误的地方 还请大家指正 让我们一起学习 一起进步 座右铭 不想当开发的测试 不是一个好测试 如果感觉博主的文章还不错的话 还请点赞 收藏