当前位置: 首页 > 科技观察

跟阿斌学鸿蒙(二),能力vs应用程序?

时间:2023-03-21 10:22:55 科技观察

更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com/#zz在进一步实践之前,你需要了解一个概念:能力。不知道大家有没有注意到,在使用鸿蒙开发工具DevEcoStudio创建项目的时候,我们选择一个一个的创建Abilities。这是为什么呢?#1.鸿蒙OS的定位这要从鸿蒙OS的自我定位说起:鸿蒙OS是一个**分布式操作系统**。##“单机”操作系统在我们目前常用的操作系统中,无论是手机还是电脑,App(Application,应用程序)都是一个很常见的概念,也是我们解决问题的基本对象。*要与朋友聊天,请打开聊天应用程序。*要收听歌曲,请打开音乐应用程序。*要观看视频,您可以打开各种视频应用程序。*要编写文档,请打开Word或PPT。与HarmonyOS不同,这些“独立”操作系统通常是*1)。运行在同一类型的设备上,对于不同类型的设备,通常运行不同的操作系统。*2).设备不仅在物理上分离,而且在操作系统级别上也是分离的。*3).设备之间的连接通常由需要连接的应用程序发起,然后通过操作系统通过网络进行连接。*4).App应用程序是操作系统管理的基本单位。##分布式操作系统而所谓的鸿蒙OS分布式是什么?它是*1)。同一个鸿蒙操作系统运行在不同的设备上。*2).虽然设备在物理上是分开的,但它们在操作系统层连接在一起,并由操作系统自动连接。*3).应用程序不再需要显式发起网络连接,而是直接相互通信。*4).一个App(应用程序)是由多个Abilities(能力)组成的,而这些Abilities是操作系统管理的基本单元。所以,在鸿蒙OS上,如果你想*和朋友聊天,你可以在手机上、电视上、车里聊天,甚至手表上*听歌,你可以用扬声器听,或者用你的手表看字幕、点赞、收藏*看视频可以在电视上看,手机发弹幕*写文档可以在电脑上编辑,手机上浏览审批。任何数据传输和消息同步都需要通过互联网完成,因为使用鸿蒙操作系统,您是在同一时间*在不同设备*上使用同一个应用程序。当然,这些场景并不是鸿蒙OS的专利。即使在现在的环境和现在的操作系统下,只要产品经理认为有需要,程序员还是可以帮你实现的,只是实现起来会比较麻烦,比如各种远程通信,各种数据的同步以及状态,以及各种联调和测试。而鸿蒙OS将很多麻烦的处理流程都集成到操作系统中,希望程序员能够以更优雅自然的方式实现这些功能,避免过早秃顶。#2.AbilityAbility是鸿蒙OS为程序员提供的基础设施之一。##Ability分类鸿蒙OS将Ability分为两类:1.具有显示功能的Ability,FeatureAbility(FAFunctionalAbility)2.不具有显示功能的Ability,ParticleAbility(PA)PA又细分为ServiceAbility(服务能力)和Data能力(数据能力)##能力=MVC?乍一看,这不是MVC吗?*View=FeatureAbility负责展示*Controller=ServiceAbility负责业务逻辑*Model=DataAbility负责数据管理如果我们用我们熟悉的概念来套用鸿蒙OS的概念,MVC可能确实是最近的一个。不过,你可以用MVC来理解,不要被MVC给套牢了。学习一个新东西,最好试着按照它的设计思路去思考,而不是用旧的思路去跟着它的设计走,否则难免会出现:*为什么Android或者iOS会有这个,以及鸿蒙OS有这个?不?或者,*鸿蒙OS为什么要设计这样一个东西?等一个迷惑的问题。##能力是分布式调度的基本单位能力是鸿蒙OS作为操作系统进行任务调度的基本单位。鸿蒙OS在操作系统层将不同的设备连接在一起,将它们变成一个超级虚拟设备。为了满足这样的需求:*FeatureAbility,运行在前台进行交互,需要适应不同的显示和输入方式。*ParticleAbility,后台运行,负责与交互无关的业务。这种业务可以运行在任何具有足够计算能力和资源的设备上。对于繁重的业务,可以主动选择运行在计算能力足够的设备上,甚至可以将任务分配到多台设备上进行分布式计算。*不同的能力可以灵活组合,以适应不同的使用需求和操作场景。*能力应该足够轻便,以便可以轻松派发,甚至在从一台设备派发到另一台设备时也足够流畅。这种设计的关键之一是不同设备之间的稳定和快速连接。有了这个可靠的基础,程序员就可以专注于能力的开发,而不必担心设备连接和数据传输。而这就是鸿蒙OS的**分布式软总线**提供的基本功能。#3.分布式编程思想?因此,鸿蒙OS上的应用开发可能需要一些分布式编程思想,而业务开发可能首先要从如何将一个传统的App分解成不同的Abilities开始。例如,例如,...例如,...例如,如何开发一个分布式的HelloHarmony?就这样吧,下次玩个分布式的HelloHarmony吧。了解更多请访问:与华为官方共建鸿蒙科技社区https://harmonyos.51cto.com/#zz