鸿蒙

Posted on By ᵇᵒ

Glossary

ohos: Open Harmony Operating System
ArkTS: ark 方舟 TS TypeScript
hvigor: h(harmony)-vigor(元气) 鸿蒙构建工具

.ets: Extended TypeScript 文件
.ats 文件通常指 ATS(Applied Type System) 编程语言的源代码文件,但在现代 ATS 2 版本中,它已经被 .dats、.sats 和 .hats 取代。

.abc: 方舟字节码(ArkCompiler Bytecode)文件
json5: 一个扩展的 json 格式,相比传统的 json 提供了更多的数据类型和语法特性

hdc: HarmonyOS Device Connector 是华为鸿蒙生态中的一个设备调试工具,主要用于开发、调试、管理 HarmonyOS 设备,类似于 Android 的 adb(Android Debug Bridge)
bm: Bundle Manager(应用包管理器),用于 管理应用的安装、卸载、查询等操作,类似于 Android 的 pm(Package Manager)
aa: Ability Manager,类似 Android 的 am(Activity Manager)

HAP、HAR、HSP

HAP: Harmony Ability Package 是应用安装和运行的基本单元。HAP 包是由代码、资源、第三方库、配置文件等打包生成的模块包,其主要分为两种类型:entry 和 feature。

HAR: Harmony Archive 静态共享包,编译态复用。不支持在设备上单独安装/运行,只能作为应用模块的依赖项被引用。

  • 支持应用内共享,也可以发布后供其他应用使用。
  • 作为二方库,发布到 OHPM 私仓,供公司内部其他应用使用。
  • 作为三方库,发布到 OHPM 中心仓,供其他应用使用。
  • 多包(HAP/HSP)引用相同的 HAR 时,会造成多包间代码和资源的重复拷贝,从而导致应用包膨大。
  • 注意:编译HAR时,建议开启混淆能力,保护代码资产。

HSP: Harmony Shared Package 动态共享包,运行时复用。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。当多包(HAP/HSP)同时引用同一个共享包时,采用 HSP 替代 HAR,可以避免 HAR 造成的多包间代码和资源的重复拷贝,从而减小应用包大小。

  • 应用内HSP: 在编译过程中与应用包名(bundleName)强耦合,只能给某个特定的应用使用。
  • 集成态HSP: 构建、发布过程中,不与特定的应用包名耦合;使用时,工具链支持自动将集成态 HSP 的包名替换成宿主应用包名。

Module

  • Ability
    • entry 类型的 module,应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成 entry 类型的 HAP。可以独立安装和运行,App Pack 包中同一设备类型的所有 HAP 中必须有且只有一个 entry 类型的 HAP。
    • feature 类型的 module,应用的动态特性模块,编译后生成 feature 类型的 HAP。一个应用中可以包含一个或多个 feature 类型的 HAP,也可以不包含。
  • Library
    • Static Library 静态共享库,编译后会生成一个以 .har 为后缀的文件,即静态共享包 HAR。
    • Shared Library 动态共享库,编译后会生成一个以 .hsp 为后缀的文件,即动态共享包 HSP。
      实际上,Shared Library编译后除了会生成一个 .hsp 文件,还会生成一个 .har 文件。这个 .har 文件中包含了 HSP 对外导出的接口,应用中的其他模块需要通过 .har 文件来引用 HSP 的功能。为了表述方便,我们通常认为 Shared Library 编译后生成 HSP。

应用模型

应用模型是 HarmonyOS 为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。

随着系统的演进发展,HarmonyOS 先后提供了两种应用模型:

  • FA(Feature Ability)模型: HarmonyOS API 7 开始支持的模型,已经不再主推。
  • Stage 模型: HarmonyOS API 9 开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了 AbilityStage、WindowStage 等类作为应用组件和 Window 窗口的“舞台”,因此称这种应用模型为 Stage 模型。

应用包结构

官方文档

Related Issues not found

Please contact @y4n9b0 to initialize the comment