HarmonyOS ArkTS工程目录结构(Stage模型)

1. ArkTS工程目录结构(Stage模型)

官方文档(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/start-with-ets-stage-0000001477980905-V2)
在这里插入图片描述
在这里插入图片描述

1.1. AppScope

  AppScope > app.json5:应用的全局配置信息。详见app.json5配置文件

{
  "app": {
    /*包名*/
    "bundleName": "com.example.demo",
    /*标识应用的Bundle类型,用于区分应用或者原子化服务。该标签可选值为app 和 atomicService。(-app:当前Bundle为普通应用。-atomicService:当前Bundle为元服务),该标签可以缺省,缺省为app*/
    "bundleType": "app",
    /*应用开发厂商*/
    "vendor": "example",
    /*版本号(该标签值为32位非负整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。开发者可以将该值设置为任何正整数,但是必须确保应用的新版本都
    使用比旧版本更大的值。该标签不可缺省,versionCode 值应小于2^31次方)*/
    "versionCode": 10000,
    /*版本名称(该标签仅由数字和点构成,推荐采用 "A.B.C.D"四段式的形式。四段式推荐的含义如下:
    第一段:主版本号/Major,范围0-99,重大修改的版本,如实现新的大功能或重大变化。
    第二段:次版本号/Minor,范围0-99,表示实现较突出的特点,如新功能添加或重大问题修复)。
    第三段:特性版本号/Feature,范围0-99,标识规划的新版本特性。
    第四段:修订版本号/Patch,范围0-999,表示维护版本,修复bug
    标签最大字节长度为127.*/
    "versionName": "1.0.0",
    /*应用图标,该标签不可缺省*/
    "icon": "$media:app_icon",
    /*应用的名称,该标签不可缺省*/
    "label": "$string:app_name",
    /*标识应用是否可调试,该标签由IDE编译构建时生成(-true:可调试;-false:不可调试),该标签可以缺省,缺省为false*/
    "debug": true,
    /*标识应用的描述信息,标签值是字符串类型(最大255个字节)或对描述内容的字符串资源索引。该标签可缺省,缺省值为空*/
    "description": "",
  }
}

1.2. entry

  entry:HarmonyOS工程模块,编译构建生成一个HAP包。
(1)src > main > ets:用于存放ArkTS源码。
(2)src > main > ets > entryability:应用/服务的入口。
(3)src > main > ets > pages:应用/服务包含的页面。
(4)src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。
(5)src > main > module.json5:Stage模型模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。

{
  "module": {
    /*标识当前Module的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用中要唯一,仅支持英文字符。不可缺省*/
    "name": "entry",
    /*标识当前Module的类型。类型有两种,分别:
    -entry:应用的主模块。
    -feature:应用的动态特性模块。
 
    不可缺省
    */
    "type": "entry",
    /*标识当前Module所对应的代码路径,标签值为字符串(最长127字节)。 该标签值可缺省,缺省值为空*/
    "srcEntry": "",
    /*标识当前Module的描述信息,标签值是字符串类型(最长255字节)或对描述内容的字符串资源索引,可缺省,缺省值为空*/
    "description": "$string:module_desc",
    /*标识当前Module的入口UIAbility名称或者ExtensionAbility名称。标签最大长度为255。字符串,可缺省,缺省值为空*/
    "mainElement": "EntryAbility",
    /*标识当前Module可以运行在哪类设备上,标签值采用字符串数组的表示。字符串数组,不可缺省*/
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    /*标识当前Module是否在用户主动安装的时候安装,表示该Module对应的HAP是否跟随应用一起安装。
    -true:主动安装时安装。
    -false:主动安装时不安装
 
      布尔值,不可缺省
    */
    "deliveryWithInstall": true,
    /*标识当前Module是否支持免安装特性
    -true:表示支持免安装特性,且符合免安装约束。
    -false:表示不支持免安装特性
 
    说明:
    - 当应用的entry类型Module的该字段配置为true时,该应用的feature类型的该字段也需要配置为true。
    -当应用的entry类型Module的该字段配置为false时,该应用的feature类型的该字段根据业务需求配置true或false
 
    布尔值,不可缺省
    */
    "installationFree": false,
    /*标识当前Module的profile资源,用于列举每个页面信息。该标签最大长度为255个字节。
        字符串,在有UIAbility的场景下,该标签不可缺省*/
    "pages": "$profile:main_pages",
    /*标识当前Module中UIAbility的配置信息,标签值为数组类型,只对当前UIAbility生效。  对象,可缺省,缺省值为空*/
    "abilities": [
      {
        /*标识当前UIAbility组件的名称,该名称在整个应用要唯一,标签值采用字符串表示(最大长度127字节),仅支持英文字符。字符串,不可缺省*/
        "name": "EntryAbility",
        /*该标签标识入口UIAbility的代码路径,标签值为字符串(最长127字节)*/
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        /*标识当前UIAbility组件的启动模式,可选标签值:
        - multiton:多实例模式,每次启动创建一个新的实例。
        -singleton:单实例模式,仅第一次启动创建新实例。
        -specified:指定实例模式,运行时由开发者决定是否创建新实例。
 
        字符串,可缺省,该标签缺省为 "singleton"。
        */
        "launchType": "singleton",
        /*标识当前UIAbility组件的描述信息,标签值是字符串类型(最长255字节)或对描述内容的资源索引。字符串,可缺省,缺省值为空*/
        "description": "$string:EntryAbility_desc",
        /*标识当前UIAbility组件的图标,标签值为图标资源文件的索引。字符串,该标签可缺省,缺省值为空。如果UIAbility被配置为MainElement,该标签必须配置*/
        "icon": "$media:app_icon",
        /*标识当前UIAbility组件*/
        "label": "$string:EntryAbility_label",
        /*标识当前UIAbility组件启动页面图标资源文件的索引。取值示例:$media:icon。该标签最大字节长度为255。字符串,不可缺省*/
        "startWindowIcon": "$media:icon",
        /*标识当前UIAbility组件启动页面背景颜色资源文件的索引。取值示例:$color:red。该标签最大字节长度为255。该标签最大字节长度 255。字符串,不可缺省。*/
        "startWindowBackground": "$color:start_window_background",
        /*标识当前UIAbility组件是否可以被其他应用调用。
        -true:表示可以被其他应用调用。
        -false:表示不可以被其他应用调用。
 
        布尔值,缺省值为false*/
        "exported": true,
        /*标识当前UIAbility组件或ExtensionAbility组件能够接收的Want特征集,为数组格式。配置规则:
        - 对于Entry类型的HAP,应用可以配置多个具有入口能力的skills标签(即配置了ohos.want.action.home 和 entity.system.home)。
        - 对于Feature类型的HAP,只有应用可以配置具有入口能力的skills标签,服务不允许配置。
 
        对象数组,可缺省,缺省值为空
        */
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ],
    /*标识当前应用运行时需向系统申请的权限集合。对象,该标签可缺省,缺省值为空*/
    'requestPermissions': [
      {
        "name": "ohos.permission.INTERNET",
        "reason": "$string:dependency_reason",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "inuse"
        }
      }
    ]
  }
}

