鸿蒙学习

鸿蒙学习之路(1)config.json 配置文件

2022-03-31  本文已影响0人  mevenlu

config.json 配置文件

app{}

"app": {
    "bundleName": "com.xxx.example",
    "vendor": "xxx",
    "version": {
    "code": 1,
    "name": "1.0.0"
    }
}
bundleName 【字符串 必填】

表示应用的包名,用于标识应用的唯一性。
包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。
包名通常采用反域名形式表示(例如,“com.example.myapplication”)。建议第一级为域名后缀“com”,第二级为厂商/个人名,第三级为应用名,也可以采用多级。
对于原子化服务,其包名必须以“.hmservice”结尾。
例如,“com.example.myapplication.hmservice”。
使用DevEco Studio创建原子化服务(Atomic Service)时,会自动添加“.hmservice”。

vendor 【字符串 非必填】

表示对应用开发厂商的描述。字符串长度不超过255字节

version 【版本信息】
smartWindowSize 【字符串 非必填】

该标签用于在悬浮窗场景下表示应用的模拟窗口的尺寸。
配置格式为“正整数*正整数”,单位为vp。
正整数取值范围为[200,2000]

smartWindowDeviceType 【字符串 非必填】

表示应用可以在哪些设备上使用模拟窗口打开。
取值为:

targetBundleList 【字符串 非必填】

表示允许以免安装方式拉起的其他HarmonyOS应用,
列表取值为每个HarmonyOS应用的bundleName,
多个bundleName之间用英文“,”区分,最多配置5个bundleName。
如果被拉起的应用不支持免安装方式,则拉起失败

deviceConfig{} 【非必传】

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

"deviceConfig": {
    "default": {
        "process": "com.example.application", 
        "supportBackup": false,
        "network": {
            "cleartextTraffic": true, 
            "securityConfig": {
                "domainSettings": {
                    "cleartextPermitted": true, 
                    "domains": [
                        {
                            "subdomains": true, 
                            "name": "example.ohos.com"
                        }
                    ]
                }
            }
        }
    }
}
process

表示应用或者Ability的进程名。
如果在deviceConfig标签下配置了process标签,
则该应用的所有Ability都运行在这个进程中。
如果在abilities标签下也为某个Ability配置了process标签,
则该Ability就运行在这个进程中

network 【非必传】

表示网络安全性配置。该标签允许应用通过配置文件的安全声明来自定义其网络安全,
无需修改应用代码

cleartextTraffic 【默认fasle】

表示是否允许应用使用明文网络流量(例如,明文HTTP)。

securityConfig 【非必传】

表示应用的网络安全配置信息

module{}

mainAbility

表示HAP包的入口ability名称。
该标签的值应配置为“module > abilities”中存在的Page类型ability的名称

package

表示HAP的包结构名称,在应用内应保证唯一性

name

表示HAP的类名。采用反向域名方式表示,
前缀需要与同级的package标签指定的包名一致,也可采用“.”开头的命名方式

description

表示HAP的描述信息。字符串长度不超过255字节

supportedModes

表示应用支持的运行模式。当前只定义了驾驶模式(drive)。
该标签仅适用于车机

deviceType

表示允许Ability运行的设备类型。系统预定义的设备类型包括:
phone(手机)、tablet(平板)、tv(智慧屏)、car(车机)、wearable(智能穿戴)、liteWearable(轻量级智能穿戴)等

distro{} 【必传】
deliveryWithInstall

表示当前HAP是否支持随应用安装。

moduleName

表示当前HAP的名称

moduleType

表示当前HAP的类型,包括两种类型:entry和feature。
另外,如果表示HAR类型,请设置为har

installationFree

表示当前HAP是否支持免安装特性。

metaData

表示HAP的元信息

"metaData": {
    "parameters" : [{
        "name" : "string",
        "type" : "Float",
        "description" : "$string:parameters_description"
    }],
    "results" : [{
        "name" : "string",
        "type" : "Float",
        "description" : "$string:results_description"
    }],
    "customizeData" : [{
        "name" : "string",
        "value" : "string",
        "extra" : "$string:customizeData_description"
    }]
}
abilities

表示当前模块内的所有Ability。采用对象数组格式,其中每个元素表示一个Ability对象

"abilities": [
    {
        "name": ".MainAbility",
        "description": "himusic main ability",
        "icon": "$media:ic_launcher",
        "label": "HiMusic",
        "launchType": "standard",
        "orientation": "unspecified",
        "permissions": [
        ], 
        "visible": true,
        "skills": [
            {
                "actions": [
                    "action.system.home"
                ],
                "entities": [
                    "entity.system.home"
                ]
            }
        ],
        "configChanges": [
            "locale", 
            "layout", 
            "fontSize", 
            "orientation"
        ], 
        "type": "page"
    },
    {
        "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",
        "backgroundModes": [
            "audioPlayback"
        ]
    },
    {
        "name": ".UserADataAbility",
        "type": "data",
        "uri": "dataability://com.huawei.hiworld.himusic.UserADataAbility",
        "visible": true
    }
]
name

