OpenHarmony—开发及引用动态共享包

对于企业大型应用开发,有部分公共的资源和代码,只能在开发态静态共享,并且打包到每个依赖的HAP里,这样导致包体积较大,且有重复多份公共资源和代码重复打包到应用中。

为了解决运行态状态无法共享,以及减少包体积,让多个HAP能够共享同一公共资源代码,DevEco Studio支持动态共享包HSP(Harmony Shared Package)。

应用内HSP指的是专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。 应用内HSP跟随其宿主应用的APP包一起发布,与该宿主应用具有相同的包名和生命周期。

当前暂不支持跨应用共享包。

使用约束

  • HSP及其使用方都必须是API 9及以上版本Stage模型。
  • HSP及其使用方都必须使用模块化编译模式。

开发动态共享包

创建HSP模块

1.通过如下两种方法,在工程中添加新的Module。

方法1:鼠标移到工程目录顶部,单击鼠标右键,选择New > Module,开始创建新的Module。方法2:选中工程目录中任意文件,然后在菜单栏选择File > New > Module,开始创建新的Module。

2.模板类型选择Shared Library,点击Next
OpenHarmony—开发及引用动态共享包_第1张图片
3.在Configure New Module界面中,设置新添加的模块信息,设置完成后,单击Finish完成创建。

  • Module name:新增模块的名称,如设置为sharedlibrary。
  • Language:开发语言。
  • Device type:支持的设备类型。
  • Enable native:是否创建一个用于调用C++代码的模块。

OpenHarmony—开发及引用动态共享包_第2张图片
创建完成后,会在工程目录中生成库模块及相关文件。OpenHarmony—开发及引用动态共享包_第3张图片

编译HSP模块

参考应用内HSP开发指导开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的Build > Make Module ${libraryName}进行编译构建,生成HSP。OpenHarmony—开发及引用动态共享包_第4张图片
打包HSP时,会同时默认打包出HAR,在模块下build目录下可以看到.har和.hsp。OpenHarmony—开发及引用动态共享包_第5张图片

引用动态共享包

在使用方模块中引用HSP

在使用方entry/feature模块的oh-package.json5文件中添加HSP模块引用,以引用名为sharedlibrary的HSP为例:

{
  ...
  "dependencies": {
    "sharedlibrary": "file:../sharedlibrary"
  }
}

添加引用后,dependencies字段内的片段将出现报错:
OpenHarmony—开发及引用动态共享包_第6张图片
2.将鼠标放置在报错处会出现提示,在提示框中点击Run 'ohpm install'。OpenHarmony—开发及引用动态共享包_第7张图片
HSP目录将映射到entry/feature的oh_modules目录下:OpenHarmony—开发及引用动态共享包_第8张图片
其他引用方法与引用HAR文件和资源一致。

说明
在HSP中,通过如$r(app.string.xxxx)的方式使用本模块resources目录下的资源。注意图片等资源需放置在resources/base下的目录。如果使用相对路径的方式,例如: 在HSP模块中使用Image("common/example.png"),实际上该Image组件访问的是HSP调用方(如entry)下的资源entry/src/main/ets/common/example.png。

运行引用HSP的使用方模块

1.连接本地真机或本地模拟器。

2.单击Run > Edit Configurations,选择Deploy Multi Hap标签页,勾选Deploy Multi Hap Packages,选择使用方模块(如entry)和HSP模块(如sharedlibrary),点击OK。
OpenHarmony—开发及引用动态共享包_第9张图片
1.单击Run > Run'模块名称'(如Run 'entry')或点击播放。

2.DevEco Studio会启动应用/服务的编译构建,完成后应用/服务即可运行在本地真机或模拟器上。

要想成为一名合格的鸿蒙高级开发工程师,以上知识点是必须要掌握的,除此之外,还需要掌握一些鸿蒙应用开发相关的一些技术

为了节省大家一些查找的时间,这边联合几位行业大佬,为大家准备了一份《鸿蒙全栈技术 实战项目驱动式教学》的学习导图,从入门到进阶再到南北向开发实战的一整套完整体系,想要学习了解更多鸿蒙开发的相关知识可以借鉴:《一小时快速认识HarmonyOS
OpenHarmony—开发及引用动态共享包_第10张图片
除了上面整理的思维导图以外,这里还特别整理的一份《鸿蒙 (Harmony OS)开发学习手册》给大家进行参考学习:

一、入门必看

1.应用开发导读(ArkTS)

2.……OpenHarmony—开发及引用动态共享包_第11张图片
二、HarmonyOS 概念

1.系统定义

2.技术架构

3.技术特性

4.系统安全

5........OpenHarmony—开发及引用动态共享包_第12张图片
三、如何快速入门?《鸿蒙HarmonyOS分布式项目实战

1.基本概念

2.构建第一个ArkTS应用

3.构建第一个JS应用

4.……OpenHarmony—开发及引用动态共享包_第13张图片
四、开发基础知识

1.用基础知识

2.配置文件

3.应用数据管理

4.应用安全管理

5.应用隐私保护

6.三方应用调用管控机制

7.资源分类与访问

8.学习ArkTS语言

9.……OpenHarmony—开发及引用动态共享包_第14张图片
五、基于ArkTS 开发

1.Ability开发

2.UI开发

3.公共事件与通知

4.窗口管理

5.媒体

6.安全

7.网络与链接

8.电话服务

9.数据管理

10.后台任务(Background Task)管理

11.设备管理

12.设备使用信息统计

13.DFX

14.国际化开发

15.折叠屏系列

16.……OpenHarmony—开发及引用动态共享包_第15张图片
更多了解更多鸿蒙开发的相关知识可以参考:《鸿蒙4.0源码开发架构分析pdf

你可能感兴趣的:(OpenHarmony—开发及引用动态共享包)