DevEco Studio 3.1 差异化构建打包,提升多版本应用开发效率
HUAWEI DevEco Studio 是开发 HarmonyOS 应用及服务的一站式集成开发环境。本次分享 DevEco Studio 3.1 上线的新特性-差异化构建打包,定制多目标构建产物。
很多应用需要根据具体业务来定制对应场景的工程,举个例子,同一个应用会因为场景的不同需定制为不同的版本,如 VIP 版、普通版等,开发者需要重复创建多个工程来适配这些场景,而这些工程之间可能只存在少量的代码差异,这样开发的大部分工作都是程序化的操作,不仅工作量大,还消耗时间。
为了解决此类问题,DevEco Studio 3.1 提供差异化构建打包功能,在面对多场景开发时,开发者无需创建多个工程,可以在同一个工程中,创建多个 product 和 target,在 target 中通过少量代码的差异化配置处理,再打包到不同的 product 中,生成对应场景的 APP,这样的方式可以让代码、资源文件等高效复用,从而提升多版本应用的开发效率。
何为 product、target?
通常一个工程由多个模块组成,工程的构建产物为 APP 包,APP 包作为应用上架应用市场,由于不同的业务场景需定制不同的应用包,因此引入 product 的概念,一个 product 对应一个定制化 APP 包。
在工程内每一个 entry/feature 模块,都对应一个构建产物 HAP 包,由于同一个模块在不同的应用场景可能需定制不同的功能、资源,因此引入 target 的概念,一个 target 对应一个定制化的 HAP 包。
一个工程可以定制多个 product,一个模块可定制多个 target,开发者可以在一个工程中通过 product 和 target 组合搭配,构建打包成不同版本的应用。
同时,DevEco Studio 3.1 提供了管理 product / target 的界面,来完成 product target 模型上下文的切换。
以 Stage 模型为例来详细说明
1、根据需求快速定制 target
差异化构建打包功能支持定义 target 的名称, source 源码集、资源,将这些可能存在差异的文件存放在不同的路径下,然后将对应场景下需要的功能、资源、配置放在相应的 target 中即可快速定制 target。
开发者通过 Entry/Feature 模块下的 build-profile.json5 文件来完成 target 定制。
2、同一个工程构建不同的 APP 包,实现多应用开发
差异化构建打包功能支持定义 product 的名称、bundleName 信息、签名配置信息。开发者可以在工程级别下的 build-profile.json5 文件来定制不同的 product 来适配不同的应用场景,一个 product 包含多个 target,只需使用简单的代码配置 "name": "a","applyToProducts": ["A", "B"],就可以快速地将 target 打包到不同的 product 中。
3、构建打包 product target 更方便
DevEco Studio 3.1 提供了 product target 管理面板,便于开发者选择指定需编译构建或者运行的 product、target,进行上下文的切换。
开发者只需单击右上角的图标
打开 product target 管理面板。
总结下,在使用 DevEco Studio 3.1 的差异化构建打包功能时,通过在工程级别和模块级别下 build-profile.json5 文件内定义配置 product 和 target,然后在管理界面选择需要打包的 product 和 target,Build 一下,就能实现一个工程构建打包出不同的 APP 包和 HAP 包。后续将会提供差异化构建打包更多功能,敬请期待。
评论