(6)build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。其中targets中可配置当前运行环境,默认为HarmonyOS。
(7)hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。

1.3. oh_modules

  oh_modules:用于存放三方库依赖信息。关于原npm工程适配ohpm操作,请参考历史工程迁移。

1.4. build-profile.json5

  build-profile.json5:应用级配置信息,包括签名、产品配置等。

1.5. hvigorfile.ts

  hvigorfile.ts:应用级编译构建任务脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/444070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图的单源最短路径问题

目录 一、简述 二、前置配置 三、迪杰斯特拉算法 四、改进的迪杰斯特拉算法 五、贝尔曼福特算法 一、简述 图是一种比较常用的数据结构,将问题转换成图相关的思路也是比较常用的。 图的单源最短路径问题,也就是图中某一个节点到图中其他节点的最短路…

基于SSM的植物园管理系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 开发技术简介 3 1.1 SSM框架 3 1.2 JSON 3 1.3 Ajax 4 1.4 Bootstrap前台框架 4 1.5 Eclipse 4 1.6 本章小结 4 2 系统分析 5 2.1可行性分析 5 2.1.1 技术可行性 5 2.1.2 经济可行性 5 2.1.3 操作可行性 5 2.2 功能需求 5 2.3 用例分析 6…

洞悉 Kubernetes 高阶奥秘:掌控资源、网络、存储,玩转容器化应用!

昨天我们已经入门了K8S,今天带大家学习一下资源、网络、存储这几个进阶的知识点模块内容。这几天陆陆续续会把K8S从头到尾讲一遍,最后会带大家实战一下,下面就开始今天的学习吧。 高级资源和控制器 Kubernetes 提供了一系列高级资源和控制器…

请编程输出无向无权图各个顶点的度 ← 链式前向星存图

