> 文档中心 > OpenHarmony学习笔记

OpenHarmony学习笔记


一 APP

HarmonyOS 的应用软件包以APP Pack, 有一个或多个HAP 以及描述每个HAP数学的pack.info组成。HAP是Abilities的部署包,代码围绕Ability组件展开。

1. 组成

  1. 一个HAP 有 代码、资源、第三方库及应用配置文件组成的模块包,有两种模块包 entry 和 feature。
    1. entry:主模块,一个APP中,对于同一设备类型有且只有一个entry类型的HAP,可以独立安装运行。
    2. feature:动态特新模块,一个APP可包含一个或多个feature类型的HAP,可不包含。只有包含Ability的HAP能独立运行。
  2. HAP由零个或一个或多个Ability组成。

2. 结构

二 Ability

  1. 应用能力的抽象,一个应用包含一个或多个Ability。两种类型:FA和PA,是应用的基本单元,实现特定功能,FA有UI,PA无UI。(欸,是不是很像前端和后端啊)
  2. 库文件是应用的第三方代码。
  3. 配置文件包含Ability的配置信息,用于声明Ability,应用所需权限等。

1. pack.info

  1. 描述HAP属性,由IDE生成,HAP具体属性包括:
    1. delivery-with-install: 表示HAP是否支持随应用安装。true表示支持。
    2. name:HAP文件名。
    3. module-type:模块类型,entry或feature。
    4. device-type:支持该HAP运行的设备类型。

三 库文件

HAR全名HarmonyOS Ability Resources,提供构建文件所需内容,包括源代码、资源文件、和config.json 文件。不同于HAP,不能独立安装运行,只能被引用。

四 资源文件

1. 应用资源文件

放在resourece目录下,便于开发者实用和维护。包括base目录和限定词目录。

2. resource 目录结构

3. 限定词目录

由表征应用场景或设备特征的限定词组合,包括语言,文字,国家或地区,横竖屏,设备类型和屏幕密度六个维度。限定词之间通过下划线或者中划线“-” 连接。

限定词目录下包含限定词文件,分为三类,element,media,animation(动画资源)。

4. base目录限定词引用

  1. 在应用开发的hml和js文件使用$r语法,可以对JS模块内的resources目录下的json资源进行格式化,获取相应的资源内容。
  2. 对于js页面对象的属性$r, 可以使用string类型的key参数,返回值为string类型。

5. 系统资源文件