HarmonyOS之module.json5功能详解

module.json5 是 HarmonyOS 应用的模块级配置文件,用于定义模块的基本信息、设备适配规则、UIAbility/ExtensionAbility 配置、权限管理及性能优化策略。以下是其核心功能的模块化分类与配置说明。


一、🧩 模块基本信息

json 复制代码
{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility"
  }
}
  • name: 模块唯一标识符(如 entry),需符合命名规则(字母、数字、下划线,最大31字节)。
  • type: 模块类型(entry/feature/har/shared)。entry 模块必须包含 mainElementpages
  • description: 模块描述信息,支持多语言资源索引(如 $string:module_desc)。
  • mainElement: 指定模块的入口组件(如 EntryAbility)。

二、📱 设备适配与分发

json 复制代码
{
  "module": {
    "deviceTypes": ["phone", "tablet"],
    "deliveryWithInstall": true,
    "installationFree": false
  }
}
  • deviceTypes: 支持的设备类型(如 phonetablet),需覆盖目标设备,否则模块无法运行。
  • deliveryWithInstall: 是否随应用安装(true 随安装,false 动态下载)。
  • installationFree: 是否支持免安装(元服务必须设为 true)。

三、🎨 UIAbility 配置

json 复制代码
{
  "abilities": [
    {
      "name": "EntryAbility",
      "srcEntry": "./ets/entryability/EntryAbility.ts",
      "launchType": "singleton",
      "skills": [
        {
          "actions": ["ohos.want.action.home"],
          "entities": ["entity.system.home"]
        }
      ]
    }
  ]
}
  • name: UIAbility 唯一名称(如 EntryAbility)。
  • srcEntry: 入口代码路径(如 ./ets/entryability/EntryAbility.ts)。
  • launchType: 启动模式(singleton/multiton/standard)。
  • skills: 定义能接收的 Want 特征(Action、Entity、URI)。

四、🔧 ExtensionAbility 配置

json 复制代码
{
  "extensionAbilities": [
    {
      "name": "FormAbility",
      "srcEntry": "./form/FormAbility.ts",
      "type": "form",
      "metadata": [
        {
          "name": "ohos.extension.form",
          "resource": "$profile:form_config"
        }
      ]
    }
  ]
}
  • type: ExtensionAbility 类型(如 formworkScheduler)。
  • metadata: 自定义元信息(如服务卡片配置)。

五、🛡️ 权限与安全

json 复制代码
{
  "requestPermissions": [
    {
      "name": "ohos.permission.CAMERA",
      "reason": "$string:camera_permission_reason",
      "usedScene": {
        "abilities": ["EntryAbility"],
        "when": "inuse"
      }
    }
  ]
}
  • requestPermissions: 声明运行时权限及使用场景(如 CAMERA)。

六、⚡ 性能优化

json 复制代码
{
  "isolationMode": "nonisolationFirst",
  "compressNativeLibs": false,
  "extractNativeLibs": true
}
  • isolationMode: 多进程运行模式(如 nonisolationFirst)。
  • compressNativeLibs: 是否压缩 Native 库(false 表示不压缩)。
  • extractNativeLibs: 安装时是否解压 Native 库(true 表示解压)。

七、🌍 云端分发策略

json 复制代码
{
  "distributionFilter": {
    "screenDensity": {
      "policy": "exclude",
      "value": ["ldpi", "xldpi"]
    },
    "countryCode": {
      "policy": "include",
      "value": ["CN"]
    }
  }
}
  • screenDensity: 按屏幕密度过滤分发(如排除 ldpi)。
  • countryCode: 按国家地区分发(如仅在中国分发)。

八、🖼️ 页面与窗口配置

json 复制代码
{
  "pages": "$profile:main_pages"
}
  • pages: 引用页面路由配置文件(如 main_pages.json)。
    • main_pages.json 示例

      json 复制代码
      {
        "src": [
          "pages/index/mainPage",
          "pages/second/payment"
        ],
        "window": {
          "designWidth": 720,
          "autoDesignWidth": false
        }
      }

九、📋 快捷方式与右键菜单

json 复制代码
{
  "fileContextMenu": "$profile:menu"
}
  • fileContextMenu: PC/2in1 设备的右键菜单配置(引用 menu.json)。
    • menu.json 示例

      json 复制代码
      {
        "fileContextMenu": [
          {
            "abilityName": "EntryAbility",
            "menuItem": "$string:open_with_app",
            "menuHandler": "openFile"
          }
        ]
      }

总结

功能模块 关键配置项 作用
🧩 模块基本信息 nametype 标识模块唯一性及类型。
📱 设备适配 deviceTypes 确保模块在目标设备上运行。
🛡️ 权限管理 requestPermissions 声明运行时权限及使用场景。
🖼️ 页面配置 pages 定义页面路由及窗口设计基准。
🌍 云端分发 distributionFilter 按设备特性精准分发。
⚡ 性能优化 isolationMode 控制多进程行为,提升性能。
相关推荐
anyup12 小时前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
Ranger092917 小时前
鸿蒙开发新范式:Gpui
rust·harmonyos
Huang兄17 小时前
鸿蒙-深色模式适配
harmonyos·arkts·arkui
SummerKaze3 天前
为鸿蒙开发者写一个 nvm:hmvm 的设计与实现
harmonyos
在人间耕耘4 天前
HarmonyOS Vision Kit 视觉AI实战:把官方 Demo 改造成一套能长期复用的组件库
人工智能·深度学习·harmonyos
王码码20354 天前
Flutter for OpenHarmony:socket_io_client 实时通信的事实标准(Node.js 后端的最佳拍档) 深度解析与鸿蒙适配指南
android·flutter·ui·华为·node.js·harmonyos
HarmonyOS_SDK4 天前
【FAQ】HarmonyOS SDK 闭源开放能力 — Ads Kit
harmonyos
Swift社区4 天前
如何利用 ArkUI 框架优化鸿蒙应用的渲染性能
华为·harmonyos
特立独行的猫a4 天前
uni-app x跨平台开发实战:开发鸿蒙HarmonyOS影视票房榜组件完整实现过程
华为·uni-app·harmonyos·轮播图·uniapp-x
盐焗西兰花5 天前
鸿蒙学习实战之路-STG系列(5/11)-守护策略管理-添加与修改策略
服务器·学习·harmonyos