鸿蒙开发 ArkTS 工程目录结构详解-繁依Fanyi

在进行鸿蒙系统应用开发时,了解 ArkTS 工程的目录结构至关重要。本文将深入剖析一个典型的 ArkTS 项目的工程目录结构,并对各个目录和文件进行详细讲解,帮助你更好地理解鸿蒙应用的开发流程和配置方式。

一、工程目录结构概览

├  AppScope
│   ├  resources
│   │   └  base
│   │      ├  element
│   │      │   └  string.json
│   │      └  media
│   │         └  app_icon.png
│   └  app.json5  //应用的全局配置信息,详见app.json5配置文件
├  entry    //HarmonyOS工程模块,编译构建生成一个HAP包
│   ├  src
│   │   ├  main
│   │   │   ├  ets   // 用于存放ArkTS源码
│   │   │   │   ├  entryability   // 应用/服务的入口
│   │   │   │   ├  entrybackupability   // 应用提供扩展的备份恢复能力
│   │   │   │   └  pages   // 应用/服务包含的页面
│   │   │   ├  resources   // 用于存放应用/服务所用到的资源文件
│   │   │   │   ├  base
│   │   │   │   │   ├  element // 字符串、整型数、颜色、样式等资源的json文件
│   │   │   │   │   ├  media // 多媒体文件,如图形、视频、音频等文件
│   │   │   │   │   └  profile 
│   │   │   │   ├  rawfile // 任意格式的原始资源文件
│   │   │   └  module.json5  // 模块配置文件
│   ├  build-profile.json5  // 当前的模块信息、编译信息配置项
│   ├  hvigorfile.ts  // 模块级编译构建任务脚本
│   ├  obfuscation-rules.txt  // 混淆规则文件
│   └  oh-package.json5  // 用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息
├  oh_modules  // 用于存放三方库依赖信息
├  build-profile.json5  // 工程级配置信息,包括签名、产品配置等
├  hvigorfile.ts  // 工程级编译构建任务脚本
└  oh-package.json5  // 用于描述全局配置,如:依赖覆盖、依赖关系重写和参数化配置

二、目录和文件详解

1. AppScope 目录

AppScope 目录是应用的全局配置和资源文件夹,通常包含一些全局资源和配置,供应用的各个模块共享。

  • resources:用于存放应用的资源文件,可以细分为多个子目录:

    • base:存放应用的基础资源,包括语言资源、样式资源等。
      • element:定义了应用中的基础元素,如字符串、数字、颜色、样式等资源。常见的如 string.json,其中存放了应用中会用到的字符串文本内容。
        {
          "app_name": "MyHarmonyApp",
          "welcome_message": "Welcome to HarmonyOS!"
        }
        
      • media:存放应用中的多媒体资源,如图标、背景图、音频等。
        • app_icon.png:应用的图标,通常在应用启动、任务栏显示等地方使用。
        • 其他如 .mp3, .mp4 文件等多媒体内容。
      • profile:用于定义一些配置文件,通常是关于应用设置的资源。
  • app.json5:此文件包含了应用的全局配置信息。它通常包括应用名称、版本号、设备配置、权限声明等。json5 是 JSON 的超集,允许更多的灵活配置,如注释和尾逗号。

2. entry 目录

entry 目录是开发的核心部分,包含了应用模块的源代码、资源、配置以及构建任务。它的结构决定了应用的模块化和可扩展性。

  • src:存放应用的源代码,主要是 ArkTS 的代码部分,分为以下几个子目录:

    • ets:存放 ArkTS 源码,包括应用的入口、扩展能力以及页面定义。

      • entryability:定义应用的入口能力,通常会包含应用启动后的初始化逻辑。
      • entrybackupability:为应用提供备份和恢复的能力。这部分代码会处理应用的数据备份、恢复等操作。
      • pages:应用中的各个页面模块,通常是应用的各个视图层或 UI 层。
        • 每个页面对应一个 .ets 文件,包含该页面的 UI 布局、业务逻辑、事件处理等内容。
    • resources:存放应用使用到的资源文件,类似 AppScope/resources,但一般这是局部资源,供当前模块使用。

      • basemediaprofile:资源文件的具体分类。base 可能包括一些通用的样式文件,media 包括图片、音频等,profile 则是配置信息。
      • rawfile:原始资源文件,通常是应用中不需要设备适配的静态文件,路径和名称需要明确指定。
    • module.json5:模块的配置文件,包含了当前模块的基本配置信息,包括:

      • 模块名称、版本、依赖关系等。
      • HAP 包的配置信息,描述了应用如何在目标设备上运行,以及不同设备之间的适配。
      • 应用/服务的全局配置信息。
  • build-profile.json5:该文件存储模块级的编译配置项,包括:

    • buildOption:指定编译的相关选项,如编译优化等。
    • targets:指定编译目标设备或平台(例如:手机、电视、可穿戴设备等)。
    • 其他编译参数,如文件输出路径、模块版本等。
  • hvigorfile.ts:该文件是模块级的构建任务脚本,用于定义模块的编译任务,例如如何处理源代码、如何构建应用包等。

  • obfuscation-rules.txt:混淆规则文件。在发布应用时,开启代码混淆可以保护代码安全,防止反编译。此文件定义了混淆的规则,指明哪些部分需要混淆,哪些可以保留原样。

  • oh-package.json5:该文件类似于 package.json,描述了模块的包信息:

    • 包名、版本、入口文件。
    • 依赖项的版本以及依赖关系。
    • 类型声明文件的引用等。

3. oh_modules 目录

oh_modules 目录用于存放应用的第三方库依赖。这些是应用运行所依赖的外部模块,类似于 Node.js 中的 node_modules

  • 此目录下存放的库文件包括鸿蒙系统提供的标准库,也可以是你自己引入的第三方库或 SDK。

4. build-profile.json5(工程级)

这是项目级的配置文件,用于定义整个工程的构建配置信息,主要包括:

  • signingConfigs:签名配置项,指定如何对应用进行签名,以便发布到应用商店或进行设备测试。
  • products:产品配置,定义了项目的不同产品变种及其特定配置。

5. hvigorfile.ts(工程级)

类似于模块级的 hvigorfile.ts,工程级的构建任务脚本用于定义整个项目的构建逻辑。它包括了编译任务、部署任务等,在项目层面处理所有模块的构建。

6. oh-package.json5(工程级)

此文件用于全局配置,包含:

  • overrides:依赖项的覆盖,允许为特定依赖项指定不同的版本。
  • overrideDependencyMap:依赖关系的重写,能够修改依赖树。
  • parameterFile:为不同环境提供参数化配置。

三、总结

了解鸿蒙 ArkTS 工程的目录结构是开发鸿蒙应用的重要基础。各个目录和文件分别承担不同的职责,从源代码、资源文件
到编译配置和第三方依赖,都是构建高效、可维护应用的关键部分。掌握这些内容后,你将能够更清晰地理解工程的运作方式,并在开发中更加得心应手。希望本文能够帮助你更好地理解鸿蒙应用的结构和配置方式。

© 版权声明
THE END
喜欢就支持一下吧
点赞16 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容