• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 应用配置文件概述(FA模型)
2<!--Kit: Ability Kit-->
3<!--Subsystem: BundleManager-->
4<!--Owner: @wanghang904-->
5<!--Designer: @hanfeng6-->
6<!--Tester: @kongjing2-->
7<!--Adviser: @Brilliantry_Rui-->
8
9
10每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具、操作系统和应用市场提供描述应用的基本信息。
11
12
13应用配置文件需要声明以下内容:
14
15
16- 应用的软件Bundle名称,应用的开发厂商,版本号等应用的基本配置信息,这些信息被要求设置在app这个字段下。
17
18- 应用的组件的基本信息,包括所有的Ability,设备类型,组件的类型以及当前组件所使用的语法类型。
19
20- 应用在具体设备上的配置信息,这些信息会影响应用在设备上的具体功能。
21
22
23在FA模型的应用开发过程中,需要在config.json配置文件中对应用的包结构进行声明。
24
25
26## 配置文件的内部结构
27
28config.json由app、deviceConfig和module三个部分组成,缺一不可。
29
30| 属性名称 | 含义 | 数据类型 | 是否可缺省 |
31| -------- | -------- | -------- | -------- |
32| [app](app-structure.md) | 标识应用的全局配置信息。同一个应用的不同HAP的app配置必须保持一致。 | 对象 | 不可缺省。 |
33| [deviceConfig](deviceconfig-structure.md) | 标识应用在具体设备上的配置信息。 | 对象 | 不可缺省。 |
34| [module](module-structure.md) | 标识HAP的配置信息。该标签下的配置只对当前HAP生效。 | 对象 | 不可缺省。 |
35
36config.json示例:
37
38
39```json
40{
41  "app": {
42    "vendor": "example",
43    "bundleName": "com.example.demo",
44    "version": {
45      "code": 1000000,
46      "name": "1.0.0"
47    }
48  },
49  "deviceConfig": {
50  },
51  "module": {
52    "mainAbility": ".MainAbility_entry",
53    "deviceType": [
54      "tablet"
55    ],
56    "commonEvents": [
57      {
58        "name": ".EntryAbility",
59        "permission": "ohos.permission.GET_BUNDLE_INFO",
60        "data": [
61          "com.example.demo",
62          "100"
63        ],
64        "events": [
65          "install",
66          "update"
67        ]
68      }
69    ],
70    "abilities": [
71      {
72        "skills": [
73          {
74            "entities": [
75              "entity.system.home"
76            ],
77            "actions": [
78              "action.system.home"
79            ]
80          }
81        ],
82        "orientation": "unspecified",
83        "visible": true,
84        "srcPath": "MainAbility_entry",
85        "name": ".MainAbility_entry",
86        "srcLanguage": "ets",
87        "icon": "$media:icon",
88        // $string:MainAbility_entry_desc为资源索引
89        "description": "$string:MainAbility_entry_desc",
90        "formsEnabled": false,
91        // $string:MainAbility_entry_label为资源索引
92        "label": "$string:MainAbility_entry_label",
93        "type": "page",
94        "launchType": "multiton"
95      }
96    ],
97    "distro": {
98      "moduleType": "entry",
99      "installationFree": false,
100      "deliveryWithInstall": true,
101      "moduleName": "myapplication"
102    },
103    "package": "com.example.myapplication",
104    "srcPath": "",
105    "name": ".myapplication",
106    "js": [
107      {
108        "mode": {
109          "syntax": "ets",
110          "type": "pageAbility"
111        },
112        "pages": [
113          "pages/index"
114        ],
115        "name": ".MainAbility_entry",
116        "window": {
117          "designWidth": 720,
118          "autoDesignWidth": false
119        }
120      }
121    ]
122  }
123}
124```
125