Ability的名称,需在一个应用的范围内保证唯一

description

表示对Ability的描述。取值可以是描述性内容,也可以是对描述性内容的资源索引,以支持多语言

icon

表示Ability图标资源文件的索引。取值示例:$media:ability_icon。
如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,
entities取值中包含“entity.system.home”,
则该Ability的icon将同时作为应用的icon。如果存在多个符合条件的Ability,
则取位置靠前的Ability的icon作为应用的icon

label

表示Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。
如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,
entities取值中包含“entity.system.home”,
则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,
则取位置靠前的Ability的label作为应用的label

uri

表示Ability的统一资源标识符。格式为[scheme:][//authority][path][?query][#fragment]

launchType

表示Ability的启动模式,支持“standard”、“singleMission”和“singleton”三种模式:
standard:表示该Ability可以有多实例。“standard”模式适用于大多数应用场景。
singleMission:表示此Ability在每个任务栈中只能有一个实例。
singleton:表示该Ability在所有任务栈中仅可以有一个实例。
例如,具有全局唯一性的呼叫来电界面即采用“singleton”模式

visible

表示Ability是否可以被其他应用调用。

permissions 【权限】
skills [表示Ability能够接收的Intent的特征]
deviceCapability

表示Ability运行时要求设备具有的能力,采用字符串数组的格式表示

metaData

表示Ability的元信息。
调用Ability时调用参数的元信息,例如:参数个数和类型。
Ability执行完毕返回值的元信息,例如:返回值个数和类型

type

表示Ability的类型。取值范围如下:
page:表示基于Page模板开发的FA,用于提供与用户交互的能力。
service:表示基于Service模板开发的PA,用于提供后台运行任务的能力。
data:表示基于Data模板开发的PA,用于对外部提供统一的数据访问抽象。
CA:表示支持其他应用以窗口方式调起该Ability

orientation

表示该Ability的显示模式。该标签仅适用于page类型的Ability。取值范围如下:

backgroundModes

表示后台服务的类型,可以为一个服务配置多个后台服务类型。该标签仅适用于service类型的Ability。取值范围如下:

readPermission

表示读取Ability的数据所需的权限。该标签仅适用于data类型的Ability。取值为长度不超过255字节的字符串

writePermission

表示向Ability写数据所需的权限。该标签仅适用于data类型的Ability。取值为长度不超过255字节的字符串

configChanges

表示Ability关注的系统配置集合。当已关注的配置发生变更后,Ability会收到onConfigurationUpdated回调

mission

表示Ability指定的任务栈。该标签仅适用于page类型的Ability。默认情况下应用中所有Ability同属一个任务栈

targetAbility

表示当前Ability重用的目标Ability。该标签仅适用于page类型的Ability

multiUserShared

表示Ability是否支持多用户状态进行共享,该标签仅适用于data类型的Ability

supportPipMode

表示Ability是否支持用户进入PIP模式(用于在页面最上层悬浮小窗口,俗称“画中画”,常见于视频播放等场景)。该标签仅适用于page类型的Ability

formsEnabled

表示Ability是否支持卡片(forms)功能。该标签仅适用于page类型的Ability。

forms

表示服务卡片的属性。该标签仅当formsEnabled为“true”时,才能生效

resizeable

表示Ability是否支持多窗口特性

js

表示基于ArkUI框架开发的JS模块集合,其中的每个元素代表一个JS模块的信息

shortcuts

表示应用的快捷方式信息。采用对象数组格式,其中的每个元素表示一个快捷方式对象

defPermissions 【数组类型 非必传】

权限定义字段说明

reqPermissions 【数组类型 非必传】

表示应用运行时向系统申请的权限

[{
    "name": "ohos.permission.servicebus.ACCESS_SERVICE",
    "reason":"user_grant权限必填,否则不允许在应用市场上架",
    "usedScene": 
            {
                "ability": ["com.mycamera.Ability", "com.mycamera.AbilityBackground"],
                "when": "always"
            }
    // usedScene user_grant权限必填ability,可选填when
}]
colorMode

表示应用自身的颜色模式。

resizeable

表示应用是否支持多窗口特性

distroFilter

表示应用的分发规则。
该标签用于定义HAP包对应的细分设备规格的分发策略,以便在应用市场进行云端分发应用包时做精准匹配。
该标签可配置的分发策略维度包括API Version、屏幕形状、屏幕分辨率。在进行分发时,通过deviceType与这三个属性的匹配关系,唯一确定一个用于分发到对应设备的HAP

上一篇 下一篇

猜你喜欢

热点阅读