HarmonyOS 鸿蒙Next 在开发时怎么生成多个 hap 包

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 在开发时怎么生成多个 hap 包 在开发鸿蒙服务的时候,怎么生成多个hap包啊?这块有指导文档吗?

3 回复

一、多HAP机制设计目标

方便开发者模块化的管理应用,好的应用一般都是模块化管理,模块之间属于松耦合关系。多HAP方便了开发者将业务划分成多个模块,每个模块放到独立的HAP中。例如支付类应用,有统一的主界面,主界面管理“扫一扫”、“收付款”、“消息”、“理财”等各个模块。其中主界面管理其他模块的逻辑在Entry包中实现,而“扫一扫”、“收付款”、“消息”和“理财”等模块在不同的Feature包中实现。可以同时开发多个Feature包,能够实现Feature包单独的开发测试,最终由Entry包统一集成Feature包的特性。

方便开发者将多HAP合理地组合并部署到不同的设备上。例如应用程序包含一个Entry包和两个Featrue包(Feature1和Feature2)。其中Entry包可以部署到设备A和设备B,Feature1只能部署到设备A,Feature2包只部署到设备B上,那么开发者就可以方便的组合Entry和Feature1部署到设备A上,组合Entry和Feature2部署到设备B上。

方便开发者按需加载所需模块,减少包大小。开发者可以将一个应用的某些HAP配置成按需加载。应用在启动阶段初始用不到的特性,可以配置暂不加载,当用户用到这些特性的时候,可由应用自动下载这些特性HAP,一定程度上减少应用包的大小。

方便应用资源共享,减少程序包大小。多个HAP都需要用到的资源(包括公共资源文件、公共页面等)以及so(shared object)文件可以放到单独的HAP中,其他HAP可以到该HAP中访问资源和so文件,也一定程度上可以减少应用程序包大小。

IDE支持在一个应用工程中进行多个HAP的开发与构建,如下图所示。

二、多HAP构建视图

图1 多HAP构建视图

AppScope目录

app.json5:配置应用全局描述信息,例如应用包名、版本号、应用图标、应用名称和依赖的SDK版本号等。resources目录:放置应用的图标资源和应用名称字符串资源。说明:该目录由IDE自动生成,名称不可更改。AppScope目录下面的文件名与Entry、Feature模块下面的文件名不能重复,否则IDE会报错。

entry或者feature目录(名称可由开发者自定义)

由IDE引导开发者创建的Module,在该Module中实现应用的业务逻辑;可以创建多个Module,图中entry和feature即是创建的两个Module。

resources目录:放置该Module中所使用到的资源。

ets目录:开发者的业务逻辑。

module.json5:配置该Module的描述信息,如:Module的名称、Module的入口代码路径、包含的组件信息等。

2.编译打包后的视图

一个开发态的Module编译后生成一个部署态的HAP,Module和HAP一一对应。

HAP中的module.json由开发视图中的app.json5和module.json5合成。

所有的HAP最终会编译到一个App Pack中(以.app为后缀的包文件),用于发布到应用市场。

更多关于HarmonyOS 鸿蒙Next 在开发时怎么生成多个 hap 包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next开发中,生成多个hap包主要通过模块化开发实现。每个模块可以独立编译为一个hap包。具体步骤如下:

  1. 创建模块:在DevEco Studio中,通过File > New > Module创建新模块,选择HarmonyOS LibraryHarmonyOS Ability模板。

  2. 配置模块:在module.json5文件中,为每个模块配置nametype等属性,确保每个模块独立。

  3. 编译模块:在build.gradle文件中,为每个模块配置hap构建类型,使用assemble任务编译生成hap包。

  4. 打包发布:通过Build > Build Hap(s)生成hap包,或使用命令行工具hdc进行打包。

每个hap包独立运行,可通过bundleNamemoduleName区分。

在HarmonyOS鸿蒙Next开发中,生成多个HAP包可以通过以下步骤实现:

  1. 模块化开发:将应用拆分为多个模块,每个模块对应一个HAP包。在module.json5中配置每个模块的nametype

  2. 配置build-profile.json5:在build-profile.json5中为每个模块指定不同的artifactName,确保生成的HAP包名称唯一。

  3. 构建命令:使用hvigorhpm工具进行构建,系统会根据配置自动生成多个HAP包。

  4. 签名与发布:对生成的HAP包进行签名,并发布到应用市场。

通过模块化设计和合理配置,可以高效生成多个HAP包,满足复杂应用的需求。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!