鸿蒙OS HAR 开发
HAR(Harmony Archive)是HarmonyOS应用开发中的静态共享包,它为开发者提供了一种高效的代码和资源共享机制。通过HAR,可以将常用的ArkUI组件、资源文件、C++库和配置文件等整合在一起,实现跨模块或工程的复用,有效避免代码冗余,显著提高开发效率。
一、创建HAR模块
- 创建HAR模块:打开DevEco Studio,创建一个新的HAR模块。
- 代码混淆:HAR模块默认不开启代码混淆。为了保护代码资产,建议开启混淆功能。在HAR模块的
build-profile.json5
文件中,将artifactType
字段设置为obfuscation
,并确保apiType
字段为stageMode
。
二、HAR开发注意事项
在HAR开发过程中,请注意以下要点,规避常见错误:
- 组件声明限制:HAR不支持声明
abilities
、extensionAbilities
组件和pages
页面。 - Worker配置限制:HAR不支持在
build-profile.json5
文件的buildOption
中配置worker
。 - 模型引用限制:FA模型与Stage模型的HAR不能相互引用。
- AppScope引用限制:Stage模型的HAR不能引用AppScope内的内容。
三、导出与引用
1、导出HAR内容:
- 使用
export
关键字导出ArkUI组件、ts类和方法、native方法等。 - 将所有需要导出的内容集中在
Index.ets
文件中进行声明。
2、引用HAR资源:
- 配置依赖:在使用HAR的模块中配置对HAR的依赖。
- 导入导出内容:使用
import
关键字导入HAR中导出的ArkUI组件、ts类和方法、native方法等。 - 引用资源文件:使用
$r
引用HAR中的资源文件,例如字符串、图片等。
四、资源管理
当不同模块下的资源文件出现重名冲突时,DevEco Studio会按照以下优先级进行覆盖(优先级从高到低):
- AppScope:仅API 9的Stage模型支持。
- HAP包自身模块:具有较高的资源覆盖优先级。
- 依赖的HAR模块:按照依赖顺序,优先级依次降低。
总结
HAR作为HarmonyOS的静态共享包,提供了一种有效的代码和资源共享解决方案。通过本指南的学习,你将能够掌握HAR的创建、开发、导出和引用方法,并能在实际项目中灵活运用HAR,以提升开发效率。