【HarmonyOS】鸿蒙开发之Stage模型-应用配置文件——第4.2章

news2025/2/22 14:58:51

Stage模型-应用配置文件

  • AppScope -> app.json5:应用的全局配置信息
  • entry:OpenHarmony工程模块,编译构建生成一个HAP
    • build:用于存放OpenHarmony编译生成的hap包
    • src -> main -> ets:用于存放ArkTS源码
    • src -> main -> ets > entryability:应用/服务的入口
    • src -> main -> ets > pages:应用/服务包含的页面
    • src -> main -> resources:用于存放项目的资源文件,如图片、音频等
    • src > main > module.json5:模块配置文件(局部)
    • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等
    • hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现
  • oh_modules:用于存放三方库依赖信息
  • build-profile.json5:应用级配置信息,包括签名signingConfigs、产品配置products等
  • hvigorfile.ts:应用级编译构建任务脚本

在这里插入图片描述

模块基础配置

{
  "module": {
  //模块名称(最大长度31个字节)
    "name": "entry",
    //模块类型。分别:- entry:应用的主模块。feature:应用的动态特性模块。
    "type": "entry",
    //模块描述。$string:module_desc对应:src/main/resources/element/string.json文件下的module_desc对象名
    "description": "$string:module_desc",
    //当前模块的入口名称。对应:
    "mainElement": "EntryAbility",
    //当前模块可以运行在哪类设备上
    //phone:手机 table:平板类  car:车机  wearable:手表  tv:智慧屏
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    //当前模块是否在用户主动安装的时候安装,表示该Module对应的HAP是否跟随应用一起安装
    "deliveryWithInstall": true,
    //标识当前Module是否支持免安装特性。
	//- true:表示支持免安装特性,且符合免安装约束。
	//
	//- false:表示不支持免安装特性。
	//- 当应用的entry类型Module的该字段配置为true时,该应用的feature类型的该字
    "installationFree": false,
    //当前模块的profile资源,用于列举每个页面信息.其实就是路由,点进去你会发现是你在此模块下配置跳转的路由信息(跟小程序配置路由一样的意思) 对应:src/main/resouces/base/profile
    "pages": "$profile:main_pages",
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ],
    "requestPermissions":[
      {
        "name": "ohos.permission.INTERNET",
        "usedScene": {
          "when": "always"
        }
      }
    ]
  }
}

在这里插入图片描述

module->pages标签

在这里插入图片描述
找到main_pages.json文件设置项目路由
在这里插入图片描述

module->abilities标签

