鸿蒙module开发实践

devtools/2024/11/20 16:00:55/

模块化开发简介

鸿蒙是支持模块化开发的,使用模块开发可以有以下好处:

  • 应用功能多样化:一个应用通常包含多种功能。
  • 模块化管理:将不同功能按模块划分和管理,是一种好的设计方法。
  • 独立开发:每个功能模块可以作为一个独立的Module进行开发,包含源代码、资源文件、第三方库和配置文件等。
  • 独立编译:每个Module可以独立编译,实现特定功能。
  • 优势:这种模块化、松耦合的设计方式有助于应用的开发、维护和扩展。

新建流程:新建-模块-Choose Your Ability Template:

这里有四种模板可选择:

  • Ability类型的Module: 用于实现应用的功能和特性。每一个Ability类型的Module编译后,会生成一个以.hap为后缀的文件,我们称其为HAP(Harmony Ability Package)包。HAP包可以独立安装和运行,是应用安装的基本单位,一个应用中可以包含一个或多个HAP包,具体包含如下两种类型。
  • entry类型的Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成entry类型的HAP。每一个应用分发到同一类型的设备上的应用程序包,只能包含唯一一个entry类型的HAP。
    • 因此,当选择了entry类型的Module之后,在编译运行的时候,需要选择编译运行入口
  • feature类型的Module:应用的动态特性模块,编译后生成feature类型的HAP。一个应用中可以包含一个或多个feature类型的HAP,也可以不包含。
  • Native C++
  • Static Library : 静态共享库。编译后会生成一个以.har为后缀的文件,即静态共享包HAR(Harmony Archive)
    • 共享包类型:HAR
    • 编译和运行方式:HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。 注意:编译HAR时,建议开启混淆能力,保护代码资产。
    • 发布和引用方式:HAR除了支持应用内引用,还可以独立打包发布,供其他应用引用。
  • Shared Library: 动态共享库。编译后会生成一个以.hsp为后缀的文件,即动态共享包HSP(Harmony Shared Package)。
    • 共享包类型: HSP
    • 编译和运行方式:HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。
    • 发布和引用方式:HSP一般随应用进行打包,当前支持应用内和集成态HSP。应用内HSP只支持应用内引用,集成态HSP支持发布到ohpm私仓和跨应用引用。

选用Static Library

在Configure New Module界面中,设置新添加的模块信息,设置完成后,单击Finish完成创建。

  • Module name:新增模块的名称。
  • Device type:支持的设备类型。
  • Enable native:是否创建一个用于调用C++代码的模块。

可视化配置完之后,

在项目级的build-profile.json中,就会新增对该模块的引用

    {"name": "test","srcPath": "./features/test",}

http://www.ppmy.cn/devtools/135520.html

相关文章

Oracle 19c修改pga报ORA-00093、ORA-01078错进行分析处理

在同事修改Oracle数据库的pga时,出现了如下错误: 计划修改值: alter system set pga_aggregate_limit40G scopespfile sid*; alter system set pga_aggregate_target20G scopespfile sid*; SQL> shu immediate Database closed. Databa…

4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明

4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明 文章目录 4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明前言1. Ribbon 介绍1.1 LB(Load Balance 负载均衡) 2. Ribbon 原理2.2 Ribbon 机制 3. Spring Cloud Ribbon 实现负载均衡算法-应用实例4. 总结&#x…

3. langgraph中的react agent使用 (在react agent添加系统提示)

环境准备 确保你已经安装了以下库: langchainlangchain_openailanggraph 你可以使用以下命令进行安装: pip install langchain langchain_openai langgraph代码实现 1. 初始化模型 首先,我们需要初始化智谱AI的聊天模型。 from langch…

24-原生 JavaScript 操作 DOM:从创建元素到事件处理

笔记分享 在现代 Web 开发中,我们通常会使用各种框架和库(如 React、Vue.js)来简化 DOM 操作,但在某些情况下,理解和使用原生 JavaScript(也称为 Vanilla JS)操作 DOM 仍然是非常重要的技能。这…

SQL 之连接查询(左连接和右连接的区别)

在SQL中,连接查询用于将来自两个或多个表的数据组合起来。左连接(LEFT JOIN)和右连接(RIGHT JOIN)是连接查询的两种类型,它们在处理表之间的关系时有所不同。 左连接(LEFT JOIN) 左…

Dubbo源码解析-服务注册(五)

一、服务注册 当确定好了最终的服务配置后,Dubbo就会根据这些配置信息生成对应的服务URL,比如: dubbo://192.168.65.221:20880/org.apache.dubbo.springboot.demo.DemoService? applicationdubbo-springboot-demo-provider&timeout300…

深度学习中的mAP

在深度学习中,mAP是指平均精度均值(mean Average Precision),它是深度学习中评价模型好坏的一种指标(metric),特别是在目标检测中。 精确率和召回率的概念: (1).精确率(Precision):预测阳性结果中实际正确的比例(TP / …

【Java】Linux、Mac、Windows 安装 Oracle JDK

一、Linux 环境安装JDK 1、下载 根据实际需求,在 Oracle 官网 上下载某版本JDK(如 jdk-8u341-linux-x64.tar.gz),再通过文件传输工具(如 Finalshell、FileZilla 等)丢到服务器上。 2、安装 # 查看是否安…