HarmonyOS鸿蒙Next应用程序包概述

HarmonyOS鸿蒙Next应用程序包概述 为了让开发者能对应用程序包在不同阶段的形态有更加清晰的认知,分别对开发态、编译态、发布态的应用程序结构展开介绍。

开发态包结构

在DevEco Studio上创建一个项目工程,并尝试创建多个不同类型的Module。根据实际工程中的目录对照本章节进行学习,可以有助于理解开发态的应用程序结构。

工程结构主要包含的文件类型及用途如下:

AppScope目录

  • app.json5:app.json5配置文件,用于声明应用的全局配置信息,比如应用Bundle名称、应用名称、应用图标、应用版本号等。

Module_name目录

  • src/main/module.json5:module.json5配置文件,用于声明Module基本信息、支持的设备类型、所含的组件信息、运行所需申请的权限等。
  • src/main/ets:用于存放Module的ArkTS源码文件(.ets文件)。
  • src/main/resources:用于存放该Module需要用到的资源文件。

其他配置文件

  • build-profile.json5:工程级或Module级的构建配置文件,包括应用签名、产品配置等。
  • hvigorfile.ts:应用级或Module级的编译构建任务脚本,开发者可以自定义编译构建工具版本、控制构建行为的配置参数。
  • obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。
  • oh-package.json5:用于存放依赖库的信息,包括所依赖的三方库和共享包。

编译态包结构

不同类型的Module编译后会生成对应的HAP、HAR、HSP等文件,开发态视图与编译态视图的对照关系如下:

文件变更情况

  • ets目录:ArkTS源码编译生成.abc文件。
  • resources目录:AppScope目录下的资源文件会合入到Module下面资源目录中,如果两个目录下存在重名文件,编译打包后只会保留AppScope目录下的资源文件。
  • module配置文件:AppScope目录下的app.json5文件字段会合入到Module下面的module.json5文件之中,编译后生成HAP或HSP最终的module.json文件。

发布态包结构

每个应用中至少包含一个.hap文件,可能包含若干个.hsp文件、也可能不含,一个应用中的所有.hap与.hsp文件合在一起称为Bundle,其对应的bundleName是应用的唯一标识(详见app.json5配置文件中的bundleName标签)。

打包流程

  • 当应用发布上架到应用市场时,需要将Bundle打包为一个.app后缀的文件用于上架,这个.app文件称为App Pack(Application Package),与此同时,DevEco Studio工具自动会生成一个pack.info文件。pack.info文件描述了App Pack中每个HAP和HSP的属性,包含APP中的bundleName和versionCode信息、以及Module中的name、type和abilities等信息。

选择合适的包类型

HAP、HAR、HSP三者的功能和使用场景总结对比如下:

Module类型 包类型 说明
Ability HAP 应用的功能模块,可以独立安装和运行,必须包含一个entry类型的HAP,可选包含一个或多个feature类型的HAP。
Static Library HAR 静态共享包,编译态复用。
Shared Library HSP 动态共享包,运行时复用。

规格对比

规格 HAP HAR HSP
支持在配置文件中声明UIAbility组件与ExtensionAbility组件 × ×
支持在配置文件中声明pages页面 ×
支持包含资源文件与.so文件
支持依赖其他HAR文件
支持依赖其他HSP文件
支持在设备上独立安装运行 × ×

注意事项

  • HAR虽然不支持在配置文件中声明pages页面,但是可以包含pages页面,并通过命名路由的方式进行跳转。
  • 由于HSP仅支持应用内共享,如果HAR依赖了HSP,则该HAR文件仅支持应用内共享,不支持发布到二方仓或三方仓供其他应用使用,否则会导致编译失败。
  • HAR和HSP均不支持循环依赖,也不支持依赖传递。

更多关于HarmonyOS鸿蒙Next应用程序包概述的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS鸿蒙Next应用程序包(HAP)是鸿蒙操作系统中的应用分发和安装的基本单元。HAP包包含了应用的所有资源、代码和配置文件,支持模块化设计,允许开发者将应用拆分为多个模块,每个模块可以独立开发、编译和部署。HAP包分为两种类型:Entry HAP和Feature HAP。Entry HAP是应用的主模块,包含应用的入口和核心功能;Feature HAP是可选的特性模块,用于扩展应用的功能。HAP包的格式基于ZIP压缩,内部结构包括描述文件(config.json)、资源文件、代码文件和依赖库等。鸿蒙Next的HAP包支持多设备适配,通过配置不同的设备类型和资源目录,实现应用在不同设备上的自适应运行。HAP包的安装和更新通过鸿蒙的应用分发平台进行,支持静默安装和增量更新。开发者在DevEco Studio中通过编译和打包工具生成HAP包,并可以模拟器和真机上进行调试和测试。

更多关于HarmonyOS鸿蒙Next应用程序包概述的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next应用程序包(HAP)是鸿蒙系统中的应用分发和安装单元。HAP包包含应用代码、资源文件及配置信息,支持模块化开发,允许开发者根据不同设备特性打包多个HAP,优化应用性能与资源占用。HAP分为Entry和Feature两种类型,Entry为核心模块,Feature为功能模块,可通过动态加载实现按需安装与更新。这种设计提升了应用的灵活性和跨设备兼容性。

回到顶部