全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

鸿蒙OpenHarmony开发板解析:【特性配置规则】

时间:2024-05-10 17:24

人气:

作者:admin

标签: 鸿蒙  开发板  OpenHarmony 

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

特性

特性配置规则

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

  • feature的声明

  • 开发前请熟悉鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]。
    在部件的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" ]
      }
    }
    
    `HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿`
    

搜狗高速浏览器截图20240326151450.png
也可以通过以下方式为模块定义代码宏进行代码级差异化配置:


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


审核编辑 黄宇