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


     特性

    特性配置规则

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

    • feature的声明
    • 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

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

      1. {
      2. "name": "@ohos/xxx",
      3. "component": {
      4. "name": "partName",
      5. "subsystem": "subsystemName",
      6. "features": [
      7. "{partName}_feature_A"
      8. ]
      9. }
      10. }
       features中可以为部件声明多个feature。
    • feature的定义

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

      1. declare_args() {
      2. {partName}_feature_A = true
      3. }

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

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

    • feature的使用

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

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

    搜狗高速浏览器截图20240326151450.png


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

    1. if ({partName}_feature_A) {
    2. defines += ["FEATUREA_DEFINE"]
    3. }

    鸿蒙语言有TS、ArkTS等语法,那么除了这些基础知识之外,其核心技术点有那些呢?下面就用一张整理出的鸿蒙学习路线图表示:

    从上面的OpenHarmony技术梳理来看,鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少,下面推荐一些:完整内容可在头像页保存,或这qr23.cn/AKFP8k甲助力

    内容包含:《鸿蒙NEXT星河版开发学习文档》

    • ArkTS
    • 声明式ArkUI
    • 多媒体
    • 通信问题
    • 系统移植
    • 系统裁剪
    • FW层的原理
    • 各种开发调试工具
    • 智能设备开发
    • 分布式开发等等。

    这些就是对往后开发者的分享,希望大家多多点赞关注喔!

  • 相关阅读:
    NLP 类问题建模方案探索实践
    STM32的SPI口的DMA读写[原创www.cnblogs.com/helesheng]
    DOM系列之事件对象
    信钰证券:股票k线图中b和s是什么情况?一文带你了解!
    java爬虫
    NetCoreAPI操作Excel表格
    go泛型教程
    办鹿uniapp小程序(一)
    JavaScript单线程模型
    python爬虫学习第二十八天-------了解scrapy(二十八天)
  • 原文地址:https://blog.csdn.net/m0_62167422/article/details/138674443