全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

鸿蒙系统系列教程6-鸿蒙系统项目结构解析

发布时间:2021-07-14 09:15:00
发布人:小千

      鸿蒙系统一经推出就受到了广泛的关注,更是不少开发者都想提前学习鸿蒙软件开发,提前布局,所以小千为大家整理了一系列的鸿蒙开发教程,今天我们介绍鸿蒙系统的项目结构逻辑,喜欢的话记得分享收藏一下。

      一、用户应用程序包结构

      HarmonyOS的用户应用程序包以APP Pack(Application Package)形式发布,它是由一个或多个HAP(HarmonyOS Ability Package)以及描述每个HAP属性的http://pack.info组成。HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开。

      一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为entry和feature两种模块类型,如图1所示。

千锋IT鸿蒙教程1

      entry:应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。

      feature:应用的动态特性模块。一个APP可以包含一个或多个feature类型的HAP,也可以不含。只有包含Ability的HAP才能够独立运行。

      Ability:Ability是应用所具备的能力的抽象,一个应用可以包含一个或多个Ability。Ability分为两种类型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是应用的基本组成单元,能够实现特定的业务功能。FA有UI界面,而PA无UI界面。

      库文件:库文件是应用依赖的第三方代码(例如so、jar、bin、har等二进制文件),存放在libs目录。

      资源文件:应用的资源文件(字符串、图片、音频等)存放于resources目录下,便于开发者使用和维护。

      配置文件:配置文件 (config.json) 是应用的Ability信息,用于声明应用的Ability,以及应用所需权限等信息。

      二、程序目录结构

千锋IT鸿蒙教程2

      首先有一个entry目录,结合上篇的内容,我们知道一个应用是由一个或多个Hap包所组成的,Hap包又可以分为entry类型和feature类型,每个Hap包由:代码、资源、第三方库及应用配置文件组成。所以我们代码中的entry目录其实就一个应用的Hap包,它的类型的entry类型的Hap包。一个Hap包由代码、资源、第三方库及应用配置文件组成,接着我们来看这些资源,代码等都分布在entry包的哪里。

      在src/main/java下以包名命名的文件夹内分布着Java代码。这里的代码可以用来创建布局,动态调整布局以及为交互提供支撑服务。和java文件夹同级的resources目录下分布应用资源,该目录的base目录下,按资源用途又分为多个文件夹资源:

      element:表示元素资源,该文件夹下主要存放json格式的文件,主要用来表示 字符串、颜色值、布尔值等,可以在其他地方被引用。

      graphic:表示可绘制资源。用xml文件来表示,比如我们项目中设置的 圆角按钮、按钮颜色等都是通过引用这里的资源来统一管理的。

      layout:表示布局资源,用xml文件来表示,比如页面的布局资源,都放在这里。

      media:表示媒体资源,包括图片、音频、视频等非文本格式的文件。

      config.json项目配置文件:每一个hap包下都包含了该hap包的配置信息,这个配置文件位于:entry/src/main/目录下,由工具帮我们生成,命名为config.json,harmonyOS应用配置采用json格式的形式。下面我们来看一下这个配置文件中的内容,并简要介绍一下配置的作用。该配置文件中,主要有三个模块,如下所示:

      app:表示应用的全局配置信息。同一个应用的不同HAP包的“app”配置必须保持一致。

      deviceConfig:表示应用在具体设备上的配置信息。

      module:表示HAP包的配置信息。该标签下的配置只对当前HAP包生效。

      bundleName:表示应用的包名,用于标识应用的唯一性。通常采用反转的域名。

      vendor:表示开发应用的厂商。

      version:code表示内部版本号,用于系统管理版本使用,对用户不可见,name表示应用的版本号,用于向用户呈现。

      apiVersion:包含三个选项,1、compatible:表示应用运行需要的API最小版本。2、target:表示应用运行需要的API目标版本。3、releaseType:表示应用运行需要的API目标版本的类型,取值为“CanaryN”、“BetaN”或者“Release”,其中,N代表大于零的整数。

      Canary:受限发布的版本。

      Beta:公开发布的Beta版本。

      Release:公开发布的正式版本。

      以上就是这一期的鸿蒙系统项目结构解析的教程了,最后欢迎对鸿蒙开发感兴趣的同学来到千锋了解一下我们的鸿蒙开发培训课程,全程名师面授确保教学质量,现在咨询更有海量优惠和免费的学习教程视频可以领取,赶紧找在线老师了解一下吧。

相关文章

什么是云管理平台

什么是云管理平台

2023-12-04
​什么是云管理

​什么是云管理

2023-12-04
libvirt是一个什么工具

libvirt是一个什么工具

2023-12-04
Libvirt的主要功能

Libvirt的主要功能

2023-12-04

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取