特性
特性配置規則
下面介紹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" ] } } `HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
也可以通過以下方式為模塊定義代碼宏進行代碼級差異化配置:
if ({partName}_feature_A) {
defines += ["FEATUREA_DEFINE"]
}
審核編輯 黃宇
-
開發板
+關注
關注
25文章
5116瀏覽量
97932 -
鴻蒙
+關注
關注
57文章
2387瀏覽量
42962 -
OpenHarmony
+關注
關注
25文章
3744瀏覽量
16471
發布評論請先 登錄
相關推薦
評論