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

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}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

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

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

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

相关文章

linux卸载mysql8重装5

目录 背景操作卸载重装配置启动 背景 在linux(阿里云ECS)安装部署Hive时初始化Hive元数据库,遇到报错前一天两三小时没解决,问题定位为mysql,次日打算重装 操作 卸载 停止 MySQL 服务 systemctl stop mysql yum卸载…

外包干了三个月,技术退步明显。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 先说一下自己的情况,普通本科,毕业后进入深圳某软件公司(其实…

websocket入门及应用

websocket When to use a HTTP call instead of a WebSocket (or HTTP 2.0) WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket 是双向通讯,有状态,客户端一(多)个与服务端一(多&#xff09…

成都爱尔蔡裕主任讲解飞蚊症严重吗?不然自测看看

先来看看你有没有以下症状: 眼前有一会有一会没有的小阴影; 会跟随看的方向飘动; 有些清楚有些模糊; 有时大,有些小; 有时突然变大变明显; 有时聚在一起; 有时如雨点般还伴随…

Windows计划任务执行日志和文件输出路径修改

在日常工作中,针对需重复执行的操作,通常都会使用系统的任务计划程序功能; 1、大家可以运行中,执行taskschd.msc来调用任务计划程序对话窗口,也可以在服务器管理的-工具菜单中-选择任务计划程序来调用对话窗口。 2、…

Rust-windows安装环境

文章目录 前言一、Using rustup (Recommended)二、配置vscode解决办法:在终端依次运行如下两条指令: 总结 前言 Rust学习系列,之前介绍了macOS环境下的rust安装方式macOS rust安装。这篇学习windows的rust安装方式。 提示:以下是…

win11家庭版安装Docker启动一直Starting the Docker Engine...

越多越多的应用通过Docker方式来运行,确实Docker方式运行也很方便,都是一个独立的运行环境,部署也很方便。于是决定安装下Docker试试,之前用Docker的时候还是win10,现在win11了。 安装倒是可以安装上,但是…

OpenCV开发笔记(七十五):相机标定矫正中使用remap重映射进行畸变矫正

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/136293833 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿…

【C语言基础】:操作符详解(二)

文章目录 操作符详解一、上期扩展二、单目操作符三、逗号表达式四、下标访问[]、 函数调用()五、结构成员访问操作符六、操作符的属性:优先级、结合性1. 优先级2. 结合性 操作符详解 上期回顾:【C语言基础】:操作符详解(一) 一、上期扩展 …

YOLO学习中的琐碎知识点

目录 一、导入的库 二、名词介绍 (1)pytorch张量 (2)边界框(bounding box) 三、pycharm操作 (1)参数设置 四、文件认识 五、YOLO如何训练自己的模型 一、导入的库 import to…

五.AV Foundation 视频播放 - 标题和字幕

引言 本篇博客主要介绍使用AV Foundation加载视频资源的时候,如何获取视频标题,获取字幕并让其显示到播放界面。 设置标题 资源标题的元数据内容,我们需要从资源的commonMetadata中获取,在加载AVPlayerItem的时候我们已经指定了…

vue2实现无感刷新token

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言: &#x1f4…

大概了解一下G1收集器

在上一篇文章中(链接:大概了解一下CMS收集器)我们提到,CMS是一种主要针对旧生代对象进行回收的收集器。与CMS不同,G1号称“全功能的垃圾收集器”,对初生代内存和旧生代内存均进行管理。鉴于此,这…

如何多环境切换?如何在微服务配置多环境?

问题本质: nacos配置中心的配置是如何被项目读取到的?(nacos的配置中心和项目是如何联系的?) 注意:nacos有配置管理和服务管理,别弄混。自动注册的是服务管理!!! 1. 如何注册到nacos服务管理中心…

如何使用视频号下载提取器提取视频,推荐2种方法使用!

视频号下载提取视频号视频,推荐大家2个方法​! 前者简单,后者较为复杂,不过都可以提取视频号视频,大家可根据实际情况来使用​。 视频号下载工具提取器​? 1:通过搜一搜的这款搜索引擎找到自己…

【前端素材】推荐优质后台管理系统Xmino Admin平台模板(附源码)

一、需求分析 后台管理系统通常是指一个用于管理网站、应用程序或系统的管理界面,通常由管理员使用。其功能和设计思路可以根据具体需求和系统复杂性有所不同,但一般包括以下几个方面的功能和设计考虑: 功能分析: 用户管理&…

vant安装教程(基于vue3)

1、先安装 npm i vant 如果不行安装这个 yarn add vant 2、在main.js中引入即可 import { createApp } from vue import App from ./App.vue import router from ./router import store from ./store import { Button } from vant; import vant/lib/index.css;createApp(App).…

qt-C++笔记之事件过滤器

qt-C笔记之事件过滤器 —— 杭州 2024-02-25 code review! 文章目录 qt-C笔记之事件过滤器一.使用事件过滤器和不使用事件过滤器对比1.1.使用事件过滤器1.2.不使用事件过滤器1.3.比较 二.Qt 中事件过滤器存在的意义三.为什么要重写QObject的eventFilter方法?使用QO…

土耳其商务团一行莅临优积科技考察交流

7月31日土耳其商务代表Emre Arif Parlak等一行三人莅临优积科技考察交流,公司CEO刘其东携团队成员热情接待并深入交流。 商务团首先参观了我司产品生产基地,详细了解了钢结构模块的生产加工工艺流程和质量控制体系。随后参观了我司模块化学校样板房、模块…

Jmeter系列(2)目录介绍

目录 Jmeter目录介绍bin目录docsextrasliblicensesprintable_docs Jmeter目录介绍 在学习Jmeter之前,需要先对工具的目录有些了解,也会方便后续的学习 bin目录 examplesCSV目录中有CSV样例jmeter.batwindow 启动文件jmeter.shMac/linux的启动文件jmete…