"abilities": [
      {
      //abilities名称
        "name": "EntryAbility",
        //abilities路径
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        //abilities项目描述
        "description": "$string:EntryAbility_desc",
        //abilities项目图标
        "icon": "$media:icon",
        //启动模式 三种singleton(单实例),multiton(多实例),specified(指定实例)
        "launchType":"singleton",
        //abilities项目名称
        "label": "$string:EntryAbility_label",
        //项目窗口图标
        "startWindowIcon": "$media:icon",
        //项目进入后台时的图标
        "startWindowBackground": "$color:start_window_background",
        //标识当前UIAbility组件是否可以被其他应用调用。
		//- true:表示可以被其他应用调用。
		//- false:表示不可以被其他应用调用
		//注意如果是启动页 就是第一个页面如果是false是无法被调起的app 会报错
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ],
  • Skills
    • actions 表示调用方要执行的通用操作(如查看、分享、应用详情)。在隐式Want中,您可定义该字段,配合uri或parameters来表示对数据要执行的操作。如打开,查看该uri数据。例如,当uri为一段网址,action为ohos.want.action.viewData则表示匹配可查看该网址的Ability。在Want内声明action字段表示希望被调用方应用支持声明的操作。在被调用方应用配置文件skills字段内声明actions表示该应用支持声明操作。
    • entities 表示目标Ability的类别信息(如浏览器、视频播放器),在隐式Want中是对action的补充。在隐式Want中,开发者可定义该字段,来过滤匹配应用的类别,例如必须是浏览器。在Want内声明entities字段表示希望被调用方应用属于声明的类别。在被调用方应用配置文件skills字段内声明entites表示该应用支持的类别。
      在这里插入图片描述

module->extensionAbilities标签

ExtensionAbility组件是基于特定场景(例如服务卡片、输入法等)

{
  "extensionAbilities": [
    {
      "name": "TextName",
      "srcEntry": "./test.ts",
      "icon": "$media:icon",
      "label" : "$string:extension_name",
      "description": "$string:form_description",
      "type": "form", //标识当前ExtensionAbility组件的类型,取值为:- form:卡片的ExtensionAbility。
      "permissions": ["ohos.abilitydemo.permission.PROVIDER"],
      "exported": true,
      "uri":"scheme://authority/path/query",
      "skills": [{
        "actions": [],
        "entities": [],
        "uris": []
      }],
      "metadata": [
        {
          "name": "ohos.extension.form",
          "resource": "$profile:form_config", 
        }
      ]
    }
  ]
}

type 标识当前ExtensionAbility组件的类型
说明:其中service和dataShare类型,仅支持系统应用配置,三方应用配置不生效。
form:卡片的ExtensionAbility。
workScheduler:延时任务的ExtensionAbility。
inputMethod:输入法的ExtensionAbility。
service:后台运行的service组件。
accessibility:辅助能力的ExtensionAbility。
dataShare:数据共享的ExtensionAbility。
fileShare:文件共享的ExtensionAbility。
staticSubscriber:静态广播的ExtensionAbility。
wallpaper:壁纸的ExtensionAbility。
backup:数据备份的ExtensionAbility。
window:该ExtensionAbility会在启动过程中创建一个window,为开发者提供界面开发。开发者开发出来的界面将通过abilityComponent控件组合到其他应用的窗口中。
thumbnail:获取文件缩略图的ExtensionAbility,开发者可以对自定义文件类型的文件提供缩略。
preview:该ExtensionAbility会将文件解析后在一个窗口中显示,开发者可以通过将此窗口组合到其他应用窗口中。

module->requestPermissions标签

**项目需要开启网络请求授权时用到。**例如:图片请求第三方链接时,需要配置requestPermissions信息。

 "requestPermissions":[
      {
      //填写需要使用的权限名称
        "name": "ohos.permission.INTERNET",
   	  //可选,当申请的权限为user_grant权限时此字段必填。描述权限使用的场景由abilities和when组成。其中abilities可以配置为多个UIAbility组件,when表示调用时机。
	 //说明:- 默认为可选,当申请的权限为user_grant权限时,abilities标签必填,when标签可选。
        "usedScene": {
          "when": "always"
        }
      }
    ],

踩坑不易,还希望各位大佬支持一下 \textcolor{gray}{踩坑不易,还希望各位大佬支持一下} 踩坑不易,还希望各位大佬支持一下

📃 个人主页: \textcolor{green}{个人主页:} 个人主页: 沉默小管

📃 个人网站: \textcolor{green}{个人网站:} 个人网站: 沉默小管

📃 个人导航网站: \textcolor{green}{个人导航网站:} 个人导航网站: 沉默小管导航网

📃 我的开源项目: \textcolor{green}{我的开源项目:} 我的开源项目: vueCms.cn

🔥 技术交流 Q Q 群: 837051545 \textcolor{green}{技术交流QQ群:837051545} 技术交流QQ群:837051545

👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

如果有不懂可以留言,我看到了应该会回复
如有错误,请多多指教

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

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

相关文章

kubectl 命令行管理K8S(上)

目录 陈述式资源管理方式 介绍 命令 项目的生命周期 创建 kubectl create命令 发布 kubectl expose命令 更新 kubectl set 回滚 kubectl rollout 删除 kubectl delete 应用发布策略 金丝雀发布 陈述式资源管理方式 介绍 1.kubernetes 集群管理集群资源…

Magento2常见表的作用

1.sales_sequence_profile 更改订单号或者发票号的前缀及最大值

YOLOv6代码解读[01] readme解读

文章目录 模型指标安装训练单GPU多GPU断点续练评估推断部署教程模型指标

Python--界面UI控制,模拟键鼠操作的模块pyautogui(超详细用法)

一、简介 PyAutoGUI是一个Python 第三方库,需要pip install 安装 。它允许我们通过编程方式模拟鼠标和键盘的操作,窗口操作,以及界面的截图匹配。由于它是照搬人的操作,底层没有套牢在Windows系统,所以它可以跨平台。…

韩国突发:将批准比特币ETF

作者:秦晋 韩国两党宣布将批准比特币ETF。比特币也再次成为竞选的宠儿。 4月10日,韩国将迎来每隔4年而进行的一次立法大选。在大选之前,现执政党与反对党都承诺将批准比特币ETF。 我们知道,比特币的主要受众群体以年轻人居多。此前…

Vulnhub靶机网卡启动失败(Raise network interfaces)

完整版见个人博客:xzajyjs.cn 问题 使用一些Linux靶机进行搭建后可能会出现无法搜索到IP的情况,并且会在系统启动时报错,类似下图所示 这个主要是因为vulnhub上的镜像由于搭建环境、版本等问题不适配,网卡没有正确识别导致的&am…

数据结构-关键路径

介绍 在AOV网的基础上,如果用对应边来表示活动持续时间,这种有向图被称为AOE网在AOE网中,入度为0的为源点,出度为0的为汇点,整张网看做是一件事情完成的过程,那么这两个点就是事情的开始和结束。每个活动持…

【程序员怎样才能学好算法】《算法秘籍》给出答案

【文末送书】今天推荐一本优质算法书籍《算法秘籍》,这是一本关于数据结构和算法的书,以Java为描述语言,介绍了计算机编程中常用的数据结构和算法。全书共13章,讲述了常见的数据结构、排序算法、位运算、树、递归、回溯算法、贪心…

消息中间件篇之Kafka-数据清理机制

一、Kafka文件存储机制 Kafka文件存储结构:一个Topic有多个分区。每一个分区都有多个段,每个段都有三个文件。 为什么要分段?1. 删除无用文件方便,提高磁盘利用率。 2. 查找数据便捷。 二、数据清理机制 1.日志的清理策略方案1 根…

《TCP/IP详解 卷一》第7章 防火墙和NAT

7.1 引言 NAT通常改变源IP和源端口,不改变目的IP和目的端口。 7.2 防火墙 常用防火墙: 包过滤防火墙(packet-filter firewall) 代理防火墙(proxy firewall) 代理防火墙作用: 1. 通过代理服务…

【递归】【回溯】Leetcode 112. 路径总和 113. 路径总和 II

【递归】【回溯】Leetcode 112. 路径总和 113. 路径总和 II 112. 路径总和解法:递归 有递归就有回溯 记得return正确的返回上去 113. 路径总和 II解法 递归 如果需要搜索整棵二叉树,那么递归函数就不要返回值 如果要搜索其中一条符合条件的路径&#xff…

常见集合框架底层原理

常见集合框架底层原理 常见的集合有哪些 Java集合类主要由两个接口Collection和Map派生出来的,Collection有三个子接口: List、 Set、Queue List代表了有序可重复集合,可直接根据元素的索引来访问Set代表了无序集合,只能根据元素本身来访问…

nginx---------------重写功能 防盗链 反向代理 (五)

一、重写功能 rewrite Nginx服务器利用 ngx_http_rewrite_module 模块解析和处理rewrite请求,此功能依靠 PCRE(perl compatible regular expression),因此编译之前要安装PCRE库,rewrite是nginx服务器的重要功能之一,重写功能(…

UE4 材质多张图片拼接成一张图片(此处用2×2拼接)

UE4 材质多张图片拼接成一张图片&#xff08;此处用22拼接&#xff09; //TexCoord,TextureA,TextureB,TextureC,TextureDfloat3 ReturnTexture TextureA; if(TexCoord.x < 0.5 && TexCoord.y < 0.5) {ReturnTexture TextureA; } else if(TexCoord.x > 0.5…

企业微信主体怎么转让给别人?

企业微信变更主体有什么作用&#xff1f;当我们的企业因为各种原因需要注销或已经注销&#xff0c;或者运营变更等情况&#xff0c;企业微信无法继续使用原主体继续使用时&#xff0c;可以申请企业主体变更&#xff0c;变更为新的主体。企业微信变更主体的条件有哪些&#xff1…

yolov8学习笔记(三)添加注意力机制+源码简单了解

目录 一、前言 二、注意力机制添加 三、源码简单了解 1、YOLO类中的——私有Model类 2、在哪来初始化的网络模型 3、注释版下载 4、笔记下载 一、前言 因为我没有学过pytorch&#xff0c;所以看源码也是一头雾水&#xff0c;不过大概看懂的是yolo是对pytorch的再次封装&a…

八分钟了解一致性算法 -- Raft算法

八分钟了解一致性算法 – Raft算法 前言 分布式一致性 在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。 分布式一致性算法 比较常见的一致性算法包括Paxos算法,Raft算法,ZAB算法等 Paxos是Leslie Lamport提出的一种基于消息传递的分布式一致性算法。…

四、分类算法 - 决策树

目录 1、认识决策树 2、决策树分类原理详解 3、信息论基础 3.1 信息 3.2 信息的衡量 - 信息量 - 信息熵 3.3 决策树划分的依据 - 信息增益 3.4 案例 4、决策树API 5、案例&#xff1a;用决策树对鸢尾花进行分类 6、决策树可视化 7、总结 8、案例&#xff1a;泰坦尼…

STL常用容器(vector容器)---C++

STL常用容器目录 2.vector容器2.1 vector基本概念2.2 vector构造函数2.3 vector赋值操作2.4 vector容量和大小2.5 vector插入和删除2.6 vector数据存取2.7 vector互换容器2.7.1 vector互换容器收缩内存空间 2.8 vector预留空间 2.vector容器 2.1 vector基本概念 功能&#xf…

备战蓝桥杯---树形DP基础1

我们先来看几个比较简单的例子来引入&#xff1a; 我们令f[i]表示以i为根节点的子树大小&#xff0c;易得状态转移方程为&#xff1a; f[i]1f[son1]....f[soni]; 我们用DFS即可&#xff0c;下面是大致的模板&#xff1a; 让我们来看看几道题吧&#xff1a; 1.贪心树形DPDFS&…