鸿蒙Harmony和Android共享数据对比

在现在多应用互动,多屏互动的时代,共享数据在日常应用中非常多,harmony和android共享数据的机制也比较类似。

Harmony共享数据:

harmony使用Data模板的Ability(以下简称“Data”)有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。

数据的存放形式多样,可以是数据库,也可以是磁盘上的文件。Data对外提供对数据的增、删、改、查,以及打开文件等接口,这些接口的具体实现由开发者提供。

URI介绍

Data的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。HarmonyOS的URI仍基于URI通用标准,格式如下:

  • scheme:协议方案名,固定为“dataability”,代表Data Ability所使用的协议类型。
  • authority:设备ID。如果为跨设备场景,则为目标设备的ID;如果为本地设备场景,则不需要填写。
  • path:资源的路径信息,代表特定资源的位置信息。
  • query:查询参数。
  • fragment:可以用于指示要访问的子资源。

URI示例:

  • 跨设备场景:dataability://device_id/com.domainname.dataability.persondata/person/10
  • 本地设备:dataability:///com.domainname.dataability.persondata/person/10

Android共享数据:

在Android中有很多的内容提供者,包括内置的、自己编写的和他人编写的。那么,如何识别和找到需要的内容提供者呢?Android提供了一种叫做Content URI技术,通过它可以指定一个内容提供者,访问内容提供者后面的资源。

Android中的Content URI就是Android平台的内容资源定位符,与Web上的应用一样,Android平台上的Content URI定义的时候也要全球唯一,因此它的命名可以借助所在应用的包名命名,但是要注意这种命名方式不是必须的,而是推荐的命名方式。因为一个应用的包名是唯一的,不会重复的。

(1)协议名字。content是URI协议名字,content表明这个URI是一个内容提供器。类似于http://www.acme.com/icons/logo.gif中的HTTP,协议名不可以修改。

(2)权限。URI的权限部分,用来标识内容提供者,它的命名必须确保唯一性,类似于http://www.acme.com/icons/logo.gif中的www.acme.com部分。

(3)路径。用来判断请求数据类型的路径。在Content URI中可以有0个或多个路径。类似http://www.acme.com/icons/logo.gif中的icons部分。

(4)id。被指定的特定记录的id,如果没有指定特定id记录,这个部分可以省略,类似于http://www.acme.com/icons/logo.gif中的logo.gif部分。

对比说明:

从上面看,harmony和android共享数据定义的协议URI非常类似,harmony多了一个填写设备ID可用于跨屏。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注