• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 同设备跨应用数据共享概述
2
3
4## 功能简介
5
6数据共享(DataShare) 提供了向其他应用共享以及管理其数据的方法,支持同个设备上不同应用之间的数据共享。
7
8在许多应用场景中都需要用到数据共享,比如将电话簿、短信、媒体库中的数据共享给其他应用等。当然,不是所有的数据都允许其他应用访问,比如帐号、密码等;有些数据也只允许其他应用查询而不允许其删改,比如短信等。所以对于各种数据共享场景,DataShare这样一个安全、便捷的可以跨应用的数据共享机制是十分必要的。
9
10## 基本概念
11
12在进行同设备跨应用数据共享开发前,先了解以下相关概念。
13
14- **数据提供方**:提供数据及实现相关业务的应用程序,也称为生产者或服务端。
15
16- **数据访问方**:访问数据提供方所提供的数据或业务的应用程序,也称为消费者或客户端。
17
18- **数据集**:用户要插入的数据集合,可以是一条或多条数据。数据集以键值对的形式存在,键为字符串类型,值支持数字、字符串、布尔值、无符号整型数组等多种数据类型。
19
20- **结果集**:用户查询之后的结果集合,其提供了灵活的数据访问方式,以便用户获取各项数据。
21
22- **谓词**:用户访问数据库中的数据所使用的筛选条件,经常被应用在更新数据、删除数据和查询数据等场景。
23
24## 具体实现
25
26数据提供方无需进行繁琐的封装,可直接使用DataShare向其他应用共享数据;对数据访问方来说,因DataShare的访问方式不会因数据提供的方式而不同,只需要学习和使用一套接口即可,大大减少了学习时间和开发难度。
27
28跨应用数据共享有两种方式:
29
30- **使用DataShareExtensionAbility实现数据共享**
31
32  这种方式通过在HAP中实现一个extension,在extension中可以实现回调,在访问方调用对应接口时,会自动拉起提供方对应的extension,并调用对应回调。
33
34  这种方式适用于跨应用数据访问时有业务的操作,不仅是对数据库的增删改查的情况。
35
36- **通过静默访问实现数据共享**
37
38  这种方式通过在HAP中配置数据库的访问规则,在访问方调用对应接口时,会自动通过系统服务读取HAP配置规则,按照规则返回数据,不会拉起数据提供方。
39
40  这种方式适用于跨应用数据访问仅为数据库的增删改查,没有特殊业务的情况。
41
42
43## 约束限制
44
45- DataShare受到数据提供方所使用数据库的一些限制。例如支持的数据模型、Key的长度、Value的长度、每个应用程序支持同时打开数据库的最大数量等,都会受到使用的数据库的限制。
46
47- 因DataShare内部实现依赖于IPC通信,所以数据集、谓词、结果集等的载荷受到IPC通信的约束与限制。
48
49- 当前仅支持在Stage模型下,进行同设备跨应用数据共享相关能力的开发。
50