首页 > 其他分享 >鸿蒙开发:【Stage模型应用配置文件】

鸿蒙开发:【Stage模型应用配置文件】

时间:2024-06-14 22:30:15浏览次数:11  
标签:配置文件 鸿蒙 标签 配置 入口 json5 应用 Stage 图标

Stage模型应用配置文件

应用配置文件中包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,这些信息在编译构建、分发和运行解决分别提供给编译工具、应用市场和操作系统使用。

在基于Stage模型开发的应用项目代码下,都存在app.json5(一个)及module.json5(一个或多个)两种配置文件,常用配置项请参见[应用/组件级配置]。

应用/组件级配置

在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。

应用包名配置

应用需要在工程的AppScope目录下的[app.json5配置文件]中配置bundleName标签,该标签用于标识应用的唯一性。推荐采用反域名形式命名(如com.example.demo,建议第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。

图标和标签配置

图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应[app.json5配置文件]和[module.json5配置文件]中的icon和label标签。

应用图标和标签通常用于标识整个应用,可以在标识应用的界面使用该类型图标和标签。比如:

  • 设置应用中,需要展示应用列表时
  • 在隐私管理中,需要展示应用申请的权限时
  • 在状态栏显示通知消息时

入口图标和标签是应用安装完成后可以在设备桌面上显示出来的,如下图所示。入口图标是以[UIAbility]为粒度,支持同一个应用存在多个入口图标和入口标签,点击后进入对应的UIAbility界面。比如:

  • 桌面上需要显示图标时
  • 最近任务列表中显示时

图1 图标和标签

application-component-configuration-stage

应用图标和标签配置

应用图标需要在工程的AppScope目录下的[app.json5配置文件]中配置icon标签。应用图标需配置为图片的资源索引,配置完成后,该图片即为应用的图标。

应用标签需要在工程的AppScope模块下的[app.json5配置文件]中配置label标签。标识应用对用户显示的名称,需要配置为字符串资源的索引。

{
  "app": {
    "icon": "$media:app_icon",
    "label": "$string:app_name"
    ...
  }
}

入口图标和标签配置

入口图标和标签配置方式

Stage模型支持对组件配置入口图标和入口标签。入口图标和入口标签会显示在桌面上。

入口图标需要在[module.json5配置文件]中配置,在abilities标签下面有icon标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"ohos.want.action.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个图标,分别对应各自的UIAbility。

{
  "module": {
    ...
    "abilities": [
      {
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "ohos.want.action.home"
            ]
          }
        ],
      }
    ]
  }
}
入口图标和标签管控规则

系统对无图标应用实施严格管控,防止一些恶意应用故意配置无入口图标,导致用户找不到软件所在的位置,无法操作卸载应用,在一定程度上保证用户终端设备的安全。

如果应用确需隐藏入口图标,需要配置AllowAppDesktopIconHide应用特权。详细的入口图标及入口标签的显示规则如下。

  • HAP中包含UIAbility

    • 在module.json5配置文件的abilities标签中设置了入口图标

      • 该应用没有隐藏图标的特权

        • 系统将使用该UIAbility配置的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到该UIAbility首页。
        • 系统将使用该UIAbility配置的label作为入口标签,并显示在桌面上,如果没有配置label,系统将使用app.json5中的label作为入口标签,并显示在桌面上。
      • 该应用具有隐藏图标的特权

        • 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
    • 在module.json5配置文件的abilities标签中未设置入口图标

      • 该应用没有隐藏图标的特权

        • 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。
        • 系统将使用app.json5中的label作为入口标签,并显示在桌面上。
      • 该应用具有隐藏图标的特权

        • 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
  • HAP中不包含UIAbility

    • 该应用没有隐藏图标的特权

      • 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。
      • 系统将使用app.json5中的label作为入口标签,并显示在桌面上。
    • 该应用具有隐藏图标的特权

      • 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。

    图2 应用的详情页示意图

    应用的详情页例图

应用版本声明配置

应用版本声明需要在工程的AppScope目录下的[app.json5配置文件]中配置versionCode标签和versionName标签。versionCode用于标识应用的版本号,该标签值为32位非负整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。versionName标签标识版本号的文字描述。

Module支持的设备类型配置

