admin管理员组

文章数量:1585014

OpenHarmony应用开发之全局配置参数解析

    • 一、前言
    • 二、app 闭包
    • 三、deviceConfig闭包
    • 四、module 闭包
      • 1.package
      • 2.name
      • 3.mainAbility
      • 4.srcPath
      • 5. deviceType
      • 6. distroo
      • 7.abilities
      • 8.js
    • 五、总结

一、前言

一般的项目都有全局模块的配置,OpenHarmony系统的应用同样也有这样的一个模块config.json,类似安卓中的AndroidManifest.xml,作用是相似的,配置应用板块,带大家来进一步解析其中的参数,以下给出一般的结构,正文即将开始~~

{
    "app": {},
    "deviceConfig": {},
    "module": {}
}

二、app 闭包

"app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "version": {
        "code": 1000000,
        "name": "1.0.0"
    }
}

app这个闭包里面包含几个参数,接下来一一进行解析

  • bundleName

    这个就是包名的意思,一般情况下在本地的电脑上唯一即可

  • vendor

    这个参数一般是公司名等,如果需要上线的app最后不要用默认的example,这个名字需要自己提供,不然会提示这个包名不可用

  • version

    这个参数里面包含版本名,版本名字

三、deviceConfig闭包

"deviceConfig": {}

这个参数比较简单,可以默认不写,具体使用可以ctrl 然后鼠标单击名称即可进入详细注释界面,这里可以添加自己需要的参数,并且有解释说明

四、module 闭包

"module": {
    "package": "com.example.myapplication",
    "name": ".MyApplication",
    "mainAbility": ".MainAbility",
    "srcPath": "",
    "deviceType": [],
    "distro": {},
    "abilities": [],
    "js": []
}

这是module包的整体属性,当然属性还有详细的属性,这里分点进行解析

1.package

这个即包名的意思,可能你有点疑惑,上面不是也有一个包名吗?是的当我们的app没有其他module时这两个是一样的,当我们需要使用他人开发好的模块时,这时就有可能出现两个包名,当然以上面那个作为主包名

"package": "com.example.myapplication"

2.name

这里是包名的一个省略,即项目名,.即省略绝对路径,这里使用相对路径

"name": ".MyApplication"

3.mainAbility

主要的组件,这里和name是一样

 "mainAbility": ".MainAbility"

4.srcPath

资源的路径,默认为空即使用系统默认的资源储存路径,具体路径仍然可以ctrl + 鼠标单击进入详细页,这里就不赘述了

"srcPath": ""

5. deviceType

适用的设备,默认是phone,也可以根据自己的项目进行配置,这里是一个数组类型,可以配置多个同种类型的参数

"deviceType": [
      "phone"
]

6. distroo

这个主要配置安装属性,已经模块的名称和类型等

"distro": {
  "deliveryWithInstall": true,
  "moduleName": "entry",
  "moduleType": "entry",
  "installationFree": false
}

7.abilities

这里abilities需要注意的是,只能配置一个,这里为全局的缘故

"abilities": [
    {
        "skills": [
            {
                "entities": [
                    "entity.system.home"
                ],
                "actions": [
                    "action.system.home"
                ]
            }
        ],
        "orientation": "unspecified",
        "visible": true,
        "srcPath": "MainAbility",
        "name": ".MainAbility",
        "srcLanguage": "js",
        "icon": "$media:icon",
        "description": "$string:description_mainability",
        "formsEnabled": false,
        "label": "$string:entry_MainAbility",
        "type": "page",
        "launchType": "standard"
    }
],
  • skills

    这个属性即类似安卓中的intent,指定当前的ability能够接受的类型,用于各个界面之间的通信

  • orientation

    指定屏幕的状态,横屏竖屏等,不知道即随系统进行转换

  • visible

    指定当前ability是否可见

  • srcPath,name

    资源路径和其名字和上面一层里面的参数是类似的

  • srcLanguage

    源语言,即主要使用的语言,目前OpenHarmony只支持JS和eTS开发

  • icon

    即应用程序的图标

  • description

    此ability的描述

  • formsEnabled

    这个字段为布尔类型,用于配置此应用是否能够以卡片的形式进行运行

  • label

    即标题栏

  • type

    类型,这里为page即界面类型的

  • launchType

    启动类型,这里和安卓启动模式类型,具体配置,可以自行探索

8.js

这里主要简述了js逻辑控制方面的配置,也是比较简单的

"js": [
    {
        "pages": [
            "pages/index/index",
            "pages/second/second"
        ],
        "name": ".MainAbility",
        "window": {
            "designWidth": 720,
            "autoDesignWidth": false
        }
    }
]
  • pages

    这里主要是设置页面路径

  • name

    即名字

  • windows

    这个字段主要配置ability在具体界面显示的大小

五、总结

整体解析下来,应该对于OpenHarmony开发应用中的主配置文件config.json有了一定的了解,如果你有一定的安卓开发基础,这些对你而言应该很容易,下一篇见~~

本文标签: 全局参数OpenHarmony