前语

系列文章目录:

HarmonyOS开发榜首步,熟知开发东西DevEcoStudio

当咱们娴熟的掌握了DevEcoStudio之后,就能够创立项目进行操练了,和市场上大多数IDE相同,DevEcoStudio也给咱们供给了很多的实例模板,当然了,关于大多数移动端开发者而言,这些模板和咱们的UI规划有着很大的出入,一般都会挑选一个空的视图作为项目,便利咱们从0到1进行开发。

HarmonyOS开发:超详细了解项目的工程结构

点击下一步,就进入到了项目信息编辑页面,作为一名Android开发者,对这个页面几乎不要太熟悉,无非便是项意图姓名,包名,SDK版本的挑选等等。

HarmonyOS开发:超详细了解项目的工程结构

有两项是咱们需求留意的,榜首项,Model的挑选,也便是运用模型,现在随着HarmonyOS的开展,供给了两种运用模型,一种是Stage模型,一种是FA模型,现在,官方主推的是Stage模型,咱们在创立项意图时分,也是默认的这种模型,它是在,HarmonyOS3.1DevelperPreview版本开始新增的模型,是现在主推且会长时间演进的模型,在该模型中,由于供给了AbilityStage、WindowStage等类作为运用组件和Window窗口的“舞台”,因此称这种运用模型为Stage模型。

关于Stage模型,官方有着很详细的介绍,这里就不多说了。

还有一项需求留意的,EnableSuperVisual选项,也便是是否要发动低代码作为模板,挑选之后,你就能够在项目中拖拽完成想要的页面,相似AndroidStudio中的Xml中的Design选项。

HarmonyOS开发:超详细了解项目的工程结构

以上的部分只是前语,论述了项目创立前的一些留意事项,在讲述工程结构之前,咱们需求对HarmonyOS的UI开发结构ArkUI做一个简单的了解。

今日的文章内容,大致如下:

1、ArkUI结构的简单论述

2、Stage模型下的ArkTS工程目录结构

3、与Android项目结构比照

4、相关总结

一、ArkUI结构的简单论述

为什么要在工程结构之前论述ArkUI这个UI结构?首要原因只要一个,便是为今后的项目创立做好铺垫,首要咱们来搞清楚前因后果。

ArkUI结构,既是方舟开发结构,它是HarmonyOS供给了一套UI开发结构,和Flutter与SwiftUI有着异曲同工的角色,你能够运用Flutter言语开发出Android、iOS等平台的运用,也能够运用SwiftUI开发出iOS端的运用,同理,HarmonyOS端的运用,如何开发呢,能够运用ArkUI。

针对不同意图和技术背景,ArkUI供给了两种开发方法,一种是根据ArkTS的声明式开发方法,这个方法和Flutter与SwiftUI很相似,也便是说,假如你之前了解过Flutter与SwiftUI,那么运用这种方法,再便利不过;还有一种是兼容JS的类Web开发方法,弦外之音,这种方法允许你用前端言语,也便是经典的HML、CSS、JavaScript来开发运用。

开发方法称号 言语生态 UI更新方法 适用场景 适用人群
声明式开发范式 ArkTS言语 数据驱动更新 复杂度较大、团队合作度较高的程序 移动体系运用开发人员、体系运用开发人员
类Web开发范式 JS言语 数据驱动更新 界面较为简单的程序运用和卡片 Web前端开发人员

作为移动端运用的开发者,考虑到功能,复杂度高,开发效率和开展趋势而言,声明式开发方法,肯定是咱们的首选方法,当然了,官方也是主推这种方法,官方引荐的原因如下:

开发效率:声明式开发范式更接近天然语义的编程方法,开发者能够直观地描述UI,无需关怀如何完成UI制作和烘托,开发高效简洁。

运用功能:如下图所示,两种开发范式的UI后端引擎和言语运行时是共用的,可是相比类Web开发范式,声明式开发范式无需JS结构进行页面DOM办理,烘托更新链路更为精简,占用内存更少,运用功能更佳。

HarmonyOS开发:超详细了解项目的工程结构

