关系型数据库—动态共享包开发

数据库 其他数据库
用静态共享包把数据库表操作抽出来,在Entry模块上引入使用,对的,这样也是可以达到分离,但如果有部分公共的资源和代码,只能在开发静态共享,并且打包到每个依赖的HAP里,这样导致包体积较大,且有重复多份公共资源和代码重复打包到应用中。

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

前言

当看到DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小这篇文章时,就马上想动手写一个Demo, 把平常工作写后端结构搬上来,从0开始写一个动态共享包Demo有点费时,于是在Codelabs看到一个关系型数据库(ArkTS) 的Sample,就想着在这基础上,把数据库表操作,抽到动态共享包模块,然后在Entry模块上引入使用,到这里可能有小伙伴有疑问?其实用静态共享包把数据库表操作抽出来,在Entry模块上引入使用,对的,这样也是可以达到分离,但如果有部分公共的资源和代码,只能在开发静态共享,并且打包到每个依赖的HAP里,这样导致包体积较大,且有重复多份公共资源和代码重复打包到应用中。如果使用动态共享,可以减少包体积,让多个HAP能够共享同一公共资源代码。应用内动态共享包指的是专门为某一应用开发的动态共享包,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。 应用内HSP跟随其宿主应用的APP包一起发布,与该宿主应用具有相同的包名和生命周期。下面先看看这个账目记录Demo的效果图:

关系型数据库-动态共享包开发-开源基础软件社区

知识点

关系型数据库

https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-data-relationalstore-0000001493744128-V3?catalogVersinotallow=V3。

开发及引用动态共享包

https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/hsp-0000001521396322-V3?catalogVersinotallow=V3。

项目结构图

关系型数据库-动态共享包开发-开源基础软件社区

动态共享包结构图

关系型数据库-动态共享包开发-开源基础软件社区

页面逻辑结构图

关系型数据库-动态共享包开发-开源基础软件社区

讲解

1、动态共享包创建、开发与导出

(1)创建动态共享包具体操作参考官方文档:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/hsp-0000001521396322-V3?catalogVersinotallow=V3.

(2)开发按照业务逻辑编写相应代码就行.

(3)导出业务接口,给其它地方引用使用,在Index.ets文件编写导出内容,如下:

export { AccountTable } from "./database/tables/AccountTable"
export { AccountData } from "./bean/AccountData"
export { AccountItem } from "./bean/AccountItem"
export { Logger } from "./utils/Logger"

(4)编译动态共享包,参考1.1官方文档链接,通过DevEco Studio菜单栏的Build > Make Module ${libraryName}进行编译构建,生成HSP。

2、Entry模块引入使用

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

{
  ...
  "dependencies": {
    "@ohos/db_library": "file:../DB_library"
  }
}

(2) 运行引用HSP的使用方模块,单击Run > Edit Configurations,选择Deploy Multi Hap标签页,勾选Deploy Multi Hap Packages,选择使用方模块(如entry)和HSP模块(如sharedlibrary),点击OK,单击Run > Run’模块名称’(如Run ‘entry’)或。DevEco Studio会启动应用/服务的编译构建,完成后应用/服务即可运行在本地真机或模拟器上.

关系型数据库-动态共享包开发-开源基础软件社区

总结

体验了一番动态共享包实例,感觉太爽了,不用把全部代码都写在Entry模块里,同时也节省了App的大小,目前应用内HSP指的是专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP使用,用于应用内部代码、资源的共享。 应用内HSP跟随其宿主应用的APP包一起发布,与该宿主应用具有相同的包名和生命周期。遗憾当前暂不支持跨应用共享包,还有引用动态共享包后,预览器不支持。

资料文件是源代码,感兴趣小伙伴可以下载来体验一下,约束与限制如下:

  1. 本示例仅支持标准系统上运行,支持设备:华为手机3.1系统或运行在DevEco Studio上的华为手机远程模拟器API9。
  2. 本示例为Stage模型,支持API version 9及以上版本SDK。
  3. 本示例需要使用DevEco Studio 3.1 Release及以上版本进行编译运行。

文章相关附件可以点击下面的原文链接前往下载:

 https://ost.51cto.com/resource/2739。

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

责任编辑:jianghua 来源: 51CTO 开源基础软件社区
相关推荐

2018-07-18 09:16:39

关系型非关系型数据库

2021-09-06 10:24:12

鸿蒙HarmonyOS应用

2017-03-17 14:44:04

关系型数据库原理

2010-12-10 10:17:21

关系型数据库

2022-06-13 08:30:01

数据库管理系统

2013-03-28 10:22:33

数据库关系型数据库数据库设计

2013-04-26 16:18:29

大数据全球技术峰会

2023-05-20 08:11:55

2021-01-26 13:31:48

数据库关系型数据库冗余

2022-07-27 08:32:01

数据库MySQL

2016-08-23 14:25:19

MySQL约束数据库

2021-07-28 14:40:57

鸿蒙HarmonyOS应用

2022-12-27 08:38:45

关系型数据库设计

2018-03-26 12:58:52

数据库OracleMySQL

2013-06-28 11:28:21

Facebook数据库大数据

2009-03-26 09:58:55

云计算关系型数据库关系数据库

2015-04-24 13:59:41

2022-05-31 07:58:49

TiDB数据库开源

2013-01-08 14:24:23

2017-01-04 16:18:05

非数据库NoSql关系型数据库
点赞
收藏

51CTO技术栈公众号