HarmonyOS应用开发的工程目录结构
创始人
2024-12-26 09:36:26
0

在介绍鸿蒙应用开发的细节,我们来了解工程目录结构,这样我们才知道我们能做什么。
在这里插入图片描述
我们现在来一一介绍这些目录都是用来做什么的。

  • AppScope > app.json5 应用级的配置信息

  • AppScope > resources 这个目录下的base>element用于存放全局使用的基本元素,如字符串、颜色和布尔值。base>media目录则存储媒体、动画和布局等资源文件。如果模块下的resources的有同样的资源,那么就会优先使用模块下的资源,否则就使用这里的资源。
    请添加图片描述

  • hvigor:这个目录与android工程的gradle目录很像,行使的功能也类似。
    请添加图片描述

  • oh_modules 这个目录用来存放第三方库依赖信息

  • build-profile.json5 这个文件位于根目录,它放置应用级配置信息,包括签名配置和产品配置,它的作用于android工程中的根目录下的build.gradle差不多。

  • hvigorfile.ts 应用的编译脚本

  • local.properties 这个与android工程的那个差不多

  • hvigorw: 这个与android工程的gradlew的作用相似。hvigorw.bat是对应在windows中使用的脚本。

  • entry 这个目录与android工程的app目录是同等作用,就是这个应用的入口,所以在鸿蒙干脆它的目录名也起成了入口(entry)。我们的写的应用的代码都是放在这个目录中,打包时,就会将这里的代码编译,生成HAP,即HarmonyOS Ability package鸿蒙能力包,对就android的apk(application package)包。

entry目录下的子目录及其作用

  • build-profile.json5这个是编译配置文件,它包含了当前模块的信息和编译配置选项等等,就像android工程中每个module(模块)下都有一个build.gradle来管理当前模块的编译。Note: 在鸿蒙应用工程的根目录也有一个这样的文件,那个是应用级的,全局的,这个是当前模块的局部的,android工程中的build.gradle也是一样,有一个应用级的,也有一个当前模块的。

  • hvigorfile.ts 这是一个模块级的编译脚本,在鸿蒙应用工程根目录也一个,那个是应用级的。在android工程倒是没有这样独立出来的编译脚本,它的编译脚本都放在了对应的build.gradle脚本中。

  • src > main > module.json5 这个文件描述了应用的全局配置信息,这个目录下的这份文件相当于android中app模块下的AndroidManifest.xml。

  • src > main > ets 放ArkTS源代码的地方,鸿蒙应用可以使用官方的开发语言ArkTS来开发。

  • src > main > ets > entryability 这个目录就是用来放所那些应用或服务的入口的,其实就是那些继承了UIAbility类的类文件。相当于android应用中的activity类

  • src > main > ets > pages 这个目录是专门用来放页面的,因为ArkTS采用了声明式UI,和android的Compose和iOS的SwiftUI都同样的产品。鸿蒙在这个目录里定义好页面,然后在src > main > ets > entryability 对应的ability加载出来。

  • src > main > resources 这个目录相当于android工程的res目录,用来放置应用用到的资源文件,如图片、多媒体、文字等,国际化也是在这里定义的。资源目录分为base基目录、qualifiers限定符目录和rawfile目录。

base 目录是默认提供的。在这个目录下,element子目录存放了诸如文字、颜色、布尔值等。media 和 profile 子目录存放了诸如多媒体、动画、布局等。编译时,这些资源文件都会被编译成二进制文件,并分配相应的ID。
请添加图片描述
这些资源因为是配置在entry中, 所以也是在entry中来使用,使用的方法也很简单,它们是基于资源类型和资源名来引用,如在entry模块下的module.json5引用它们。如element>string.json有这样的配置:

{   "string": [     {       "name": "EntryAbility_label",       "value": "label"     }   ] } 

引用这个资源方式就是$string:EntryAbility_label,下面是entry模块下module.json5 对一些资源的引用:

请添加图片描述

qualifiers限定符目录,en_US和zh_CN是默认的两个限定符目录,我们可以根据我们的需要来增加其它的限定符目录。 这些限定符目录其实存放的也是和base目录里的东西差不多,比如动画可以用一套,那么就直接用base基本目录里的就好,文字需要分开显示英语、简体中文、繁体中文,那么就需要在限定符目录里增加对应的文字资源,应用国际化就是这样一个好例子。英文、简体、繁体等文字、图片等资源都是不一样的,需要根据用户的选择来适配,那么等于我们有三份文字或图片来适配。图片有时也需要的,例如,图片上有一句话是产品做宣传用的,那么这张图片就应该有三张。下面是文字的例子:

请添加图片描述

请添加图片描述
其实上面讲的base目录和限定符目录,和android工程中的values , values-en-rUS,values-zh-rCN是一样。

rawfile目录与android工程的raw目录是一样的。我们可以创建具有自定义名称的多级子目录来存储各种资源文件。 rawfile目录中的资源文件直接打包到应用程序中而不进行编译,并且不会为资源文件分配id。这里的资源的引用是通过指定的文件路径和文件名来引用。

相关内容

热门资讯

素来有辅助"逍遥辅助... 您好:逍遥辅助官网这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
方针开挂"丽水茶苑游... 方针开挂"丽水茶苑游戏辅助"开挂(平台)辅助工具(有挂方法)丽水茶苑游戏辅助ai黑科技系统规律教程开...
透视了解!葫芦娃七子降妖破解版... 大家好,今天小编来为大家解答葫芦娃七子降妖破解版内购这个问题咨询软件客服可以免费测试直接加微信(13...
原来有辅助!杭州边锋辅助软件,... 原来有辅助!杭州边锋辅助软件,hhpoker免费透视脚本,揭秘教程(有挂猫腻)-哔哩哔哩1、下载安装...
阶段开挂"边锋干橙眼... 大家好,今天小编来为大家解答边锋干橙眼ios辅助这个问题咨询软件客服可以免费测试直接加微信(1367...
原先有辅助"牛总管辅... 原先有辅助"牛总管辅助神器"详细开挂辅助插件真的有挂(教你攻略);打开点击测试直接进入微信(1367...
透视中牌率!广东雀神智能插件需... 透视中牌率!广东雀神智能插件需要付费吗,微信小程序财神十三脚本(透视)开挂辅助下载分享教程>>您好:...
机巧开挂"财神十三张... 机巧开挂"财神十三张怎么提高胜率"开挂(辅助挂)辅助安装(有挂细节)这是一款可以让一直输的玩家,快速...
教会开挂!钱塘十三水辅助,大菠... 教会开挂!钱塘十三水辅助,大菠萝免费辅助器,细节方法(有挂讲解)-哔哩哔哩《详细加薇13670430...
原生有辅助"拱趴大菠... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...