HarmonyOS Stage模型 应用配置文件讲解

好,上文 HarmonyOS Stage模型基本概念讲解 中,我们简单讲解了HarmonyOS 中 Stage模型的基本概念

那么 我们继续学习Stage模型的相关知识
上文之后 我们肯定对它的概念和基本结构 有了一个了解
那么 我们就来看一下 基于Stage模型 它里面一些基本的配置文件

首先 Stage 模型的配置文件 分为两类
第一类 属于真的整个应用的全局配置文件
就放在 我们如下图的这个 app.json5这里
在这里插入图片描述
第二类配置文件,就是在整个应用中的每一个模块里
我们每个模块里面都会有一个 module.json5
这就是 当前这个模块下的配置文件
在这里插入图片描述
然后 我们回到开发工具

首先 我们先打开这个 app.json5
在这里插入图片描述
这边 我们来说几个 基本的配置

bundleName
我记得之前我们将概念的文章好像说过,它其实就是个应用的唯一标识
也就是说,我们以后开发的所有应用 它都会有自己的唯一bundleName 这个属性的内容是不能和别人重复的
它的命名规范是一个 域名倒至的方式 就像我们这里这个 com.example.sediment
学习过java之类语言的可能会有点感觉,看着比较像一个包路径的名字 很多人也就叫它包名、
但它肯定不是一个包哦 它就是我们这应用的唯一标识。

其次 比较重要的应该就是 versionCode 和 versionName
version顾名思义 就是版本嘛。
只是
versionCode 是数字格式的版本
versionName 是一个版本号形式的版本
在这里插入图片描述
icon 顾名思义 就是我们应用的一个图标
label 则是我们应用的一个描述字符

我们 $media:app_icon
因为我们项目中 会有很多个模块
而这个是全局的配置 文件 指向的就是我们全局的 media 目录下的 app icon
在这里插入图片描述
这么一个图片
在这里插入图片描述
然后 我们这里 因为项目模块 暂时只有一个 entry
在这里插入图片描述
我们看到下面的 module.json5
在这里插入图片描述
这个配置的内容 相对就复杂很多了
我们还是挑重要的 讲一讲
requestPermissions 这个我们之前讲过 就是申请网络图片权限的
在这里插入图片描述
然后是 module 下的 name和type

name 就没什么好说的 就是这个模块的名称
type 模块的类型 上文 我们也说过 模块分为两种类型
Ability Module的能力模块
Library Module依赖工具模块

entry 属于 Ability Module 能力模块的类型 是入口模块的意思
Ability Module 还有一种 feature 就是功能模块

Library Module的模块 要写 shared
在这里插入图片描述
description 是当前模块的一个描述
它读的 我们下图指向的这个 string.json
在这里插入图片描述
mainElement 这个 可以理解为当前这个模块的入口 我们知道 将来每个模块编译后都是一个HAP模块
它在独立运行时 它会先创建一个应用的舞台 mainElement 就是这个入口的名字

这就对应我们这个程序的入口
在这里插入图片描述
deviceTypes 这个是设备的类型
我们一个项目 或者是 一个应用下 它可以有多个模块 每个模块将来就会被打包成 一个HAP文件
将来 我们就可以给不同的模块设置不同的设备类型
比如 我们 A模块 是给电脑用的 而 B模块是给手机用的

那么将来 A B两个模块的类型就不一样了

deliveryWithInstall 这个也比较重要
在这里插入图片描述
因为我们当前这个是个 entry 模块 应用的入口模块 是必须要安装的
但是 如果是个 feature 甚至 feature 模块

deliveryWithInstall 为true 则告诉程序 我这个模块 是必须安装的 你想用我的APP 你就必须安装这个模块
deliveryWithInstall 为false 则表示这个模块是可以不安装的

pages 是这个模块下包含的所有的page界面 它所有的 界面写的是 $profile
同样在这个模块下去找
就是 我们下图箭头所指向的这个模块
在这里插入图片描述
这里面就是我们定义的所有的模块了

最后就是我们的 abilities
它是个 对象数组 就是可以有多个配置的
在这里插入图片描述
name 自然就是它的名字
srcEntry 就是指你这个 abilities的源码在哪里
description 是这个abilities的描述 同样 读的也是 $string 当前模块的 string文件
icon 指向当前模块的 图标

然后 我们如下图目录 找到 这个 string.json
然后 点击如下图指向处 打开这个编辑器在这里插入图片描述
在这里改东西 就会直观很多
在这里插入图片描述
startWindowIcon 和 startWindowBackground 是整个模块启动时 展现的图标和背景颜色
在这里插入图片描述
skills 则是设置这个模块的一些功能
现在它这个 home 表示的是整个项目的入口的意思
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15-36V降压充电光伏MPPT充电方案

1.MPPT原理--简介 MPPT,全称为Maximum Power Point Tracking,即最大功点跟踪,它是一种通过调节电气模块的工作状态,使光伏板能够输出更多电能的电气系统能够将太阳能电池板发出的直流电有效地贮存在蓄电池中,可有效地…

视频推拉流EasyDSS视频直播点播平台授权出现激活码无效并报错400是什么原因?

视频推拉流EasyDSS视频直播点播平台集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务,在应用场景上,平台可以运用在互联网教育、在线课堂、游戏…

32.云原生Istio流量管理之官网Bookinfo应用实战演示

云原生专栏大纲 文章目录 流量管理基于版本的路由配置基于 Http header 的路由配置故障注入延迟故障注入异常故障注入故障注入测试 比例分配流量请求超时熔断什么是熔断创建 httpbin 服务创建访问者服务 流量管理 Istio 是服务治理的工具,Istio 的流量管理能力&am…

