harmony 鸿蒙特性
特性
特性配置规则
下面介绍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"]
}
你可能感兴趣的鸿蒙文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