ArkUI 之 Stage 模型

Stage模型

Stage模型

应用配置文件

全局:AppScope–>app.json5

官方文档

1
2
3
4
5
6
7
8
9
10
11
{
"app": {
"bundleName": "com.itzyf.app",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:app_icon",
"label": "$string:app_name"
}
}

  • bundleName:包名,应用的唯一标识
  • versionCode/versionName 版本
  • icon:应用的图标
  • label:应用的名字
  • 读取的事AppScope下的resources下的资源

模块级:entry->main->module.json5

官方文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{
"module": {
/*标识当前Module的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用中要唯一,仅支持英文字符。不可缺省*/
"name": "entry",
/*标识当前Module的类型。类型有两种,分别:
-entry:应用的主模块。
-feature:应用的动态特性模块。

不可缺省
*/
"type": "entry",
/*标识当前Module所对应的代码路径,标签值为字符串(最长127字节)。 该标签值可缺省,缺省值为空*/
"srcEntry": "",
/*标识当前Module的描述信息,标签值是字符串类型(最长255字节)或对描述内容的字符串资源索引,可缺省,缺省值为空*/
"description": "$string:module_desc",
/*标识当前Module的入口UIAbility名称或者ExtensionAbility名称。标签最大长度为255。字符串,可缺省,缺省值为空*/
"mainElement": "EntryAbility",
/*标识当前Module可以运行在哪类设备上,标签值采用字符串数组的表示。字符串数组,不可缺省*/
"deviceTypes": [
"phone",
"tablet"
],
/*标识当前Module是否在用户主动安装的时候安装,表示该Module对应的HAP是否跟随应用一起安装。
-true:主动安装时安装。
-false:主动安装时不安装

布尔值,不可缺省
*/
"deliveryWithInstall": true,
/*标识当前Module是否支持免安装特性
-true:表示支持免安装特性,且符合免安装约束。
-false:表示不支持免安装特性

说明:
- 当应用的entry类型Module的该字段配置为true时,该应用的feature类型的该字段也需要配置为true。
-当应用的entry类型Module的该字段配置为false时,该应用的feature类型的该字段根据业务需求配置true或false

布尔值,不可缺省
*/
"installationFree": false,
/*标识当前Module的profile资源,用于列举每个页面信息。该标签最大长度为255个字节。
字符串,在有UIAbility的场景下,该标签不可缺省*/
"pages": "$profile:main_pages",
/*标识当前Module中UIAbility的配置信息,标签值为数组类型,只对当前UIAbility生效。 对象,可缺省,缺省值为空*/
"abilities": [
{
/*标识当前UIAbility组件的名称,该名称在整个应用要唯一,标签值采用字符串表示(最大长度127字节),仅支持英文字符。字符串,不可缺省*/
"name": "EntryAbility",
/*该标签标识入口UIAbility的代码路径,标签值为字符串(最长127字节)*/
"srcEntry": "./ets/entryability/EntryAbility.ts",
/*标识当前UIAbility组件的启动模式,可选标签值:
- multiton:多实例模式,每次启动创建一个新的实例。
-singleton:单实例模式,仅第一次启动创建新实例。
-specified:指定实例模式,运行时由开发者决定是否创建新实例。

字符串,可缺省,该标签缺省为 "singleton"。
*/
"launchType": "singleton",
/*标识当前UIAbility组件的描述信息,标签值是字符串类型(最长255字节)或对描述内容的资源索引。字符串,可缺省,缺省值为空*/
"description": "$string:EntryAbility_desc",
/*标识当前UIAbility组件的图标,标签值为图标资源文件的索引。字符串,该标签可缺省,缺省值为空。如果UIAbility被配置为MainElement,该标签必须配置*/
"icon": "$media:app_icon",
/*标识当前UIAbility组件*/
"label": "$string:EntryAbility_label",
/*标识当前UIAbility组件启动页面图标资源文件的索引。取值示例:$media:icon。该标签最大字节长度为255。字符串,不可缺省*/
"startWindowIcon": "$media:icon",
/*标识当前UIAbility组件启动页面背景颜色资源文件的索引。取值示例:$color:red。该标签最大字节长度为255。该标签最大字节长度 255。字符串,不可缺省。*/
"startWindowBackground": "$color:start_window_background",
/*标识当前UIAbility组件是否可以被其他应用调用。
-true:表示可以被其他应用调用。
-false:表示不可以被其他应用调用。

布尔值,缺省值为false*/
"exported": true,
/*标识当前UIAbility组件或ExtensionAbility组件能够接收的Want特征集,为数组格式。配置规则:
- 对于Entry类型的HAP,应用可以配置多个具有入口能力的skills标签(即配置了ohos.want.action.home 和 entity.system.home)。
- 对于Feature类型的HAP,只有应用可以配置具有入口能力的skills标签,服务不允许配置。

对象数组,可缺省,缺省值为空
*/
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
],
/*标识当前应用运行时需向系统申请的权限集合。对象,该标签可缺省,缺省值为空*/
'requestPermissions': [
{
"name": "ohos.permission.INTERNET",
"reason": "$string:dependency_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
}
]
}
}

ArkUI 之 Stage 模型
https://yifengtingyu.cn/2024/04/07/ArkUI之Stage模型/
作者
依风听雨
发布于
2024年4月7日
许可协议