harmony 鸿蒙特性

  • 2022-08-09
  • 浏览 (916)

特性

特性配置规则

下面介绍feature的声明、定义以及使用方法。

  • feature的声明

在部件的bundle.json文件中通过feature_list来声明部件的feature列表,每个feature都必须以”{部件名}“开头。示例如下:

  {
    "name": "@ohos/xxx",
    "component": {
      "name": "partName",
      "subsystem": "subsystemName",
      "features": [
        "{partName}_feature_A"
      ]
    }
  }
   features中可以为部件声明多个feature。
  • feature的定义

在部件内可通过以下方式定义feature的默认值:

  declare_args() {
    {partName}_feature_A = true
  }

该值是此部件的默认值,产品可以在部件列表中重载该feature的值。

feature需给部件内多个模块使用时,建议把feature定义在部件的全局gni文件中,各个模块的BUILD.gn中import该gni文件。

  • feature的使用

BUILD.gn文件中可通过以下方式进行根据feature决定部分代码或模块参与编译:

  if ({partName}_feature_A) {
      sources += [ "xxx.c" ]
  }
  
  # 某个特性引入的依赖,需要通过该feature进行隔离
  if ({partName}_feature_A) {
      deps += [ "xxx" ]
      external_deps += [ "xxx" ]
  }
  
  # bundle.json中不支持if判断,如果bundle.json中包含的sub_component需要被裁减,可以定义group进行裁减判断
  group("testGroup") {
    deps = []
    if ({partName}_feature_A) {
      deps += [ "xxx" ]
    }
  }

也可以通过以下方式为模块定义代码宏进行代码级差异化配置:

  if ({partName}_feature_A) {
      defines += ["FEATUREA_DEFINE"]
  }

你可能感兴趣的鸿蒙文章

harmony 鸿蒙子系统开发

harmony 鸿蒙AI框架开发指导

harmony 鸿蒙NNRt接入适配指导

harmony 鸿蒙应用特权配置指南

harmony 鸿蒙开发实例

harmony 鸿蒙搭建环境

harmony 鸿蒙开发指导

harmony 鸿蒙概述

harmony 鸿蒙ArkCompiler开发指导

harmony 鸿蒙窗口标题栏定制开发指导

0  赞