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