database-datashare-overview.md 2.9 KB
Newer Older
S
songruirui 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
# 数据共享开发概述

## 数据共享简介

DataShare即数据共享模块用于应用管理其自身数据,也提供了向其他应用共享以及管理其数据的方法,目前仅支持同个设备上应用之间的数据共享。

在许多应用场景中都需要将我们程序中的数据共享给其他程序,例如电话簿、短信、媒体库等等,当然并不是所有的数据都是允许其他应用去访问的,例如账号、密码,有些数据只允许其他应用查询不允许其增删改,例如短信,这就要求我们要对访问者进行权限的检查和限制。

OpenHarmony提供的持久化存储方案如文件、分布式数据库,要么有隐私泄漏的风险,要么只能在当前应用中访问,要么需要开发者自己去封装,一个安全、便捷的可以跨设备跨应用的数据共享机制是必需的,DataShare便应运而生。

对于数据提供者来说,可以使用DataShare提供的框架轻松的实现向其他应用共享数据,而不需要自己进行繁琐的封装;对于数据访问方来说,因DataShare的访问方式不会因数据提供的方式而不同,所以只需要学习和使用一套接口,既减小了开发难度又节省了学习多种接口的时间。

## 基本概念


在进行应用的开发前,开发者应了解以下基本概念:


- 数据提供方

  提供数据及实现相关业务的应用程序,也称为生产者或服务端。

- 数据访问方

  访问数据提供方所提供的数据或业务的应用程序,也称为消费者或客户端。

- 数据集

  只用户要插入的数据集合,可以是一条或多条数据。数据集以键值对的形式存在,值支持多种数据类型。

- 结果集
  指用户查询之后的结果集合,可以对数据进行访问。结果集提供了灵活的数据访问方式,可以更方便的拿到用户想要的数据。

- 谓词
  描述筛选条件的集合。既可以是查询的条件也可以是删除的条件也可以是更新的条件。

## 运作机制

**图 1**  DataShare运作机制<a name="fig3330103712254"></a>


![](figures/zh-cn_DataShare.png)

DataShareExtAbility模块即为数据提供方,实现跨应用数据共享的相关业务。DataShareHelper模块为数据访问方提供操作DataShareExtAbility即数据提供方的接口。数据访问方与提供方通过IPC进行通信,数据提供方实现可以是数据库,也可以是其他数据存储方式。

ResultSet模块提供跨应用操作或访问查询出的结果集的接口,结果集使用共享内存实现。

## 约束与限制

**数据共享的约束与限制**

- DataShare受到数据提供方所使用数据库,例如支持的数据模型,Key的长度、Value的长度、每个应用程序最多支持同时打开数据库数量都受到数据库的限制。

- 因DataShare内部实现依赖于IPC通信,所以支持数据量的大小受到IPC通信的约束与限制。