文章目录
- 1.正确的人,通过正确的设备,正确地使用数据
- 2.HiLog
- 3.架构图
- 4.Data
- 5.Image
- 7.通知
- 8.JS FA调用Java PA的机制
- 9.NetworkID
- 10.内核层
考点说明
1.正确的人,通过正确的设备,正确地使用数据
在搭载HarmonyOS的分布式终端上,可以保证“正确的人,通过正确的设备,正确地使用数据”。
- 通过“分布式多端协同身份认证”来保证“正确的人”。
- 通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”。
- 通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用数据”。
在分布式终端场景下,只有保证用户使用的设备是安全可靠的,才能保证用户数据在虚拟终端上得到有效保护,避免用户隐私泄露。
在分布式终端场景下,“正确的人”指通过身份认证的数据访问者和业务操作者。“正确的人”是确保用户数据不被非法访问、用户隐私不泄露的前提条件。HarmonyOS通过以下三个方面来实现协同身份认证:
2.HiLog
HiLog提供的主要接口如下表所示:
DEBUG级别日志表示仅用于应用调试,默认不输出,输出前需要在设备的“开发人员选项”中打开“USB调试”开关。
3.架构图
4.Data
使用Data模板的Ability(以下简称“Data”)有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。
数据的存放形式多样,可以是数据库,也可以是磁盘上的文件。Data对外提供对数据的增、删、改、查,以及打开文件等接口,这些接口的具体实现由开发者提供。
开发者可以通过DataAbilityHelper类来访问当前应用或其他应用提供的共享数据。DataAbilityHelper作为客户端,与提供方的Data进行通信。Data接收到请求后,执行相应的处理,并返回结果。DataAbilityHelper提供了一系列与Data Ability对应的方法。
DataAbilityHelper为开发者提供了creator()方法来创建DataAbilityHelper实例。该方法为静态方法,有多个重载。最常见的方法是通过传入一个context对象来创建DataAbilityHelper对象。
获取helper对象示例:
DataAbilityHelper helper = DataAbilityHelper.creator(this);
DataAbilityHelper为开发者提供了一系列的接口来访问不同类型的数据(文件、数据库等)。
DataAbilityHelper为开发者提供了增、删、改、查以及批量处理等方法来操作数据库。
- delete()
删除方法,其中删除条件可以通过DataAbilityPredicates来构建。删除用户表中id在101-103之间的用户,代码示例如下:
DataAbilityHelper helper = DataAbilityHelper.creator(this);// 构造删除条件
DataAbilityPredicates predicates = new DataAbilityPredicates();
predicates.between("userId", 101, 103);
helper.delete(uri, predicates);
5.Image
Image是用来显示图片的组件。
属性scale_mode用于表示图像缩放类型,可选的属性值如下所示:
7.通知
HarmonyOS提供了通知功能,即在一个应用的UI界面之外显示的消息,主要用来提醒用户有来自该应用中的信息。当应用向系统发出通知时,它将先以图标的形式显示在通知栏中,用户可以下拉通知栏查看通知的详细信息。常见的使用场景:
- 显示接收到短消息、即时消息等。
- 显示应用的推送消息,如广告、版本更新等。
- 显示当前正在进行的事件,如播放音乐、导航、下载等。
具体的通知类型:目前支持六种类型:
- 普通文本NotificationNormalContent
- 长文本NotificationLongTextContent
- 图片NotificationPictureContent
- 多行NotificationMultiLineContent
- 社交NotificationConversationalContent
- 媒体NotificationMediaContent。
8.JS FA调用Java PA的机制
JS UI框架提供了JS FA(Feature Ability)调用Java PA(Particle Ability)的机制,该机制提供了一种通道来传递方法调用、处理数据返回以及订阅事件上报。
当前提供Ability和Internal Ability两种调用方式,开发者可以根据业务场景选择合适的调用方式进行开发。
- Ability:拥有独立的Ability生命周期,FA使用远端进程通信拉起并请求PA服务,适用于基本服务供多FA调用或者服务在后台独立运行的场景。
- Internal Ability:与FA共进程,采用内部函数调用的方式和FA进行通信,适用于对服务响应时延要求较高的场景。该方式下PA不支持其他FA访问调用。
Ability和Internal Ability是两种不同的FA调用PA的方式。下表列举了在开发时各方面的差异,供开发者参考,避免开发时将两者混淆使用。
9.NetworkID
网络设备节点通信标识符,是分布式软总线提供的一种非永久性标识符。NetworkID基于Java原生的UUID接口随机生成,长度为32字节,使用十六进制表示。主要用于业务调用分布式能力时,标识分布式网络内的设备节点。
NetworkID举例:6B97BC8F6F85A2A1A6E0E262111F42D6A8541CBFF6CAF688FA5293956EC3FD43
NetworkID是分布式网络设备节点在分布式组网中的通信标识符,用于在分布式业务中标识网络设备节点。上层业务在调用分布式能力的时候,使用NetworkID标识不同的网络设备节点。由于同一设备的NetworkID的值在多次组网中可能会发生变化,因此NetworkID不能用于数据持久化存储的索引等场景。
NetworkID为设备级标识符,不同APP在同一时间获取到同一设备的NetworkID相同。NetworkID在设备下线、设备重启、恢复出厂设置后会发生变化,因此不可用于数据持久化存储的索引等场景。
为满足在分布式场景中的隐私要求,NetworkID在以下几个场景会发生变化:
- 用户操作进行设备恢复出厂设置。
- 设备重启。
- 分布式组网的设备上线列表从非空转为空,并持续为空5分钟后。