HarmonyOS开发第一步了解项目结构

2025-06-25 22:46:14
110次阅读
0个评论

本文开发工具基于DevEco Studio 5.1.0 Release

API>=12

本文标签:鸿蒙开发工具/DevEco Studio

随着Api的更新迭代,在创建项目的时候格局也发生了变化,之前还有Model的选择,也就是应用模型,如今早已去除,node环境也不需要再次配置,设备类型也从原来的两种,增加到了如今的六种,可以说,目前的鸿蒙开发,慢慢变得简洁化,变得应用化。

image.png

当我们创建好一个项目后,基本的目录结构如下图所示:

image.png

对于一个初学者而言,首先就是先了解项目的目录结构,知晓每个目录,每个文件所代表的含义,才能方便日后的开发工作,本篇文章,我们就一起逐个目录来概述一下。

非主要文件介绍

从上到下,我们把非主要文件进行简单概述一下,首先是 .hvigor目录,它是用于存储构建配置文件信息; .idea:它是用于存储项目的配置信息;hvigor目录:它是构建配置文件信息,是一款全新基于TS实现的前端构建任务编排工具,结合了npm包管理机制,主要提供任务管理机制,任务注册编排、工程模型管理、配置管理等关键能力,更符合ArkTS/JS开发者的开发习惯;oh_modules:主要用于存放三方库依赖信息,全局安装的三方依赖也会存储于此,gitignore:这个没什么好说的,它主要用于git过滤配置;code-linter.json5文件,主要用于对代码检查的范围及对应生效的检查规则进行配置;hvigorfile.ts:应用级编译构建任务脚本;local.properties:主要用于存储本地属性的文件;oh-package.json5:依赖配置,可以设置三方包依赖。

主要文件介绍

在实际的开发中,和我们密切相关,并且接触度高的有以下这些文件目录,AppScope:全局的共有资源存放目录;entry:HarmonyOS工程模块,它会最终编译构建生成一个HAP包;build-profile.json5:应用级配置信息,包括签名、产品配置等。

除了以上的三个文件目录外,如果我们是模块化或者组件化的项目,也会增加各个模块的文件目录,同样也是十分重要的,它和entry都是用于编写代码的模块,只是类型不一样而已。

AppScope

AppScope是一个全局的资源存放之处,当我们项目中存在多个模块时,各个模块之间,如果有共用的资源,比如图片,字符串,颜色等等,都可以放置在这里,以便实现代码上的复用。

resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。

    base>element:包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义

                boolean.json:布尔型

                color.json:颜色

                float.json:浮点型

                intarray.json:整型数组

                integer.json:整型

                pattern.json:样式

                plural.json:复数形式

                strarray.json:字符串数组

                string.json:字符串值

    base>media:多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。

    rawfile :用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。

app.json5:应用的全局配置信息。

除了资源的共用之外,app.json5中也配置着应用的基本信息,比如包名,应用名字,应用版本号,应用图标等等,在开发中也是十分的重要。

{
  "app": {
    "bundleName": "com.demo.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_layered_image",
    "label": "$string:app_name"
  }
}

entry

entry是我们的主模块,也是我们代码主要编写的区域,它的目录结构如下图所示:

image.png

不仅仅是entry,动态共享包和静态共享包,也是我们的代码编辑区域,它和主模块不同的是,是类型不同,还有最终编译后的包也是不一样的。

各个目录,主要介绍如下:

src > main > ets:用于存放ArkTS源码。
src > main > ets > entryability:应用/元服务的入口。
src > main > ets > entrybackupability:应用接入数据备份恢复。
src > main > ets > pages:应用/元服务包含的页面。
src > main > resources:用于存放应用/元服务模块所用到的资源文件,如图形、多媒体、字符串、布局文件等。
src > main > module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息
build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
hvigorfile.ts:模块级编译构建任务脚本。
oh-package.json5:描述三方包的包名、版本、入口文件(类型声明文件)和依赖项等信息。

除了根项目有一个oh-package.json5,每个模块中也有自己的oh-package.json5文件,如果你的依赖仅仅用于当前的模块,那么就在当前模块下oh-package.json5中进行配置,如果是多个模块都使用,可以在根项目下oh-package.json5中配置。

build-profile.json5

build-profile.json5文件主要是应用级配置信息,包括签名、产品配置等,它之所以重要,是因为在最后的签名打包时,需要在这个文件中进行正式签名配置,同样,如果你要进行真机运行,也需要在这个文件中进行签名配置。

简单总结

本文主要针对工程目录,简单了做了一个概述,对于初学的朋友来说,简单的了解一下即可,随着接触的越来越多,便自然而然的会熟悉起来。

收藏00

登录 后评论。没有帐号? 注册 一个。