不用多讲,大家也都了解HarmonyOS(鸿蒙操作系统),它以其革命性的多设备协同能力和分布式架构,为鸿蒙应用开发带来了全新的设计思路。在这样的环境下,应用不仅要在单一设备上运行流畅,还要能够在多个设备间无缝切换和协同工作。而且鸿蒙操作系统以其强大的系统功能,结合现阶段火爆的生态环境,让HarmonyOS开发越来越热,越来越多的开发者也在入局且深度使用HarmonyOS开发,关于HarmonyOS的架构相关的内容也越来越受到关注。那么本文就来分享如何在HarmonyOS中设计轻量化、模块化的架构,以支持跨设备的无缝运行,并展示架构设计的创新点。
在深入架构设计之前,先来了解一下HarmonyOS的分布式架构特点,这里只来分享几个它的核心特点:
再来介绍一下HarmonyOS的架构设计原则,这里从轻量化设计和高扩展性设计两个方面来介绍。
关于轻量化的设计,是从模块化、按需加载、资源优化整合三个模块来看,具体如下所示:
关于高扩展性设计,这里从可插拔架构、分布式服务、弹性设计三个模块来介绍,具体如下所示:
再来分享一下关于HarmonyOS的架构设计具体实践的操作。
根据鸿蒙官方的内容,在HarmonyOS中,轻量化架构可以通过以下方式实现:
关于高扩展性的实现,这里是从下面三个地方来介绍:
接下来介绍一下关于创新点相关的内容,这里从三个方面来讲。
第一个创新点就是利用HarmonyOS的分布式数据库能力,可以实现数据在多个设备间的实时同步,无需复杂的数据同步逻辑。
第二个创新点是通过分布式软总线,可以将UI渲染任务分配给性能更强的设备,提升渲染效率和用户体验。
第三个创新点就是根据网络状况和设备性能,智能选择最佳的服务路由,确保服务调用的高效和稳定。
这里再来着重分享一下关于HarmonyOS的分布式文件系统架构相关内容。
在HarmonyOS中,分布式文件系统提供跨设备的文件访问能力,它适用于下面的场景:
另外就是,hmdfs在分布式软总线动态组网的基础上,为网络上各个设备结点提供一个全局一致的访问视图,支持开发者通过基础文件系统的接口进行读写访问,具有高性能、低延时等优点。
先来看一下分布式文件系统架构图,具体如下所示:
具体的核心内容如下所示:
其实distributedfile_daemon主要负责设备上线监听、通过软总线建立链路,并根据分布式的设备安全等级执行不同的数据流转策略。
至于hmdfs,它实现在内核的网络文件系统,包括缓存管理、文件访问、元数据管理和冲突管理等。
a.缓存管理
b.文件访问
关于文件访问,主要是从下面入手,但是需要注意的是symlink:不支持。具体如下所示:
c.元数据管理
d.冲突处理
由于不同设备本身的安全能力差异较大,一些小的嵌入式设备安全能力远弱于平板等设备类型。用户或者应用不同的文件数据有不同安全诉求,比如个人的健康信息和银行卡信息等不期望被弱设备读取。所以说HarmonyOS提供一套完整的数据分级、设备分级标准,并针对不同设备制定不同的数据流转策略。这里主要是通过使用API接口setSecurityLabel和getSecurityLabel的使用来讲,举一个具体示例:
//获取通用文件沙箱路径,并设置数据等级标签
import { securityLabel } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { common } from '@kit.AbilityKit';
import { fileIo as fs } from '@kit.CoreFileKit';
// 获取需要设备数据等级的文件沙箱路径
let context = getContext(this) as common.UIAbilityContext; // 获取UIAbilityContext信息
let pathDir = context.filesDir;
let filePath = pathDir + '/test.txt';
//打开文件
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
// 设置文件的数据等级为s0
securityLabel.setSecurityLabel(filePath, 's0').then(() => {
fs.closeSync(file);
}).catch((err: BusinessError) => {
});
通过本文关于HarmonyOS开发中架构相关内容的介绍,尤其是关于分布式架构的详细介绍,它为应用开发提供了强大的支持,也带了非常好的效果。通过轻量化和高扩展性的架构设计,我们可以构建出既高效又灵活的应用,满足多设备协同的需求。而且随着HarmonyOS生态的不断发展和成熟,可以期待更多的创新应用能够利用上文介绍的相关架构,给用户提供更加丰富和便捷的服务。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。