【题目描述】请利用链式前向星存图,编程输出无向无权图各个顶点的度。【输入样例】 5 6 1 3 2 1 1 4 2 3 3 4 5 1【输出样例】 4 2 3 2 1【算法分析】 本例需要用到基于链式前向星的广度优先搜索(BFS)。 链式前向星广度优先搜索(B…

JavaScript 实现飞机大战

文章目录 一些关键点概览:核心模块的具体实现示例:飞机类(Plane)的基本结构:子弹类(Bullet)的基本结构:敌机类(Enemy)的基本结构: 基于前面定义的…

Idea创建Maven项目

Maven安装配置步骤: 解压安装 bin目录 : 存放的是可执行命令。(mvn 命令重点关注) conf目录 :存放Maven的配置文件。(settings.xml配置文件后期需要修改) lib目录 :存放Maven依赖的j…

Python快速入门系列-2(Python的安装与环境设置)

第二章:Python的安装与环境设置 2.1 Python的下载与安装2.1.1 访问Python官网2.1.2 安装Python对于Windows用户对于macOS用户对于Linux用户 2.2 集成开发环境(IDE)的选择与设置2.2.1 PyCharm2.2.2 Visual Studio Code2.2.3 Jupyter Notebook2…

bat文件给多个Android设备安装apk

本文是安装一个apk 1、确保以下3个文件在同一个目录下 1>要安装的apk,这里是mmb.apk 2>设备名单,保存在.txt文件中,一行一个设备名,设备名通过adb devices获取,截图中是两个设备 txt文件中的样式 3>要运行…

基于springboot实现大学外卖管理系统项目【项目源码+论文说明】

基于springboot实现大学外卖管理系统演示 摘要 如今,信息化不断的高速发展,社会也跟着不断进步,现今的社会,各种工作都离不开信息化技术,更离不开电脑的管理。信息化技术也越来越渗透到各小型的企业和公司中&#xff…

AI 资讯 | GPT-4 时代终结!Claude 3 一举成为地表最强 AI 模型,今天就能用上!

AI 的飞速发展,对开发者而言意义重大。为此,我们精心筛选了最新 AI 相关资讯与大家分享交流。 未来,Apifox 也将时刻关注 AI 领域发展动态,及时呈现全面的 AI 资讯,与大家一起把握 AI 机遇。希望 在这些资讯中&#xf…

3.9Code

基于顺序存储结构的图书信息表的图书去重 #include<iostream> #include<stdlib.h> #include<string.h>typedef int status;#define OK 1using namespace std;typedef struct{char no[50];char name[50];float price; }Book;typedef struct{Book* elem;int …

J8 - Inception v1算法

目录 理论知识Inception卷积计算 模型结构模型实现inception 结构GoogLeNet模型打印模型结构 模型效果总结与心得体会 理论知识 GoogLeNet首次出现就在2014年的ILSVRC比赛中获得冠军&#xff0c;最初的版本为InceptionV1。共有22层深&#xff0c;参数量5M。 可以达到同时期VGG…

【C++进阶】哈希的应用 --- 布隆过滤器

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

申请公众号上限是多少

一般可以申请多少个公众号&#xff1f;公众号申请限额在过去几年内的经历了很多变化。对公众号申请限额进行调整是出于多种原因&#xff0c;确保公众号内容的质量和合规性。企业公众号的申请数量从50个到5个最后到2个&#xff0c;对于新媒体公司来说&#xff0c;这导致做不了公…

七、软考-系统架构设计师笔记-数据库设计基础知识

1、数据库基础概念 数据库基本概念 数据(Data)数据库(Database)数据库管理系统(DBMS)数据库系统(DBS) 1.数据(Data) 是数据库中存储的基本对象&#xff0c;是描述事物的符号记录。 数据的种类&#xff1a; 文本、图形、图像、音频、视频等。 2.数据库(Database, DB) 数据库…

【Python+Selenium学习系列5】Selenium特殊元素定位之-鼠标悬停操作

前言 Selenium模拟用户在浏览器中的操作&#xff0c;比如点击按钮。在某些场景下&#xff0c;我们需要模拟鼠标悬停的操作&#xff0c;来触发一些隐藏的元素。本文将介绍Python Selenium实现鼠标悬停操作。 鼠标悬停&#xff0c;即当光标与其名称表示的元素重叠时触发的事件&…

菜鸟笔记-14Python绘图颜色使用

Python中绘图主要依赖于各种库&#xff0c;其中matplotlib是最常用且功能强大的一个。在matplotlib中&#xff0c;你可以使用各种颜色来表示不同的数据点、线条或填充区域。下面我将详细介绍如何在Python中使用matplotlib来设置绘图颜色&#xff0c;并给出具体的例子。 14.1颜…

HTML5:七天学会基础动画网页10

继续介绍3D转换: 3D转换:rotate3d 方法与说明 rrotateX(angle)otate3d(x,y,z,angle[角度]) 3D转换&#xff0c;正常取值0/1&#xff0c;0代表当前轴线不进行旋转&#xff0c;1反之&#xff0c;例:rotate3d(1,1,1,30deg)&#xff0c;代表三个轴线都要旋转30度 rotate3d(0…

.text .data .bss .stack 和 heap

.text .data .bss .stack 和 heap 1.1 代码->可执行文件1.2 ELF可执行文件的结构1.3 内存区域1.4 各段在内存中的位置 1.1 代码->可执行文件 一个程序从代码到可执行文件的过程&#xff0c;包括 预处理、编译、汇编&#xff0c;链接。可执行文件有多重类型&#xff0c;有…

深入解读可视化运维的内容、领域、价值和系统搭建

大家好&#xff0c;我是贝格前端工场&#xff0c;接触过很多可视化运维项目&#xff0c;包括IT、电力、物流、生产制造等&#xff0c;本文系统总结一下可视化运维相关知识&#xff0c;老规矩别忘了关注转发&#xff0c;有事请私信。 一、可视化运维定义 可视化运维是指通过可视…