HarmonyOS 开发之应用/组件级配置

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

应用包名配置

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

图标和标签配置

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

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

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

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

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

图1 应用图标和标签

应用图标和标签配置

应用图标需要在工程的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标签。该标签用于声明需要申请权限的名称、申请权限的原因以及权限使用的场景。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ......

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ......

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ......

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题

2.性能优化方向

3.架构方向

4.鸿蒙开发系统底层方向

5.鸿蒙音视频开发方向

6.鸿蒙车载开发方向

7.鸿蒙南向开发方向

相关推荐
梦想不只是梦与想25 分钟前
鸿蒙与 H5 通信使用的方法及原理
harmonyos·鸿蒙·webview
坚果派·白晓明3 小时前
【鸿蒙PC三方库移植适配框架解读系列】第一篇:Lycium C/C++ 三方库适配 — 概述与环境配置
c语言·开发语言·c++·harmonyos·开源鸿蒙·三方库·c/c++三方库
小雨青年5 小时前
鸿蒙 HarmonyOS 6 | Pura X Max 鸿蒙原生适配 04:开合切换后的选中状态保持
华为·harmonyos
阿钱真强道5 小时前
22 鸿蒙LiteOS 互斥锁(Mutex)实战教程:多任务共享资源保护
harmonyos·鸿蒙·互斥·rk·liteos·瑞芯微·rk2206
大师兄66685 小时前
HarmonyOS 卡片 UI 三种玩法:普通卡片、动效卡片、Canvas 卡片
harmonyos·arkts·formkit·动效卡片·canvas卡片
特立独行的猫a10 小时前
鸿蒙 PC 命令行工具迁移实战 · 直播PPT
android·华为·harmonyos·vcpkg·三方库移植·鸿蒙pc
想你依然心痛10 小时前
HarmonyOS 6(API 23)实战:基于悬浮导航、沉浸光感与Face AR & Body AR的“灵犀智投“——PC端沉浸式AR量化交易分析工作台
华为·ar·harmonyos·悬浮导航·沉浸光感
特立独行的猫a10 小时前
鸿蒙 PC 三方库移植实战 · 直播课件(详细教案)
华为·harmonyos·移植·鸿蒙pc·opendesk
xmdy586612 小时前
Flutter+开源鸿蒙实战|企业级工具APP Day2 全局网络封装与 Dio 拦截器实战(鸿蒙兼容版)
flutter·开源·harmonyos
xmdy586612 小时前
Flutter+开源鸿蒙实战:企业级工具类APP开发教程(含第三方库适配)
flutter·开源·harmonyos