Django学习笔记-forms使用

1.创建forms.py文件,导入包 from django import forms from django.forms import fields from django.forms import widgets2. 创建EmployeeForm,继承forms.Form 3.创建testform.html文件 4.urls.py添加路由 5.views中导入forms 创建testform,编写代码 1).如果请求方式为GET,…

unity学习(38)——创建(create)角色脚本(panel)--EventSystem

1.在scripts文件夹下创建一个脚本CreatePlayerPanel.cs,脚本挂到panel上!给panel加个tag,叫createPanel,脚本内容如下: using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngin…

【区块链】联盟链

区块链中的联盟链 写在最前面**FAQs** 联盟链:区块链技术的新兴力量**联盟链的定义****联盟链的技术架构**共识机制智能合约加密技术身份认证 **联盟链的特点**高效性安全性可控性隐私保护 **联盟链的应用场景****金融服务****供应链管理****身份验证****跨境支付**…

【行业交流】优积科技·国住人居与广东保利就学校、居住场景下模块化建筑技术的运用进行交流

近日,保利发展控股集团股份有限公司(以下简称“保利发展”)、 优积建筑科技发展(上海)有限公司(以下简称“优积科技”)、国住人居工程顾问有限公司(以下简称“国住人居公司”)就模块化建造体系与…

目标检测卷王YOLO卷出新高度:YOLOv9问世

论文摘要:如今的深度学习方法重点关注如何设计最合适的目标函数,使得模型的预测结果能够最接近真实情况。 同时,必须设计一个适当的架构,可以帮助获取足够的信息进行预测。 现有方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。 本文将深…

品牌如何从用户需求出发实现价值增长?

品牌想要实现长效发展的秘诀就在于不盲从市场,忠于消费者需求。从用户出发的品牌价值创新,往往有两种方式:一是满足用户需求,二是创造用户价值。今天媒介盒子就来和大家聊聊:如何从用户需求出发实现品牌价值增长。 一、…

C++的queue容器->基本概念、常用接口

#include<iostream> using namespace std; #include <queue> #include <string> //队列 queue class Person { public: Person(string name, int age) { this->m_Name name; this->m_Age age; } string m_Name; int…

docker镜像和容器的关系

背景 镜像和容器都是docker中非常重要的概念&#xff0c;镜像是静态的&#xff0c;而容器是动态的&#xff0c;两者的关系就类似类和实例的关系&#xff0c;本文就来分析下两者的关联 镜像和容器 我们知道镜像是存放在仓库中的静态的文件&#xff0c;而容器是运行中的进程&a…

Flink ML 的新特性解析与应用

摘要&#xff1a;本文整理自阿里巴巴算法专家赵伟波&#xff0c;在 Flink Forward Asia 2023 AI特征工程专场的分享。本篇内容主要分为以下四部分&#xff1a; Flink ML 概况在线学习的设计与应用在线推理的设计与应用特征工程算法与应用 一、Flink ML 概况 Flink ML 是 Apache…

wordpress免费主题模板

免费大图wordpress主题 首页是一张大图的免费wordpress主题模板。简洁实用&#xff0c;易上手。 https://www.jianzhanpress.com/?p5857 wordpress免费模板 动态效果的wordpress免费模板&#xff0c;banner是动态图片效果&#xff0c;视觉效果不错。 https://www.jianzhan…

【深度学习】SSD 神经网络:彻底改变目标检测

一、说明 Single Shot MultiBox Detector &#xff08;SSD&#xff09; 是一项关键创新&#xff0c;尤其是在物体检测领域。在 SSD 出现之前&#xff0c;对象检测主要通过两阶段过程执行&#xff0c;首先识别感兴趣的区域&#xff0c;然后将这些区域分类为对象类别。这种方法虽…

RT-Thread 时钟 timer delay 相关

前言 此处,介绍对delay 时钟 timer 这几部分之间的关联和相关的知识点;本来只是想介绍一下 delay的,但是发现说到delay 不先 提到 先验知识 晶振\时钟\时钟节拍\定时器 好像没法解释透彻,所以就变成了 晶振\时钟\时钟节拍\定时器\delay 的很简单的概括一遍;并附带上能直接运行的…

反序列化 [NPUCTF2020]ReadlezPHP1

打开题目 直接查看源代码 打开源代码发现了个./time.php?source 访问一下 审计代码&#xff1a; 现存在反序列化语句&#xff1a;$ppp unserialize($_GET["data"]);和执行漏洞&#xff1a;echo $b($a); 发现在__destruct()方法里面有 echo $b($a); 这个是php的…

Stable Diffusion 模型分享:A-Zovya RPG Artist Tools(RPG 大师工具箱)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 A-Zovya RPG Artist Tools 模型是一个针对 RPG 训练的一个模型&#xff0c;可以生成一些 R…

基于springboot+vue的靓车汽车销售网站(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Shiro 1.2.4反序列化漏洞

一、shiro描述 Apache Shiro是一个强大且易用的Java安全框架&#xff0c;执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API&#xff0c;可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序 二、漏洞原理 AES加密的密钥Key被硬…

python递归算法

递归算法 一、嵌套调用的过程二、递归的基本原则1、递归的基本原则2、无限递归调用3、正常递归调用4、阶乘问题5、力扣&#xff1a;231. 2 的幂6、力扣面试题 08.05. 递归乘法7、力扣、326. 3 的幂8、力扣342. 4的幂 一、嵌套调用的过程 def show1():print("show 1 run s…