Module支持的设备类型需要在[module.json5配置文件]中配置[deviceTypes标签],如果deviceTypes标签中添加了某种设备,则表明当前的Module支持在该设备上运行。

Module权限配置

Module访问系统或其他应用受保护部分所需的权限信息需要在[module.json5配置文件]中配置[requestPermissions标签]。该标签用于声明需要申请权限的名称、申请权限的原因以及权限使用的场景。

标签:配置文件,鸿蒙,标签,配置,入口,json5,应用,Stage,图标
From: https://blog.csdn.net/m0_70748845/article/details/139690787

相关文章

  • youcomplete的vimrc配置文件demo
    离开youcompleteme,vim的使用体验差很多。下面是vimrc文件中ycm相关配置demo。对于C/C++语言的语法补齐需要安装clangd.setnusetexpandtabsettabstop=4setshiftwidth=4setmouse=asetshell=bashsethlssetencoding=utf-8"YoucomPleteMe:语句补全插件",reftoh......
  • 如何快速开发一个鸿蒙原生app
    华为鸿蒙操作系统(HarmonyOS)自2.0版本正式上线以来,在短时间内就部署超过了2亿台设备,纵观全球操作系统的发展史,也是十分罕见的。与其他手机操作系统不同,HarmonyOS自诞生之日起,就是一款面向多设备、分布式的万物互联操作系统。“1+8+N”是HarmonyOS打造的全场景战略,其中,“1”是智能......
  • 【最新鸿蒙应开发】——HarmonyOS沙箱目录
    鸿蒙应用沙箱目录1.应用沙箱概念应用沙箱是一种以安全防护为目的的隔离机制,避免数据受到恶意路径穿越访问。在这种沙箱的保护机制下,应用可见的目录范围即为应用沙箱目录。对于每个应用,系统会在内部存储空间映射出一个专属的应用沙箱目录,它是(“应用文件目录与应用文件路径......
  • 【最新鸿蒙应用开发】——持久化的理解
    应用数据持久化1.概述应用数据持久化,是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象,存储介质上的数据形态可能是文本、数据库、二进制文件等。2.分类OpenHarmony标准系统支持典型的存储数据形态,包括用户首......
  • 【最新鸿蒙应用开发】——ArkWeb2——arkts与h5交互
    H5与端侧交互1.应用侧调用前端页面函数应用侧可以通过runJavaScript()方法调用前端页面的JavaScript相关函数。在下面的示例中,点击应用侧的“runJavaScript”按钮时,来触发前端页面的htmlTest()方法。前端页面代码。<!--index.html--><!DOCTYPEhtml><html><body>......
  • 鸿蒙构建中如何获取Jenkins传递的环境变量参数
    在鸿蒙(HarmonyOS)应用开发中,我们常常需要与Jenkins这样的持续集成工具集成,以便自动化构建和部署我们的应用。一个常见的需求是在构建过程中获取Jenkins传递的环境变量参数,并将这些参数应用到我们的源代码中。本文将详细介绍如何在鸿蒙构建过程中获取并使用Jenkins的环境变量......
  • 探索鸿蒙系统中的OffscreenCanvas并发线程绘制问题
    引言作为一名热衷于鸿蒙系统开发的工程师,我近期遇到了一个关于OffscreenCanvas组件在并发线程中绘制时崩溃的问题。这个问题不仅挑战了我的技术理解,也促使我深入探索鸿蒙系统的内部机制。在这篇文章中,我将分享我的发现和解决问题的过程。问题描述在开发过程中,我尝试使用O......
  • 【BUG】鸿蒙模拟器虚拟化问题的解决方案
    找的大佬的教程,有些区别记录在此,以备忘记:创建记事本文档.txt,键入以下代码:pushd"%~dp0"dir/b%SystemRoot%\servicing\Packages\*Hyper-V*.mum>hyper-v.txtfor/f%%iin('findstr/i.hyper-v.txt2^>nul')dodism/online/norestart/add-package:"%System......
  • mysql数据库修改配置文件后无法启动服务问题排查
    windowsserver 报错现象:本地计算机上的MySQL8.0服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。 MySQL服务无法启动。服务没有报告任何错误。 故障原因:经多方排查最终确认是配置文件存储编码错误导致服务无法初始化。处理过程:1、   本地环境检......
  • springboot打包将配置文件和jar分开
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0......