电子说
应用配置文件中包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,这些信息在编译构建、分发和运行解决分别提供给编译工具、应用市场和操作系统使用。
在基于FA模型开发的应用项目代码下,都存在一个config.json配置文件,常用配置项请参见[应用/组件级配置]。
开发者在开发应用时,需要配置应用的一些标签,例如应用的Bundle名称、图标等标识特征的属性。这一章节描述了开发者在开发应用时需要配置的一些关键标签。 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
应用包名需在config.json文件中app标签下配置bundleName字段,该字段用于指定应用的包名,需保证唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。包名通常采用反向域名形式表示(例如,"com.example.myapplication")。建议第一级为域名后缀"com",第二级为厂商/个人名,也可以采用多级。应用名称配置可以参考[app标签说明]。
图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签。
应用图标和标签通常用于标识整个应用,可以在标识应用的界面使用该类型图标和标签。比如:
入口图标和标签是应用安装完成后可以在设备桌面上显示出来的。入口图标是以Page类型的Ability为粒度,支持同一个应用存在多个入口图标和入口标签,点击后进入对应的Ability界面。比如:
FA模型不支持直接配置应用图标和标签,会以符合规则的PageAbility的图标和标签作为应用图标和标签。存在多个时,则取位置靠前的Ability的icon和label作为应用的icon和label。
FA模型的入口图标和标签是Page类型的Ability配置的icon和label。
PageAbility的图标和标签配置请参见[PageAbility组件配置]。需在config.json文件的abilities标签下做如下配置:
如果在该PageAbility的skills属性中,actions的取值包含 "action.system.home",entities取值中包含"entity.system.home",则该Ability的icon和label将同时作为应用的icon和label。如果存在多个符合条件的Ability,则取位置靠前的Ability的icon和label作为应用的icon和label。图标和标签配置可以参考[abilities标签说明]。
{
...
"module": {
...
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"formsEnabled": false,
"name": ".MainAbility",
"srcLanguage": "ets",
"srcPath": "MainAbility",
"icon": "$media:icon",
"description": "$string:MainAbility_desc",
"label": "$string:MainAbility_label",
"type": "page",
"visible": true,
"launchType": "singleton"
},
...
]
...
}
}
系统对无图标应用实施严格管控,防止一些恶意应用故意配置无入口图标,导致用户找不到软件所在的位置,无法操作卸载应用,在一定程度上保证用户终端设备的安全。
如果应用确需隐藏入口图标,需要配置AllowAppDesktopIconHide应用特权。详细的入口图标及入口标签的显示规则如下。
应用版本声明配置需在config.json中的app标签下配置version字段,以说明应用当前的版本号和版本名称以及应用能够兼容的最低历史版本号。
Module支持的设备类型需要在config.json文件中配置deviceType字段,如果deviceType标签中添加了某种设备,则表明当前的module支持在该设备上运行。
组件权限申请配置需在config.json中的module标签下配置reqPermissions字段。来声明需要申请权限的名称,申请权限的原因以及权限使用的场景。
每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具、操作系统和应用市场提供描述应用的基本信息。
应用配置文件需申明以下内容:
在FA模型的应用开发过程中,需要在config.json配置文件中对应用的包结构进行声明。
config.json由app、deviceConfig和module三个部分组成,缺一不可。
属性名称 | 含义 | 数据类型 | 是否可缺省 |
---|---|---|---|
[app] | 标识应用的全局配置信息。同一个应用的不同HAP的app配置必须保持一致。 | 对象 | 不可缺省。 |
[deviceConfig] | 标识应用在具体设备上的配置信息。 | 对象 | 不可缺省。 |
[module] | 标识HAP的配置信息。该标签下的配置只对当前HAP生效。 | 对象 | 不可缺省。HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿 |
config.json示例:
{
"app": {
"vendor": "example",
"bundleName": "com.example.demo",
"version": {
"code": 1000000,
"name": "1.0.0"
}
},
"deviceConfig": {
},
"module": {
"mainAbility": ".MainAbility_entry",
"deviceType": [
"tablet"
],
"commonEvents": [
{
"name": ".EntryAbility",
"permission": "ohos.permission.GET_BUNDLE_INFO",
"data": [
"com.example.demo",
"100"
],
"events": [
"install",
"update"
]
}
],
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility_entry",
"name": ".MainAbility_entry",
"srcLanguage": "ets",
"icon": "$media:icon",
// $string:MainAbility_entry_desc为资源索引
"description": "$string:MainAbility_entry_desc",
"formsEnabled": false,
// $string:MainAbility_entry_label为资源索引
"label": "$string:MainAbility_entry_label",
"type": "page",
"launchType": "multiton"
}
],
"distro": {
"moduleType": "entry",
"installationFree": false,
"deliveryWithInstall": true,
"moduleName": "myapplication"
},
"package": "com.example.myapplication",
"srcPath": "",
"name": ".myapplication",
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index"
],
"name": ".MainAbility_entry",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !