科技的发展就如历史的缩影,都是因为特定的事件产生了质变的影响,鸿蒙的出现也是伴随着这样的背景诞生的。
鸿蒙是一款面向未来、面向全场景的分布式智能操作系统。
仅凭这一句话,我们是不可能对它有深刻的认识,我们会提出很多问题,我将自己初学鸿蒙时的问题罗列如下:
- 1) 到底鸿蒙是什么?
- 2) 全场景是指什么?
- 3) 鸿蒙到底有哪些优势?
- 4) 和现有的操作系统有什么区别?
- 5) 支持哪些编程语言?
这一系列的问题也是我初学鸿蒙时提给自己的问题,但有些问题只有我们学习完成后,对鸿蒙有了全貌的了解才能回答的透彻。我始终认为学习是一个提出问题,解决问题的过程,这个过程也是对所学知识掌握最快、最深刻的,因此接下来我将带着这些问题去学习鸿蒙,并在学习过程中不断地提出其他问题并通过各种途径去解决问题。
1.1.1 鸿蒙是什么
我将操作系统分为两类,一类是独享式操作系统,另一类是共享式操作系统。从操作系统概念诞生到现在人手一台智能终端或者多个终端设备,终端设备上的系统仅仅是对该终端负责,这也就意味着设备硬件的不可变,只能提供给当前设备使用,我将该类归结为独享式操作系统。直白点就是使用自己的手机拍照,不能使用手机调用照相机的摄像头拍照,手机的摄像头对于手机是唯一的。而共享式操作系统就是我即将学习的鸿蒙(图1.1.1),它可以实现硬件的可变性,可以通过一个终端设备来使用其他终端设备硬件的能力,两个终端或多个终端之间通过授权达到共享,直白点就是我可以使用手机调用专业照相机的摄像头进行拍照。在这期间另一个终端设备把自己的高清摄像头共享给我的手机,我的手机就具备了专业摄像机的能力。
那到底什么是鸿蒙呢?鸿蒙是华为公司开发的一款基于微内核,能够实现万物互联,将人、设备、场景有机地连接起来,形成一个超级虚拟的终端互联世界,通过一个设备操控多个设备。在体验上能够像操控一个设备一样。鸿蒙实现在不同的场景中通过组合不同的终端设备,实现硬件互助、资源共享,用最合适的设备提供最佳的场景体验。
十年磨一剑,一朝试锋芒。自2012年华为开始规划自由操作系统鸿蒙到至今,已经历了十个年头。2019年8月9日正式发布鸿蒙后,遭受了很多质疑,同时也有很多忠实的开发者参与生态共建。2020年9月10日,鸿蒙2.0版本发布。在众多开发者的共建下,鸿蒙组件已经多达700+。随着2021年6月2日华为正式举办鸿蒙产品发布会(图1.1.2),鸿蒙组件已经多达1000+,相信后续会有更多的开发者和三方合作商参与鸿蒙共建。
鸿蒙的开机动画是以一个动态的“O”开始,这个“O”我认为是万物互联,无缝衔接,无感知切换的意思。以人为中心,以“1”为核心,以“8”为基础,以“N”为元素构建万物互联,实现全场景无缝衔接,无感知切换。
1.1.2 全场景是什么
鸿蒙是面向全场景的分布式操作系统,全场景到底指什么呢?
我们先来看看单一的场景,我们在早上闹钟响起时,关闭闹钟,然后打开窗帘,洗漱出门,这些步骤都是唯一的,每一项做完后才能进行下一项,不能同时进行两项操作,可以认为是单线程,这也是场景的唯一性。在这种单一的场景下,人和设备之间是相互的,并没有达到设备为人服务。
鸿蒙支持轻松调用设备组合中的不同硬件能力、支持多设备无缝协同,这种情况下,我们的场景将不再是唯一的,同时场景间也可以无缝切换。
全场景在这里是以人们日常起居生活为中心,围绕人们的衣食住行等需求做出全天候的服务响应。鸿蒙利用组网的方式将场景需要的设备进行互联,造就新硬件、新交互、新服务,让设备始终是以人为中心。
鸿蒙利用分布式技术,通过1+8+N(图1.1.3)的方式让设备为人提供不同需求下的解决方案,真正达到了“一机在手,天下我有”的高境界。比如夏天下班时,打开车和家里的空调系统,同时打开智能厨房设备进行烹饪,这个场景下我们通过手机实现了多设备的操作,多场景的互联。
1.1.3 鸿蒙有哪些优势
在了解鸿蒙特性之前,我们先来看看鸿蒙的技术架构(图1.1.4)。根据华为鸿蒙提供的技术架构图,可以看出其遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层,每层又包括多个子系统。
作为北向应用开发者,鸿蒙采用多种分布式技术,开发者不再需要关注终端设备的形态差异,只需要聚焦上层业务逻辑即可,在整个技术架构中我们只需要关注的是框架层即可。框架层为鸿蒙应用开发提供了Java/C/C++/JS等多语言的用户程序框架和Ability框架,两种UI框架(包括适用于Java语言的Java UI框架、适用于JS语言的JS UI框架),以及各种软硬件服务对外开放的多语言框架API。而本书以Java UI框架为例展开阐述,其UI界面构建方式会以Java代码和XML代码两种形式展示。
从框架层的解释我们也可以看出鸿蒙提供了支持多种开发语言的API供开发者进行应用开发,其支持的开发语言包括Java、XML、C/C++、JS、CSS以及HML,都是主流的编程语言,对于开发者而言可以很大程度降低学习成本。
鸿蒙有三大特性,也是其他系统所不具备的:
1)硬件互助,资源共享。通过系统服务层中的分布式软总线、分布式数据管理、分布式任务调度、分布式设备虚拟化来保证多种设备之间硬件互助、资源共享能力的正常使用。
2)一次开发,多端部署。鸿蒙提供了用户程序框架、Ability框架以及UI框架。并提供了多种控件,以及在多终端显示不同的UI效果。开发者通过修改少量的代码,实现应用程序在多终端上的安装。
3)统一OS,弹性部署。鸿蒙是组件化设计方法,可以根据硬件资源来按需弹性部署。
习题:
1)HarmonyOS是一款_______________、_______________的智能分布式操作系统。
2)HarmonyOS开发支持的语言包含_____________________________________________。
3)HarmonyOS技术特性__________________________________________________________。
4)HarmonyOS技术架构遵从_______________设计,从下到上依次为_____________________________________________。
5)框架层为HarmonyOS应用开发提供了几种UI框架?