开展趋势:声明式开发范式后续会作为主推的开发范式继续演进,为开发者供给更丰富、更强壮的才干。

所以在今后的项目开发中,榜首,根据ArkTS的声明式开发方法,第二,选用Stage模型,原因只要一个,根据功能和未来的开展趋势,假如这个原因还不行,那就拿官方引荐作为原因,肯定好使!

至于ArkTS,后续的文章慢慢讲述吧,一步一步来,循序渐进。

二、Stage模型下的ArkTS工程目录结构

不要被一些名词给唬住了,咱们默认创立的便是根据Stage模型下的ArkTS工程目录结构,创立完毕之后,窗口如下:

HarmonyOS开发:超详细了解项目的工程结构

和AndroidStudio不能说一模相同,但也是十分有九分的雷同,详细的各个功能就不多赘述,咱们直接看左边的目录结构:

HarmonyOS开发:超详细了解项目的工程结构

咱们从上往下逐个进行解析:

.hvigor:存储构建装备文件信息。

.idea:存储项意图装备信息。

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:运用的全局装备信息。

entry:HarmonyOS工程模块,编译构建生成一个HAP包。

src>main>ets:用于寄存ArkTS源码。
        entryability:运用/服务的进口。
        pages:运用/服务包含的页面。
src>main>resources:用于寄存运用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等,和上面的共享目录是一致的。
src>main>module.json5:Stage模型模块装备文件。首要包含HAP包的装备信息、运用/服务在详细设备上的装备信息以及运用/服务的全局装备信息。
build-profile.json5:当时的模块信息、编译信息装备项,包括buildOption、targets装备等。其间targets中可装备当时运行环境,默以为HarmonyOS。
hvigorfile.ts:模块级编译构建使命脚本,开发者能够自界说相关使命和代码完成。

hvigor:构建装备文件信息,是一款全新根据TS完成的前端构建使命编列东西,结合npm包办理机制,首要供给使命办理机制,使命注册编列、工程模型办理、装备办理等要害才干,更契合ArkTS/JS开发者的开发习气。

oh_modules:用于寄存三方库依靠信息。

gitignore:git过滤装备。

build-profile.json5:运用级装备信息,包括签名、产品装备等。

hvigorfile.ts:运用级编译构建使命脚本。

hvigorw和hvigorw.bat:ohpm编译构建东西。

local.properties:存储本地特点的文件。

oh-package.json5:依靠装备,能够设置三方包依靠。

能够说,以上的目录结构介绍,全网甚至是官网,也没有这么的详细,为什么要对目录结构过多的进行论述,意图只要一个,更好的了解项目,能够针对性且快速的进入到开发之中。

三、与Android项目结构比照

或许,榜首次直接的检查这样的一个工程目录,确实需求一段时间的了解,才干知道各个文件的效果,为了愈加直观明了的让一名Android开发者快速的知道每个文件对应的意义,接下来将会按照Android工程的目录结构Stage模型下的ArkTS工程目录结构,进行逐个对应,期望能够有所协助,当然了,假如你不是一名Android开发者,这个步骤能够掠过,细心的检查第二步的介绍即可。

整体的对照

左边是HarmonyOS项目,右侧是Android项目,详细的对照图如下所示:

HarmonyOS开发:超详细了解项目的工程结构

首要文件对应

Android文件 HarmonyOS文件
清单文件AndroidManifest.xml module.json5
Activity/Fragment entryability下的ts文件
XML布局 pages下的ets文件
res resources
Module下的build.gradle Module下的build-profile.json5
gradle hvigor
根目录下的build.gradle 根目录下的build-profile.json5
colors.xmldimens.xmlstrings.xml…… color.json:色彩float.json:浮点型string.json:字符串值……

四、相关总结

经过对工程结构的了解,关于咱们步入HarmonyOS的开发,有着指引的效果,能够清晰的知道各个文件及文件夹的效果,在哪里书写代码,又是在哪里增加资源,能够有一个直观的定位,特别是,不是从Android开发者转过来的同学,关于工程结构更应该及时的了解。