| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 5 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 5 个月前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 2 年前 | ||
| 5 个月前 | ||
| 2 年前 |
HAR
介绍
HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
效果预览
| 主页 | 导出ArkUI组件页面 | 导出ts类和方法页面 |
|---|---|---|
![]() |
![]() |
![]() |
| 导出native方法页面 | ||
![]() |
使用说明:
1.启动HarSample(静态共享包)应用,首页正常显示所引用HAR的ArkUI组件、ts类和方法、native方法、资源。
2.点击主页"引用HAR的ArkUI组件"按钮,正确引用HAR的ArkUI组件,跳转至HAR的MainPage页面,页面显示内容为:暂无内容。
3.点击主页"引用HAR的ts类和方法"按钮,正确引用HAR导出的ts类和方法,页面Hello World字段变更为func return: har func。
4.点击主页"引用HAR导出的native方法"按钮,正确引用HAR导出的native方法,页面Hello World字段变更为result: 3。
工程目录
entry/src/main/ets/
|---entryability
| └---EntryAbility.ts
|---logger
| └---Logger.ts // 日志工具
└---pages
|---Index.ets // 首页
└---IndexSec.ets // 引用HAR的ArkUI组件的页面
library
|---src
| └---main
| |---cpp
| | |---types
| | |---CMakeLists.txt
| | └---hello.cpp
| |---ets
| | |---components
| | | └---MyTitleBar.ets // ArkUI组件页面
| | └---utils
| | └---nativeTest.ts // native方法页面
| |---resources // 资源文件
| |---ts
| | └---tset.ts // ts类和方法页面
| └---module.json5
|---index.ets
└---oh-package.json5
具体实现
- 本示例为HarSample(静态共享包)应用,提供导出及引用HAR的ArkUI组件、接口、资源功能:
- 导出HAR的ArkUI组件、接口、资源
- Index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在Index.ets文件中导出。Index.ets文件是DevEco Studio默认自动生成的,用户也可以自定义,在模块的oh-package.json5文件中的main字段配置入口声明文件。源码链接:Index.ets,oh-package.json5
- HAR中MainPage.ets文件的ArkUI组件,源码链接:MainPage.ets
- HAR中test.ets文件的ts类和方法,源码链接:test.ets
- HAR中可以包含C++编写的so,so中的native方法,HAR通过import方式导出,nativeTest.ts文件导出liblibrary.so的加法接口add,链接: nativeTest.ts
- 引用HAR的ArkUI组件、接口、资源
- 在使用方中,引用HAR的ArkUI组件、接口、资源及 页面路由跳转,源码链接:Index.ets,IndexSec.ets
- 导出HAR的ArkUI组件、接口、资源
相关权限
不涉及。
依赖
不涉及。
约束与限制
1.本示例仅支持标准系统上运行,支持设备:RK3568。
2.本示例为Stage模型,支持API11版本SDK,SDK版本号(API Version 11 Canary1)。
3.本示例需要使用DevEco Studio版本号(3.1 Release)及以上版本才可编译运行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/BundleManagerDocsSample/HarSample/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master



