0b6bf8ac创建于 6月29日历史提交
文件最后提交记录最后更新时间
2 年前
2 年前
5 个月前
1 年前
2 年前
5 个月前
2 年前
3 个月前
2 年前
5 个月前
2 年前
README

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

相关权限

不涉及。

依赖

不涉及。

约束与限制

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