鸿蒙OS 应用配置文件

鸿蒙OS 应用配置文件简介

应用的每个 HAP 的根目录下都存在一个“config.json”配置文件,主要涵盖以下三个方面:

应用的全局配置信息,包含应用的包名、生产厂商、版本号等基本信息。
应用在具体设备上的配置信息。
HAP 包的配置信息,包含每个 Ability 必须定义的基本属性(如包名、类名、类型以及 Ability 提供的能力),以及应用访问系统或其他应用受保护部分所需的权限等。

文件约定

配置文件“config.json”采用 JSON 文件格式,由属性和值两部分构成:

属性
属性出现顺序不分先后,且每个属性最多只允许出现一次。


每个属性的值为 JSON 的基本数据类型(数值、字符串、布尔值、数组、对象或者 null 类型)。如果属性值需要引用资源文件,可参见资源文件。

鸿蒙OS 配置文件的元素

此部分提供“config.json”文件中所有属性的详细解释。

配置文件的内部结构

应用的配置文件“config.json”中由“app”、“deviceConfig”和“module”三个部分组成,缺一不可。配置文件的内部结构说明参见表1。

配置文件的内部结构说明
在这里插入图片描述

app对象的内部结构说明

在这里插入图片描述

app示例:

"app": {
    "bundleName": "com.huawei.hiworld.example", 
    "vendor": "huawei", 
    "version": {
        "code": 2, 
        "name": "2.0"
    }
    "apiVersion": {
        "compatible": 3, 
        "target": 3
    }
}

deviceConfig对象的内部结构

deviceConfig包含在具体设备上的应用配置信息,可以包含default、car、tv、wearable、liteWearable、smartVision等属性。default标签内的配置是适用于所有设备通用,其他设备类型如果有特殊的需求,则需要在该设备类型的标签下进行配置。

deviceConfig对象的内部结构说明

在这里插入图片描述

default/car/tv/wearable等对象的内部结构说明
在这里插入图片描述

network对象的内部结构说明
在这里插入图片描述

securityConfig对象的内部结构说明
在这里插入图片描述

**deviceConfig示例:**

 "deviceConfig": {
    "default": {
        "process": "com.huawei.hiworld.example", 
        "directLaunch": false, 
        "supportBackup": false,
        "network": {
            "usesCleartext": true, 
            "securityConfig": {
                "domainSettings": {
                    "cleartextPermitted": true, 
                    "domains": [
                        {
                            "subDomains": true, 
                            "name": "example.ohos.com"
                        }
                    ]
                }
            }
        }
    }
}

module对象的内部结构

在这里插入图片描述

module示例:

"module": {
    "package": "com.example.myapplication.entry", 
    "name": ".MyOHOSAbilityPackage", 
    "description": "$string:description_application", 
    "supportedModes": [
        "drive"
    ], 
    "deviceType": [
        "car"
    ], 
    "distro": {
        "deliveryWithInstall": true, 
        "moduleName": "ohos_entry", 
        "moduleType": "entry"
    }, 
    "abilities": [
        ...
    ], 
    "shortcuts": [
        ...
    ],
    "js": [
        ...
    ], 
    "reqPermissions": [
        ...
    ], 
    "defPermissions": [
        ...
    ]
}

distro 对象的内部结构说明

在这里插入图片描述

distro示例:

"distro": {
    "deliveryWithInstall": true, 
    "moduleName": "ohos_entry", 
    "moduleType": "entry"
} 

abilities对象的内部结构说明
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

abilities示例:

"abilities": [
    {
        "name": ".MainAbility", 
        "description": "$string:description_main_ability", 
        "icon": "$media:hiworld.png", 
        "label": "HiMusic", 
        "type": "page", 
        "formEnabled": false, 
        "launchType": "standard", 
        "orientation": "unspecified", 
        "permissions": [
        ], 
        "visible": false, 
        "skills": [
            {
                "actions": [
                    "action.system.home"
                ], 
                "entities": [
                    "entity.system.home"
                ]
            }
        ], 
        "configChanges": [
            "locale", 
            "layout", 
            "fontSize", 
            "orientation"
        ], 
        "directLaunch": false, 
        "process": "string", 
        "backgroundModes": [
            "dataTransfer", 
            "audioPlayback", 
            "audioRecording", 
            "pictureInPicture", 
            "voip", 
            "location", 
            "bluetoothInteraction", 
            "wifiInteraction", 
            "screenFetch"
        ], 
    }
]

