Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stage 模型 - 应用配置文件 #47

Open
cnwutianhao opened this issue May 14, 2024 · 0 comments
Open

Stage 模型 - 应用配置文件 #47

cnwutianhao opened this issue May 14, 2024 · 0 comments

Comments

@cnwutianhao
Copy link
Owner

如图所示:

Stage 模型应用配置文件主要有两类:

  • 全局配置文件。放在 AppScope 目录下,app.json5。用来配置应用全局的信息。
  • 模块配置文件,放在每个模块里,module.json5。用来配置模块的信息。

一、全局配置文件

示例:

{
  "app": {
    "bundleName": "com.tyhoo.ohos.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name"
  }
}
  1. bundleName

    • 应用的唯一标识(也叫包名)。
    • 命名格式:在 HarmonyOS 当中,要求使用域名倒置的方式去定义。
  2. versionCode、versionName

    • 版本。
    • versionCode 是数字格式的版本,versionName 是字符串格式的版本。
  3. icon

    • 应用图标。
    • 没有直接指定图片路径,而是使用 $ 符号的方式。读取的就是 /AppScope/resources/base/media 目录下的图片。
  4. label

    • 应用描述字符(也叫应用名称)。
    • 没有直接指定字符值,而是使用 $ 符号的方式。读取的就是 /AppScope/resources/base/element 目录下的 string.json。

二、模块配置文件

示例:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ],
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    "deliveryWithInstall": true,
    "installationFree": false,
    "pages": "$profile:main_pages",
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ts",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:icon",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:icon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      }
    ]
  }
}
  1. requestPermissions

    • 权限申请。
  2. name、type

    • 当前模块的名称和类型。
    • 模块分成两大类:Ability 和 Library。Ability 又分为 entry 和 feature。Library 又分为 shared。
  3. description

    • 当前模块的描述。
    • 使用 $string 去读取,读取的是 /当前模块/src/main/resources/base/element 目录下的 string.json。
  4. mainElement

    • 当前模块的入口。
    • 每个模块将来编译之后都是一个 HAP 文件,都是可以独立运行的。在独立运行时,先创建 AbilityStage(应用组件的舞台),在这个舞台上面创建一个 Ability。事实上,在一个模块的内部,可以创建多个 Ability。如果这个应用内部有多个 Ability,其实默认只能启动一个,默认启动的这个叫EntryAbility(入口 Ability),存放在 /当前模块/src/main/ets/entryability 目录下的 EntryAbility.ts。
  5. deviceTypes

    • 设备的类型。
    • 在一个项目下,一个应用内部,有多个模块,每个模块将来都可以打包成一个 HAP 文件,可以给不同的模块设置不同的设备类型。
  6. deliveryWithInstall

    • 是否支持安装。
    • 如果为 true,是要跟随整个 APP 一起安装的。
    • 如果为 false,可安装可不安装。
  7. pages

    • 当前这个模块包含的所有页面。
    • 使用 $profile 去读取,读取的是 /当前模块/src/main/resources/base/profile 目录下的 main_pages.json。
  8. abilities

    • 当前模块包含的所有 Ability。
    • 一个模块下可以创建多个 Ability,都需要在 abilities 中配置。

注:更详细的配置信息可以到 官方文档 - 应用配置文件概述(Stage模型)查看。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant