在进一步实践以前,须要先弄明白一个概念:Ability。程序员
不知道你有没有注意到,使用鸿蒙开发工具DevEco Studio建立项目时,咱们选择建立的是一个个Ability。
编程
这是为何呢?网络
这须要从鸿蒙OS的自我定位提及:鸿蒙OS是一个分布式操做系统。mvc
在咱们目前经常使用的操做系统中,不论是手机仍是电脑,App(Application,应用程序),是很是常见的一个概念,是咱们解决问题的基本对象。分布式
要跟朋友聊天,打开聊天App。工具
要听歌,打开音乐App。开发工具
要看视频,能够打开各类视频App。测试
要写文档,打开Word或者PPT。操作系统
与鸿蒙操做系统不一样,这些“单机”操做系统一般是设计
而鸿蒙OS所谓的分布式是怎么样的呢?他是
因而,在鸿蒙OS上,若是你想
要跟朋友聊天,你能够在手机上聊天,在电视上聊天,在车里、甚至在手表上聊天
要听歌,你能够用音箱听,用手表看字幕,点赞和收藏
要看视频,能够在电视上看,在手机上发弹幕
要写文档,能够在电脑上编辑,在手机上浏览和审批
更重要的是,这些操做都不须要经过互联网进行任何数据传输和消息同步,由于经过鸿蒙OS,你是
固然,这些场景,并非鸿蒙OS的专利,即便是在如今的环境如今的操做系统上,只要产品经理认为有需求,程序员们依然能够为你实现,只是实现起来会相对麻烦,好比各类远程通讯,各类数据和状态的同步,还有各类联调和测试。
而鸿蒙OS,将不少麻烦的处理过程整合到操做系统中,借此但愿让程序员们能够用更优雅更天然的方式来实现这些功能,避免过早的头秃。
而Ability,就是鸿蒙OS为程序员们提供的基础设施之一。
鸿蒙OS将Ability分为两大类:
咋一看,这不就是MVC嘛?
若是用咱们熟知的概念去套鸿蒙OS的概念,MVC也许确实是最接近的一个。
可是,能够用MVC去理解,不要被MVC所套住。
学一个新事物,最好仍是试着去按照它的设计思路去思考,而不是用旧有的思路去套它的设计,不然,不免会冒出:
为何安卓或者iOS有这个,而鸿蒙OS没有?
或者,
鸿蒙OS为何要设计这么一个玩意儿?
等等摸不着头脑的问题。
Ability是鸿蒙OS做为操做系统进行任务调度的基本单元。
鸿蒙OS在操做系统层将不一样设备链接到一块儿,变成一个超级虚拟设备,为了适应这样的需求:
Feature Ability,运行在前台,用于交互,须要适应不一样的显示和输入方式。
Particle Ability,运行在后台,负责与交互无关的业务,这类业务能够运行在任何有足够算力和资源的设备上,对于重度业务,能够主动选择运行在算力富余的设备上,甚至将任务分配到多个设备上进行分布式计算。
不一样的Ability能够灵活组合,以适应不一样的使用需求和运行场景。
Ability要足够轻量,这样,才能容易调度,甚至在被从一个设备调度到另外一个设备上时也足够流畅。
这个设计的关键之一是,不一样设备间稳定而快速的链接,有了这个可靠的基础,程序员才能够专一于Ability的开发,而不用关心设备的链接和数据的传输。
而这,正是鸿蒙OS承诺的分布式软总线提供的基础功能。
因此,在鸿蒙OS之上进行应用开发,可能须要一些分布式编程思想,而业务的开发,可能,首先要从怎样将一个传统的App分解为不一样的Ability开始,举个例子,
好比,……
好比,……
好比,怎样开发一个分布式的Hello Harmony呢?
就这样,下一次,咱们就来撸一个分布式的Hello Harmony吧。
做者:IT男阿斌
想了解更多内容,请访问: 51CTO和华为官方战略合做共建的鸿蒙技术社区https://harmonyos.51cto.com