当前位置: 首页 > news >正文

Stage模型应用程序包结构

目录

官网地址 

官网结构图

 开发态包结构

 工程目录结构

  配置文件

module.json5配置文件

 app.json5配置文件


官网地址 

 官网地址 包结构

官网结构图

 开发态包结构

在DevEco Studio上创建一个项目工程,并尝试创建多个不同类型的Module(类似一个一个的页面块)

说明

  • AppScope目录由DevEco Studio自动生成,不可更改。
  • Module目录名称可以由DevEco Studio自动生成(比如entry、library等),也可以自定义。为了便于说明,下表中统一采用Module_name表示。

1

 工程目录结构

官网文档工程目录结构

  • AppScope > app.json5:应用的全局配置信息。
  •  entry:应用/服务模块,编译构建生成一个HAP。
    • src > main > ets:用于存放ArkTS源码。
    • src > main > ets > entryability:应用/服务的入口。
    • src > main > ets > pages:应用/服务包含的页面。
    • src > main > 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不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。

  • src > main > module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。具体请参考module.json5配置文件。
  • build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。

build-profile.json5文件分为工程级与模块级,其中buildOption在工程级文件和模块级文件均可配置,其中相同字段以模块级的字段为准,不同字段模块级的buildOption配置会继承工程级配置。

  • hvigorfile.ts:模块级编译构建任务脚本。
  • oh-package.json5:描述三方包的包名、版本、入口文件(类型声明文件)和依赖项等信息。

从OHPM 5.0.0版本开始,支持区分工程级与模块级oh-package.json5配置。其中:

  • 工程级oh-package.json5文件:位于工程根目录下,主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等,详情请见:工程级oh-package.json5 字段说明;
  • 模块级oh-package.json5文件:位于工程各个模块的根目录下,用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息,详情请见:模块级oh-package.json5 字段说明。

  • oh_modules:用于存放三方库依赖信息,包含应用/服务所依赖的第三方库文件。

  配置文件

包括应用级配置信息、以及Module级配置信息:

AppScope > app.json5:app.json5配置文件,用于声明应用的全局配置信息,比如应用Bundle名称、应用名称、应用图标、应用版本号等。

Module_name > src > main > module.json5:module.json5配置文件,用于声明Module基本信息、支持的设备类型、所含的组件信息、运行所需申请的权限等。

module.json5配置文件

官网地址module.json5配置文件

 具体看官网,这里只列出部分

属性名称含义数据类型是否可缺省
name

标识当前Module的名称,确保该名称在整个应用中唯一。取值为长度不超过31字节的字符串,不支持中文

应用升级时允许修改该名称,但需要应用适配Module相关数据目录的迁移,详见文件管理接口。

字符串该标签不可缺省。
type

标识当前Module的类型。支持的取值如下:

- entry:应用的主模块。

- feature:应用的动态特性模块。

- har:静态共享包模块。

- shared:动态共享包模块。

字符串该标签不可缺省。
description

标识当前Module的描述信息,取值为长度不超过255字节的字符串,可以采用字符串资源索引格式

例如;

"description": "$string:module_desc",
字符串该标签可缺省,缺省值为空。
mainElement标识当前Module的入口UIAbility名称或者ExtensionAbility名称,取值为长度不超过255字节的字符串。字符串该标签可缺省,缺省值为空。
deviceTypes标识当前Module可以运行在哪类设备上。字符串数组该标签不可缺省。
deliveryWithInstall

标识当前Module是否在用户主动安装的时候安装,即该Module对应的HAP是否跟随应用一起安装。

- true:主动安装时安装。

- false:主动安装时不安装。

布尔值该标签不可缺省。
installationFree

标识当前Module是否支持免安装特性。

- true:表示支持免安装特性,且符合免安装约束。

- false:表示不支持免安装特性。

说明:

当bundleType为元服务时,该字段需要配置为true。反之,该字段需要配置为false。

布尔值该标签不可缺省。
pages

标识当前Module的profile资源,用于列举每个页面信息,取值为长度不超过255字节的字符串。

例如

"pages": "$profile:main_pages",

// 通过profile下的资源文件配置

字符串在有UIAbility的场景下,该标签不可缺省。
requestPermissions

标识当前应用运行时需向系统申请的权限集合。

例如:网络权限

"requestPermissions": [{"name": "ohos.permission.INTERNET",
}],
对象数组该标签可缺省,缺省值为空。
abilities标识当前Module中UIAbility的配置信息,只对当前UIAbility生效。对象数组该标签可缺省,缺省值为空

 app.json5配置文件

官网地址app.json5配置文件icon-default.png?t=N7T8https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-configuration-file-V5

<HarmonyOS第一课>应用程序框架基础

课程视频 

 

 

 

 

 

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于SpringBoot的矩形范围面时空分析-以震中附近历史地震为例
  • ModuleNotFoundError: No module named ‘scrapy.utils.reqser‘
  • 20分钟上手新版Skywalking 9.x APM监控系统
  • 【工具】轻松转换JSON与Markdown表格——自制Obsidian插件
  • C#调用OpenCvSharp实现图像的角点检测
  • Leetcode—426. 将二叉搜索树转化为排序的双向链表【中等】Plus
  • 1394总线协议
  • Android Handler之消息同步屏障
  • Linux下如何安装配置Fail2ban防护工具
  • Postman中的数据驱动测试:API测试数据准备全攻略
  • HTML + CSS编程规范
  • MLIR的TOY教程学习笔记
  • wget下载github文件得到html文件
  • 2024年自动驾驶规划控制面试及答案
  • AI测试入门:认识AI大语言模型(LLM)
  • 10个最佳ES6特性 ES7与ES8的特性
  • Angular4 模板式表单用法以及验证
  • ECS应用管理最佳实践
  • es的写入过程
  • Flex布局到底解决了什么问题
  • gulp 教程
  • IDEA常用插件整理
  • Iterator 和 for...of 循环
  • java小心机(3)| 浅析finalize()
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • LeetCode18.四数之和 JavaScript
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • maya建模与骨骼动画快速实现人工鱼
  • node入门
  • Spring Boot快速入门(一):Hello Spring Boot
  • tensorflow学习笔记3——MNIST应用篇
  • windows下使用nginx调试简介
  • 基于组件的设计工作流与界面抽象
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 那些被忽略的 JavaScript 数组方法细节
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 嵌入式文件系统
  • 一、python与pycharm的安装
  • 智能网联汽车信息安全
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 容器镜像
  • ​2020 年大前端技术趋势解读
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $().each和$.each的区别
  • (2)(2.10) LTM telemetry
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (poj1.2.1)1970(筛选法模拟)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (多级缓存)多级缓存
  • (二)JAVA使用POI操作excel
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell