码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 鸿蒙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层的原理
    • 各种开发调试工具
    • 智能设备开发
    • 分布式开发等等。

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

  • 相关阅读:
    SpringBoot分离打Jar包的两种方式
    室内定位UWB在化工园区如何智能化管理
    使用MySqlBulkLoader批量插入数据
    Springboot+vue的医患档案管理系统。Javaee项目,springboot vue前后端分离项目。
    用VirtualBox打开VMware创建的虚拟机的方法
    js--promise、async 和 await 相关知识总结
    13、Mybatis框架-2
    申请400电话的详细步骤及操作指南
    MindSpore首发:诺亚NeurIPS 2020多篇轻量化技术端侧模型
    细胞穿膜肽MPG,Mpa-GALFLGFLGAAGSTMGA-OH
  • 原文地址:https://blog.csdn.net/m0_62167422/article/details/138674443
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号