Name Date Size

..25-Oct-20244 KiB

AppScope/H25-Oct-20244 KiB

build-profile.json5H A D25-Oct-20241.2 KiB

entry/H25-Oct-20244 KiB

hvigor/H25-Oct-20244 KiB

hvigorfile.tsH A D25-Oct-2024159

hvigorwH A D25-Oct-20242.1 KiB

hvigorw.batH A D25-Oct-20242.1 KiB

library/H25-Oct-20244 KiB

oh-package.json5H A D25-Oct-2024868

ohosTest.mdH A D25-Oct-20241 KiB

README_zh.mdH A D25-Oct-20244 KiB

screenshots/H25-Oct-20244 KiB

README_zh.md

1# HAR
2
3### 介绍
4
5HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
6
7### 效果预览
8
9| 主页                               | 导出ArkUI组件页面                        | 导出ts类和方法页面                           |
10|----------------------------------|-------------------------------------------|-------------------------------------------|
11| ![](screenshots/home.png) | ![](screenshots/arkui.png) | ![](screenshots/ts.png) |
12| **导出native方法页面** |                                   |                                |
13| ![](screenshots/native.png) |  |  |
14
15使用说明:
16
171.启动HarSample(静态共享包)应用,首页正常显示所引用HAR的ArkUI组件、ts类和方法、native方法、资源。
18
192.点击主页"引用HAR的ArkUI组件"按钮,正确引用HAR的ArkUI组件,跳转至HAR的MainPage页面,页面显示内容为:暂无内容。
20
213.点击主页"引用HAR的ts类和方法"按钮,正确引用HAR导出的ts类和方法,页面Hello World字段变更为func return: har func。
22
234.点击主页"引用HAR导出的native方法"按钮,正确引用HAR导出的native方法,页面Hello World字段变更为result: 3。
24
25### 工程目录
26```
27entry/src/main/ets/                 
28|---entryability
29|   └---EntryAbility.ts                   
30|---logger
31|   └---Logger.ts                      // 日志工具
32└---pages
33    |---Index.ets                      // 首页
34---IndexSec.ets				   // 引用HAR的ArkUI组件的页面
35library
36|---src
37|   └---main
38|       |---cpp
39|       |   |---types
40|       |   |---CMakeLists.txt
41|       |   └---hello.cpp
42|       |---ets
43|       |   |---components
44|       |   |   └---MyTitleBar.ets		// ArkUI组件页面
45|       |   └---utils
46|       |       └---nativeTest.ts		// native方法页面
47|       |---resources				// 资源文件
48|       |---ts
49|       |   └---tset.ts				// ts类和方法页面
50|       └---module.json5
51|---index.ets
52---oh-package.json5
53```
54
55### 具体实现
56
57* 本示例为HarSample(静态共享包)应用,提供导出及引用HAR的ArkUI组件、接口、资源功能:
58  * 导出HAR的ArkUI组件、接口、资源
59    * Index.ets文件是HAR导出声明文件的入口,HAR需要导出的接口,统一在Index.ets文件中导出。Index.ets文件是DevEco Studio默认自动生成的,用户也可以自定义,在模块的oh-package.json5文件中的main字段配置入口声明文件。源码链接:[Index.ets](library/index.ets),[oh-package.json5](library/oh-package.json5)
60    * HAR中MainPage.ets文件的ArkUI组件,源码链接:[MainPage.ets](library/src/main/ets/components/mainpage/MainPage.ets)
61    * HAR中test.ets文件的ts类和方法,源码链接:[test.ets](library/src/main/ts/test.ets)
62    * HAR中可以包含C++编写的so,so中的native方法,HAR通过import方式导出,nativeTest.ts文件导出liblibrary.so的加法接口add,链接: [nativeTest.ts](library/src/main/ets/utils/nativeTest.ts)
63  * 引用HAR的ArkUI组件、接口、资源
64    * 在使用方中,引用HAR的ArkUI组件、接口、资源及 页面路由跳转,源码链接:[Index.ets](entry/src/main/ets/pages/Index.ets),[IndexSec.ets](entry/src/main/ets/pages/IndexSec.ets)
65
66
67### 相关权限
68
69不涉及。
70
71### 依赖
72
73不涉及。
74
75### 约束与限制
76
771.本示例仅支持标准系统上运行,支持设备:RK3568。
78
792.本示例为Stage模型,支持API11版本SDK,SDK版本号(API Version 11 Canary1)。
80
813.本示例需要使用DevEco Studio版本号(3.1 Release)及以上版本才可编译运行。
82
83### 下载
84
85如需单独下载本工程,执行如下命令:
86
87```
88git init
89git config core.sparsecheckout true
90echo code/DocsSample/BundleManagerDocsSample/HarSample/ > .git/info/sparse-checkout
91git remote add origin https://gitee.com/openharmony/applications_app_samples.git
92git pull origin master
93```
94