鸿蒙OS 配置文件的核心元素

鸿蒙OS(HarmonyOS)的配置文件是应用开发中至关重要的部分,主要用于定义应用的权限、能力、资源路径等信息。配置文件通常以config.jsonmodule.json的形式存在,位于项目的resources目录下。

基本结构示例
{
  "app": {
    "bundleName": "com.example.myapp",
    "vendor": "example",
    "version": {
      "code": 1,
      "name": "1.0"
    }
  },
  "deviceConfig": {},
  "module": {
    "abilities": [],
    "js": [],
    "requestPermissions": []
  }
}


应用级配置(app字段)

定义应用的基础信息,包括包名、版本等关键元数据。

"app": {
  "bundleName": "com.example.iotapp",
  "vendor": "huawei",
  "version": {
    "code": 100,
    "name": "1.0.0"
  },
  "apiVersion": {
    "compatible": 4,
    "target": 5
  }
}

  • bundleName:应用唯一标识,需遵循反向域名规则。
  • version.code:内部版本号,用于升级判断。
  • apiVersion:声明兼容的API版本范围。

设备配置(deviceConfig字段)

声明应用支持的设备类型和能力要求。

"deviceConfig": {
  "default": {
    "process": "com.example.process",
    "directLaunch": false
  },
  "tv": {
    "minAPIVersion": 4
  },
  "wearable": {
    "minAPIVersion": 5
  }
}

  • 通过设备类型(如tvwearable)指定差异化配置。
  • directLaunch:控制是否允许直接启动。

模块配置(module字段)

核心部分,定义Ability、资源、权限等模块级配置。

Ability声明
"abilities": [
  {
    "name": ".MainAbility",
    "icon": "$media:icon",
    "label": "Main",
    "type": "page",
    "launchType": "standard",
    "backgroundModes": ["dataTransfer"]
  }
]

  • type:Ability类型(page表示UI界面,service为后台服务)。
  • backgroundModes:声明后台运行能力(如数据传输、音频播放)。
JS组件配置
"js": [
  {
    "name": "default",
    "pages": ["pages/index", "pages/detail"],
    "window": {
      "designWidth": 720,
      "autoDesignWidth": false
    }
  }
]

  • pages:列出所有JS页面的路由路径。
  • designWidth:设置UI设计基准宽度。

权限声明(requestPermissions字段)

声明应用需要的系统权限。

"requestPermissions": [
  {
    "name": "ohos.permission.INTERNET",
    "reason": "Required for network access",
    "usedScene": {
      "ability": [".MainAbility"],
      "when": "always"
    }
  }
]

  • usedScene:细化权限使用场景,增强安全性。
  • reason:需提供权限用途说明(上架审核必备)。

资源引用示例

配置文件中通过$符号引用资源:

{
  "abilities": [{
    "icon": "$media:app_icon",
    "label": "$string:main_ability_label"
  }]
}

  • $media:app_icon:指向resources/base/media中的图片。
  • $string:main_ability_label:引用resources/base/element/string.json中的字符串。

多模块配置

复杂项目可能包含多个HAP模块:

"module": {
  "name": "entry",
  "type": "entry",
  "distro": {
    "moduleType": "entry",
    "deliveryWithInstall": true
  }
}

  • moduleType:区分entry(主模块)和feature(功能模块)。
  • deliveryWithInstall:控制是否随主包安装。

最佳实践建议

  1. 权限最小化原则:仅声明必要的权限。
  2. 设备兼容性:明确声明deviceConfig避免安装冲突。
  3. 版本兼容:通过apiVersion确保向后兼容。
  4. 资源管理:使用资源引用代替硬编码。

完整配置文件示例可参考鸿蒙官方文档中的Profile定义规范

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