HarmonyOS 工程目录介绍

发布时间:2024年01月11日
  • 工程目录
    • AppScope:存放应用全局所需要的资源文件
      • base
        • element:文件夹主要存放公共的字符串、布局文件等资源
        • media:存放全局公共的多媒体资源文件
        • app.json5:应用的全局的配置文件,用于存放应用公共的配置信息
          {
            "app": {
              "bundleName": "com.xiaotie.testapplication",//包名
              "vendor": "example",//应用程序供应商
              "versionCode": 1000000,//用于区分应用版本
              "versionName": "1.0.0",//版本号
              "icon": "$media:app_icon",//对应于应用的显示图标
              "label": "$string:app_name"//应用名
            }
          }
    • entry:应用的主模块,存放HarmonyOS应用的代码、资源等
      • src
        • ohosTest:单元测试目录
        • main
          • ets
            • entryability:存放ability文件,用于当前ability应用逻辑和生命周期管理
            • pages:存放UI界面相关代码文件,初始会生成一个Index页面
          • resources
            • base
              • element:模块公共的字符串资源文件
              • media:模块公共的多媒体文件
              • profile
                • main_pages.json:页面page的路径配置信息,所有需要进行路由跳转的page页面都要在这里进行配置
              • en_US
              • zh_CN
              • rawfile
          • module.json5:模块的配置文件,包含当前模块的配置信息
            {
              "module": {
                "name": "entry",//该标签标识当前module的名字,module打包成hap后,表示hap的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一
                "type": "entry",//表示模块的类型,类型有三种,分别是entry、feature和har
                "description": "$string:module_desc",//当前模块的描述信息
                "mainElement": "EntryAbility",//该标签标识hap的入口ability名称或者extension名称。只有配置为mainElement的ability或者extension才允许在服务中心露出。
                "deviceTypes": [
                  "phone",
                  "tablet"
                ],//该标签标识hap可以运行在哪类设备上,标签值采用字符串数组的表示
                "deliveryWithInstall": true,//标识当前Module是否在用户主动安装的时候安装,表示该Module对应的HAP是否跟随应用一起安装。- true:主动安装时安装。- false:主动安装时不安装。
                "installationFree": false,//标识当前Module是否支持免安装特性。- true:表示支持免安装特性,且符合免安装约束。- false:表示不支持免安装特性。
                "pages": "$profile:main_pages",//对应的是main_pages.json文件,用于配置ability中用到的page信息
                "abilities": [
                  {
                    "name": "EntryAbility",//该标签标识当前ability的逻辑名,该名称在整个应用要唯一,标签值采用字符串表示(最大长度127个字节)。
                    "srcEntry": "./ets/entryability/EntryAbility.ts",//ability的入口代码路径
                    "description": "$string:EntryAbility_desc",//ability的描述信息
                    "icon": "$media:icon",//ability的图标。该标签标识ability图标,标签值为资源文件的索引。该标签可缺省,缺省值为空。如果ability被配置为MainElement,该标签必须配置。
                    "label": "$string:EntryAbility_label",//ability的标签名。
                    "startWindowIcon": "$media:icon",//启动页面的图标。
                    "startWindowBackground": "$color:start_window_background",//启动页面的背景色。
                    "exported": true,//ability是否可以被其他应用程序调用,true表示可以被其它应用调用, false表示不可以被其它应用调用。
                    "skills": [
                      {
                        "entities": [
                          "entity.system.home"
                        ],//标识能够接收Want的Entity值的集合。
                        "actions": [
                          "action.system.home"
                        ]//标识能够接收的Want的Action值的集合,取值通常为系统预定义的action值,也允许自定义。
                      }
                    ]//标识能够接收的意图的action值的集合,取值通常为系统预定义的action值,也允许自定义。
                  }
                ]//是一个数组,存放当前模块中所有的ability元能力的配置信息,其中可以有多个ability
              }
            }
        • build-profile.json5:模块级配置信息,包括编译构建配置项
        • hvigorfile.ts:模块级构建脚本
        • oh-package.json5:模块级依赖配置信息文件
    • oh_modules:工程的依赖包,存放工程依赖的源文件
    • build-profile.json5:工程级配置信息,包括签名、产品配置等
    • hvigorfile.ts:工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力
    • oh-package.json5:工程级依赖配置文件,用于记录引入包的配置信息
文章来源:https://blog.csdn.net/qq_50675668/article/details/135524197
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。