鸿蒙Stage模型配置文件解析

140 阅读1分钟

app.json5配置文件

{
  "app": {
    // 应用标识,必须
    "bundleName": "com.application.myapplication",
    // 可选,对应开发厂商的描述
    "vendor": "example",
    // 版本号
    "versionCode": 1000000,
    // 版本号的文字描述
    "versionName": "1.0.0",
    // 应用图标 - 系统设置中
    "icon": "$media:app_icon",
    // 应用名称 - 系统设置中
    "label": "$string:app_name",
    // 可选,应用描述信息
    "description": "$string:description_application",
    // 最低支持的api版本,由build-profile.json5中的compatibleSdkVersion生成。
    "minAPIVersion": 9,
    // 应用运行需要的api目标版本,由build-profile.json5中的compileSdkVersion生成。
    "targetAPIVersion": 9,
    // 可选,运行需要的api目标版本的类型,由ide生成并覆盖
    "apiReleaseType": "Release",
    // 可选,应用是否可调试
    "debug": false,
    // 可选是否支持多个工程的联合开发
    multiProjects: "false",
    // 可选,对car设备做的特殊配置,此外还有 phone wearable tv tablet 
    "car": {
      "minAPIVersion": 8,
    },
    // 可选,应用的Bundle类型,用于区分应用("app")或者原子化服务("atomicService")
    "bundleType": "app"
  },
}

module.json5配置文件

{
  "module": {
    // 模块名称
    "name": "entry",
    // 模块类型 包括:entry、feature、har、shared
    "type": "entry",
    // 可选,模块的描述信息 
    "description": "$string:module_desc",
    // 可选,模块入口Ability的名称
    "mainElement": "EntryAbility",
    // 该模块支持的设备类型
    "deviceTypes": [
      "tv",
      "tablet"
    ],
    // 该模块对应的hap是否跟随应用一起安装
    "deliveryWithInstall": true,
    // 当前模块是否支持免安装特性,当应用的entry类型的模块配置为true,时feature类型的字段也需要为true,如果entry模块配置为false,feature可以为true,也可以为false
    "installationFree": false,
    "pages": "$profile:main_pages",
    // 目标虚拟机类型,构建hap时自动导入
    "virtualMachine": "ark",
    // 当前模块的profile资源,列举pages页面
    "pages": "",
    // 可选,模块的自定义元信息,只对当前Module、UIAbility、ExtensionAbility生效
    "metadata": [
      {
        "name": "string",
        "value": "string",
        "resource": "$profile:distributionFilter_config"
      }
    ],
    // 可选,当前模块的进程名称,默认为app.json5中的bundleName
    "process": ""
    // 当前模块中ability的配置信息
    "abilities": [
      {
        // 当前UIAbility组件的名称
        "name": "EntryAbility",
        // 入口UIAbility的代码路径
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        // UIAbility组件的启动模式,
        // - multiton:多实例模式,每次启动创建一个新的实例。
        // - singleton:单实例模式,仅第一次启动创建新实例。
        // - specified:指定实例模式,运行时由开发者决定是否创建新实例。
        "launchType": ""
        // 当前UIAbility组件的描述信息
        "description": "$string:EntryAbility_desc",
        // 当前UIAbility组件的图标
        "icon": "$media:icon",
        // 当前UIAbility组件对用户显示的名称
        "label": "$string:EntryAbility_label",
        // 当前UIAbility组件启动页面图标资源文件
        "startWindowIcon": "$media:icon",
        // 当其他应用访问该UIAbility时,需要申请相应的权限信息。
        "permissions": [],
        // 当前UIAbility组件的元信息
        "metadata": []
        //当前UIAbility组件启动页面背景颜色
        "startWindowBackground": "$color:start_window_background",
        // 当前UIAbility组件是否可以被其他应用调用。
        "exported": true,
        // 前UIAbility组件是否可以迁移,目前暂不支持
        "continuable": false,
        // 当前UIAbility组件的长时任务集合
        "backgroundModes": [],
        // 当前UIAbility组件销毁后是否从任务列表中移除任务
        "removeMissionAfterTerminate": false,
        // 当前UIAbility组件启动时的方向
        "orientation": "",
        // 当前UIAbility组件所支持的窗口模式
        "supportWindowMode": [],
        "maxWindowRatio": 0,
        "minWindowRatio": 0,
        "maxWindowWidth": 0,
        "minWindowWidth": 0,
        "maxWindowHeight": 0,
        "minWindowHeight": 0,
        "skills": [
          {
            "entities": [
              "entity.systemmaxWindowRatio
              // minWindowRatio
              // maxWindowWidth
              // minWindowWidth
              maxWindowHeight.home"
            ],
            "actions": [
              "ohos.want.action.home"
            ]
          }
        ]
      }
    ],
    // 可选,当前模块中ExtensionAbility的配置信息
    "extensionAbilities": []
    // 可选,当前Module用于支持对测试框架的配置。
    "testRunner": {},
    // 应用运行时需向系统申请的权限集合
    "requestPermissions": [
      {
        "name": "ohos.abilitydemo.permission.PROVIDER",
        "reason": "$string:reason",
        "usedScene": {
          "abilities": [
            "FormAbility"
          ],
          "when": "inuse"
        }
      }
    ]
  }
}