在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
鸿蒙OS最近突然火了,相信不少人对这个操作系统还知之甚少。其实它是华为早在2012年就开发出来的,本文就来为大家科普一下,鸿蒙OS是什么,它是怎样实现跨平台的?
一、鸿蒙OS是什么?
1、鸿蒙OS的概念。
鸿蒙(英语:Harmony OS,开发代号Ark)是华为自2012年开发的一款全新的、基于微内核的、面向全场景的、分布式操作系统。2019年8月9日华为开发者大会上,华为消费者业务CEO余承东正式宣布发布自有操作系统鸿蒙,内核为Linux内核、鸿蒙微内核和LiteOS。未来将摆脱Linux内核和LiteOS,只有鸿蒙微内核。
2、鸿蒙OS的四大技术特性。
分布式架构首次用于终端OS,实现跨终端无缝协同体验
确定时延引擎和高性能IPC技术实现系统天生流畅
基于微内核架构重塑终端设备可信安全
通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享
3、鸿蒙OS的应用。
鸿蒙OS将作为华为迎接全场景体验时代到来的产物,发挥其轻量化、小巧、功能强大的优势,率先应用在智能手表、智慧屏、车载设备、智能音箱等智能终端上,着力构建一个跨终端的融合共享生态,重塑安全可靠的运行环境,为消费者打造全场景智慧生活新体验。
二、鸿蒙OS是怎样实现跨平台的?
1、什么是跨平台?
在以前,平台基本等于操作系统。所以,传统意义上的跨平台即不依赖于操作系统,也不依赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。
但是随着科技的发展,平台基本等于操作系统已经不成立了,就像华为推出的鸿蒙OS,他可以支持到多种多样的设备,如手机、手表、电脑、汽车、智能家居设备等。所以,今天我们谈的跨平台,指的是跨设备。即平台基本等于设备。所以,华为希望鸿蒙OS可以运行在各种各样的设备上,所以,鸿蒙OS必然需要具备跨平台的能力。
而且,鸿蒙想要做的不仅仅是操作系统可以跨平台,更重要的是要让用户和开发者真正的感受到跨平台。所以,跨平台操作系统鸿蒙的目的是:使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。
2、Java实现跨平台。
提到鸿蒙OS实现跨平台就不得不提Java是如何实现跨平台的。Java对于跨平台的支持,就像对安全性和网络移动性的支持一样,是分布在整个Java体系结构中的。其中扮演者重要的角色的有Java语言规范、Class文件、Java虚拟机(JVM)等。
首先,在Java语言规范中,规定了Java语言中基本数据类型的取值范围和行为。其次,所有Java文件要编译成统一的Class文件。最后,通过Java虚拟机将Class文件转成对应平台的二进制文件。Java的平台无关性是建立在Java虚拟机的平台有关性基础之上的,是因为Java虚拟机屏蔽了底层操作系统和硬件的差异。想要运行一段Java代码,要经过多个步骤,将Java源代码转换成机器可以执行的机器代码,这个过程主要由虚拟机来完成。在著名的HotSpot虚拟机中,主要有解释执行和即时编译两种形式:
解释执行
逐条将字节码翻译成机器码并执行即时编译(Just-in-time ,JIT)将一个方法中包含的所有字节码编译成机器码后再执行。HotSpot 默认采用混合模式,综合了解释执行和即时编译两者的优点。它会先解释执行字节码,而后将其中反复执行的热点代码(热点检测),以方法为单位进行即时编译。
3、鸿蒙实现跨平台
在鸿蒙OS架构中,方舟编译器和多终端开发IDE扮演着重要的位置。跨平台有一个最大的挑战,那就是各个平台的适配问题,尤其是目前各种设备类型越来越多,如何将同一个应用,在手机、手表、汽车、电视上面都可以适配的展示呢?这就是多终端开发IDE所做的事情。
使用华为提供的多终端IDE,多语言统一编译,分布式架构Kit提供屏幕布局控件以及交互的自动适配,支持控件拖拽,面向预览的可视化编程,从而使开发者可以基于同一工程高效构建多端自动运行App,实现真正的一次开发,多端部署,在跨设备之间实现共享生态。在IDE里面可以通过图形化界面拖拽控件,并且IDE可以帮助自动适配各种终端设备。
而鸿蒙OS使用的方舟编译器,可以将高级语言(Java)直接变成机器码,从而绕过了虚拟机。并且这个编译过程并不是在用户的手机上完成的,而是在应用开发阶段就完成了。另外,就像JVM其实也是支持多种语言一样,华为表示,方舟编译器未来也会支持更过的开发语言。换句话说,其他语言的开发者,日后也能开发基于鸿蒙OS的应用。
看到这相信大家已经理解了鸿蒙OS是什么,对它是怎样实现跨平台也有了大致的了解。让我们共同期待未来鸿蒙OS的发展吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
TCP和UDP各自有哪些优缺点?它们有什么区别?
TCP和UDP各自有哪些优缺点?它们有什么区别?小编为大家整理了有关TCP和UDP的有缺点和区别,赶紧来看一下吧。
7111
2019-07-11 17:38:32
学数据库要看哪些书?从入门到精通书籍推荐
学数据库要看哪些书?本文就针对数据库这一知识点,给大家推荐七本书籍。这些书既有零基础可以看懂的,又有可以进阶提升的内容,内容上真正做到从入门到精通都涵概。
9190
2019-08-07 10:04:35
想要自学编程该如何做?
编程在许多人眼里是赚钱的香饽饽,因为难度系数高,导致许多人听到编程就感到忧心忡忡,不敢接触,但也有许多人想要挑战自己,去尝试编程的工作。那么如何学习编程就成为了许多新手最烦恼的问题,首先要弄懂计算机的运算方式才能进行下一步的尝试,该如何开始自学编程呢?
3973
2020-05-27 10:08:54
学IT有什么学历要求?
学IT的实质就是掌握一技之长,对于学历的要求并不高。我们学IT的最终目的都是为了就业,大家可以在各大招聘平台上去搜索一下IT岗位的任职要求,其中对学历的最低要求是专科。如果大家低于这个水平,建议还是先提高一下自己的学历。不然就算学出来,也很难就业。关于IT和学历之间的更多影响,下面我们详细来聊一聊。
4836
2020-06-22 11:57:07
浏览器缓存类型有几种?实现原理?
一个优秀的缓存策略可以缩短网页请求资源的距离减少延迟,并由于缓存文件可以重复利用,还可以减少带宽降低网络负荷,提高网网页页反应速度的一个方式就是使用缓存。
5076
2021-01-25 16:09:59