#2023盲盒+码# OpenHarmony应用的各种配置文件 原创
【本文正在参加 2023「盲盒」+码有奖征文活动】,活动链接 https://ost.51cto.com/posts/25284
OpenHarmony应用的各种配置文件
应用配置文件
每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具、操作系统和应用市场提供应用的基本信息。
在基于Stage模型开发的应用项目代码下,都存在一个app.json5及一个或多个module.json5这两种配置文件。
- app.json5主要包含以下内容:
应用的全局配置信息,包含应用的Bundle名称、开发厂商、版本号等基本信息。
特定设备类型的配置信息。存在于工程根目录下的AppScope目录下。
示例如下:
{
"app": {
"bundleName": "com.example.aotdemo",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:app_icon",
"label": "$string:app_name"
}
}
- module.json5主要包含以下内容:
Module的基本配置信息,例如Module名称、类型、描述、支持的设备类型等基本信息。
应用组件信息,包含UIAbility组件和ExtensionAbility组件的描述信息。
应用运行过程中所需的权限信息。存在于模块根目录下;自动化测试程序也属于度量的模块,也有自己的模块配置文件,如:entry\src\ohosTest\module.json5。
示例如下:
{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"default",
"tablet"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
]
}
}
包管理配置文件oh-package.json5
对于各个模块,以及应用工程级都有一个包管理配置文件oh-package.json5,包含版本,描述,作者,开发依赖包,依赖包等信息。存在于模块根目录或工程根目录内,示例如下:
{
"license": "",
"devDependencies": {
"@ohos/hypium": "1.0.6"
},
"author": "",
"name": "aotdemo",
"description": "Please describe the basic information.",
"main": "",
"version": "1.0.0",
"dependencies": {}
}
构建配置文件build-profile.json5
类似包管理配置文件oh-package.json5,对于各个模块,以及应用工程级都有一个构建配置文件build-profile.json5,包含构建配置信息,如下示例:
{
"apiType": "stageMode",
"buildOption": {
"arkOptions": {
"aotCompileMode": "type"
// "apPath": "./entry.ap"
}
},
"targets": [
{
"name": "default",
"runtimeOS": "OpenHarmony"
},
{
"name": "ohosTest",
}
]
}
如何掌握这些配置文件
对于上述配置文件,除了默认的配置项,还有很多更丰富的配置项,并未出现在上述示例配置中。怎么获取所有的可配置信息?在DevEco Studio提供了对所有配置文件的JSON Schema校验功能,验证开发提供的配置项,还提供智能提示功能。开发者也可以自己阅读各种配置文件的JSON Schema文件,仔细查询支持哪些配置项,来满足自己的需求。
在studio里,打开配置文件,点击配置文件中的配置项,会打开对应的JSON Schema文件,进而查询支持的更丰富的配置项。
下面是一些配置文件的对应关系:
JSON | JSON Schema |
---|---|
AppScope/app.json5 | OpenHarmonySDK\10\toolchains\modulecheck\app.json |
entry\src\main\module.json5 | OpenHarmonySDK\10\toolchains\modulecheck\module.json |
entry\src\ohosTest\module.json5 | OpenHarmonySDK\10\toolchains\modulecheck\module.json |
entry\build-profile.json5 | @ohos\hvigor-ohos-plugin\res\schemas\ohos-module-build-profile-schema.json |
工程级build-profile.json5 | @ohos\hvigor-ohos-plugin\res\schemas\ohos-project-build-profile-schema.json |
entry\oh-package.json5 | ohpm\resources\schemas\oh-package-json5-schema.json |
工程级oh-package.json5 | ohpm\resources\schemas\oh-package-json5-schema.json |
注意:即使配置文件名一样,模块下的配置文件和工程级的配置文件的可配置项也是有差异的。需要仔细区分。