鸿蒙OS 应用程序包结构(Stage模型)

预计阅读时间1 分 256 views

想要成为一名优秀的HarmonyOS开发者,深入理解应用打包结构至关重要! 本文将带你揭开HarmonyOS应用打包的神秘面纱,重点解析Stage模型下的应用程序包结构。

HarmonyOS 应用的构建

HarmonyOS应用的构建是一个从模块到应用包的过程,就像拼图一样,将各个模块组合成最终的应用。

  1. Module:应用的基石 Module是HarmonyOS应用的基本功能单元,就好比搭建房屋的砖块。 一个应用可以包含一个或多个Module,每个Module都可以独立编译和运行。
    • Ability Module: 编译后生成HAP(Harmony Ability Package),是应用的核心功能模块。
    • Library Module: 编译后生成HAR(Harmony Archive)或HSP(Harmony Shared Package),作为其他模块的依赖库。
    • UIAbility: 每个Ability Module可以包含一个或多个UIAbility组件,负责构建应用的界面。
  2. HAP:应用的安装单元 HAP(Harmony Ability Package)是HarmonyOS应用的安装单元,类似于Android系统中的APK。 它是将Module编译打包后的产物,包含了应用运行所需的代码、资源、库文件等。
    • Entry HAP: 应用的主模块,一个应用只有一个Entry HAP。
    • Feature HAP: 应用的动态特性模块,一个应用可以包含多个Feature HAP,也可以没有。
  3. Bundle:应用的完整形态 Bundle是HarmonyOS应用的完整形态,它包含了应用的所有HAP文件,使用唯一的bundleName标识。 开发者将应用发布到应用市场时,需要将所有HAP打包成一个App Pack(.app文件),App Pack中包含了所有HAP和描述应用信息的pack.info文件。
Module与UIAbility组件关系示意图

HAP 包结构

打包后的HAP文件内部结构井然有序,各目录解释:

  • ets目录: 存放应用代码编译后的字节码文件。
  • libs目录: 存放应用依赖的第三方库文件(.so文件)。
  • resources目录: 存放应用的资源文件,例如图片、字符串等。
  • resources.index: 资源索引表,帮助应用快速查找资源。
  • module.json: HAP的配置文件,包含了应用的名称、版本号、权限等重要信息。
  • pack.info: 描述Bundle中每个HAP属性的文件。
应用程序包结构(Stage模型)

总结

深入理解HarmonyOS应用的打包结构,能够帮助开发者更好地组织代码、管理资源、发布应用,开发出高质量的HarmonyOS应用。

分享此文档

鸿蒙OS 应用程序包结构(Stage模型)

或复制链接

本页目录