skills对象的内部结构说明

在这里插入图片描述

skills示例:

"skills": [
    {
        "actions": [
            "action.system.home"
        ], 
        "entities": [
            "entity.system.home"
        ],
        "uris": [
            {
                 "scheme": "http",
                 "host": "www.xxx.com",
                 "port": "8080",
                 "path": "query/student/name",
                 "type": "text"
             }
         ]
    }
]

form对象的内部结构说明

在这里插入图片描述

form示例:

"form": {
    "formEntity": [
        "homeScreen", 
        "searchbox"
    ], 
    "minHeight": 100, 
    "maxHeight": 200, 
    "minWidth": 100, 
    "maxWidth": 200
}

js对象的内部结构说明

在这里插入图片描述

js示例:

"js": [
    {
        "name": "default", 
        "pages": [            
            "pages/index/index",
            "pages/detail/detail"
        ],         
        "window": {
            "designWidth": 750,
            "autoDesignWidth": false
        }
    }
]

在这里插入图片描述

示例:

"shortcuts": [
    {
        "shortcutId": "id",
        "label": "$string:shortcut",
        "intents": [
            {
                "targetBundle": "com.huawei.hiworld.himusic",
                "targetClass": "com.huawei.hiworld.himusic.entry.MainAbility"
            }
        ]
    }
]

鸿蒙OS 配置文件示例

以 JSON 文件为 config.json 的一个简单示例,该示例的应用声明为三个 Ability。
{
    "app": {
        "bundleName": "com.huawei.hiworld.himusic",
        "vendor": "huawei",
        "version": {
            "code": 2, 
            "name": "2.0"
        }
        "apiVersion": {
            "compatible": 3, 
            "target": 3
        }
    },
    "deviceConfig": {
        "default": {
        }
    },
    "module": {
        "package": "com.huawei.hiworld.himusic.entry",
        "name": ".MainApplication",
        "supportedModes": [
            "drive"
        ],
        "distro": {
            "moduleType": "entry",
            "deliveryWithInstall": true,
            "moduleName": "hap-car"
        },
        "deviceType": [
            "car"
        ],

 
        "abilities": [
            {
                "name": ".MainAbility",
                "description": "himusic main ability",
                "icon": "$media:ic_launcher",
                "label": "HiMusic",
                "launchType": "standard",
                "orientation": "unspecified",
                "visible": true,
                "skills": [
                    {
                        "actions": [
                            "action.system.home"
                        ],
                        "entities": [
                            "entity.system.home"
                        ]
                    }
                ],
                "type": "page",
                "formEnabled": false
            },
            {
                "name": ".PlayService",
                "description": "himusic play ability",
                "icon": "$media:ic_launcher",
                "label": "HiMusic",
                "launchType": "standard",
                "orientation": "unspecified",
                "visible": false,
                "skills": [
                    {
                        "actions": [
                            "action.play.music",
                            "action.stop.music"
                        ],
                        "entities": [
                            "entity.audio"
                        ]
                    }
                ],
                "type": "service",
                "formEnabled": false,
                "backgroundModes": [
                    "audioPlayback"
                ]
            },
            {
                "name": ".UserADataAbility",
                "type": "data",
                "uri": "dataability://com.huawei.hiworld.himusic.UserADataAbility",
                "visible": true
            }
        ],
        "reqPermissions": [{
                "name": "ohos.permission.DISTRIBUTED_DATASYNC",
                "reason": "",
                "usedScene": {
                    "ability": [
                        "com.huawei.hiworld.himusic.entry.MainAbility",
                        "com.huawei.hiworld.himusic.entry.PlayService"
                    ],
                    "when": "inuse"
                }
            }
        ]
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看山还是山,看水还是。

你的打赏是我最大鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值