• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 应用/组件级配置
2
3在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。
4
5图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应[app.json5配置文件](../quick-start/app-configuration-file.md)和[module.json5配置文件](../quick-start/module-configuration-file.md)中的icon和label标签。
6
7应用图标和标签是在设置应用中使用,例如设置应用中的应用列表。入口图标是应用安装完成后在设备桌面上显示出来的,如下图所示。入口图标是以[UIAbility](uiability-overview.md)为粒度,支持同一个应用存在多个入口图标和入口标签,点击后进入对应的UIAbility界面。
8
9**图1** 应用图标和标签  
10![application-component-configuration-stage](figures/application-component-configuration-stage.png)
11
12
13- **应用包名配置**
14
15  应用需要在工程的AppScope目录下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置bundleName标签,该标签用于标识应用的唯一性。推荐采用反域名形式命名(如com.example.demo,建议第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。
16
17- **应用图标和标签配置**
18
19  Stage模型的应用需要配置应用图标和应用标签。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表,会显示出对应的图标和标签。
20
21  应用图标需要在工程的AppScope目录下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置icon标签。应用图标需配置为图片的资源索引,配置完成后,该图片即为应用的图标。
22
23  应用标签需要在工程的AppScope模块下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置label标签。标识应用对用户显示的名称,需要配置为字符串资源的索引。
24
25  ```json
26  {
27    "app": {
28      "icon": "$media:app_icon",
29      "label": "$string:app_name"
30      ...
31    }
32  }
33  ```
34
35- **入口图标和标签配置**
36
37    Stage模型支持对组件配置入口图标和入口标签。入口图标和入口标签会显示在桌面上。
38
39    入口图标需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置,在abilities标签下面有icon标签。例如希望在桌面上显示该UIAbility的图标,则需要在skills标签下面的entities中添加"entity.system.home"、actions中添加"ohos.want.action.home"。同一个应用有多个UIAbility配置上述字段时,桌面上会显示出多个图标,分别对应各自的UIAbility。
40
41  ```json
42  {
43    "module": {
44      ...
45      "abilities": [
46        {
47          // $开头的为资源值
48          "icon": "$media:icon",
49          "label": "$string:EntryAbility_label",
50          "skills": [
51            {
52              "entities": [
53                "entity.system.home"
54              ],
55              "actions": [
56                "ohos.want.action.home"
57              ]
58            }
59          ],
60        }
61      ]
62    }
63  }
64  ```
65  OpenHarmony系统对无图标应用严格管控,防止一些恶意应用故意配置无入口图标,导致用户找不到软件所在的位置,无法操作卸载应用,在一定程度上保证用户的手机安全。
66
67  如果应用确需隐藏入口图标,需要配置AllowAppDesktopIconHide应用特权,具体配置方式参考[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。详细的入口图标及入口标签的显示规则如下。
68
69  * HAP中包含UIAbility
70    * 在module.json5配置文件的abilities标签中设置了入口图标
71      * 该应用没有隐藏图标的特权
72        * 系统将使用该UIAbility配置的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到该UIAbility首页。
73        * 系统将使用该UIAbility配置的label作为入口标签,并显示在桌面上,如果没有配置label,系统将使用app.json5中的label作为入口标签,并显示在桌面上。
74      * 该应用具有隐藏图标的特权
75        * 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
76    * 在module.json5配置文件的abilities标签中未设置入口图标
77      * 该应用没有隐藏图标的特权
78        * 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。
79        * 系统将使用app.json5中的label作为入口标签,并显示在桌面上。
80      * 该应用具有隐藏图标的特权
81        * 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
82  * HAP中不包含UIAbility
83    * 该应用没有隐藏图标的特权
84      * 系统将使用app.json5中的icon作为入口图标,并显示在桌面上。用户点击该图标,页面跳转到应用管理中对应的应用详情页面,如下图所示。
85      * 系统将使用app.json5中的label作为入口标签,并显示在桌面上。
86    * 该应用具有隐藏图标的特权
87      * 桌面应用查询时不返回应用信息,不会在桌面上显示对应的入口图标和标签。
88
89  **图2** 应用的详情页示意图
90  ![应用的详情页例图](figures/application_details.jpg)
91
92- **应用版本声明配置**
93
94  应用版本声明需要在工程的AppScope目录下的[app.json5配置文件](../quick-start/app-configuration-file.md)中配置versionCode标签和versionName标签。versionCode用于标识应用的版本号,该标签值为32位非负整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。versionName标签标识版本号的文字描述。
95
96- **Module支持的设备类型配置**
97
98  Module支持的设备类型需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置deviceTypes标签,如果deviceTypes标签中添加了某种设备,则表明当前的Module支持在该设备上运行。
99
100- **Module权限配置**
101
102  Module访问系统或其他应用受保护部分所需的权限信息需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中配置requestPermission标签。该标签用于声明需要申请权限的名称、申请权限的原因以及权限使用的场景。
103