在线客服
扫描二维码
下载博学谷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的发展吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
数据流图与程序流程图有什么区别?
最近,有人问我:数据流图与程序流程图有什么区别?今天,小编就来和大家梳理一下数据流图与程序流程图的区别以及相关知识点。
14637
2019-07-26 20:09:42
学计算机需要什么基础?编程入门准备
在当下互联网时代,最需要的就是会计算机、懂编程的人才。既然这个职业市场缺口这么大,那么学计算机需要什么基础呢?或者说学计算机需要做哪些入门准备呢?第一位肯定是心态,没有强烈的学习决心和兴趣是很难学好编程的。其次,才是掌握一些专业领域的基础知识。
11487
2019-08-06 19:16:45
学会计好找工作吗?女生学会计专业好不好?
学会计好找工作吗?女生学会计专业好不好?会计专业被俗称为“万金油专业”,社会需求量大供求关系有影响。任何公司企业包括我们的生活都与金钱息息相关。而会计专业则是以核算监督为要点的经济管理工作。
7381
2019-08-12 15:18:55
什么是Docker?Docker入门教程
什么是Docker?相信大家对Docker或多或少都有所了解,的确,目前使用Docker已经十分常见了,尤其是在一线的互联网公司,更是会常常使用到Docker。本篇Docker入门教程就来带大家,简单认识一下Docker,了解它的优势和一些常用命令,感兴趣的朋友可以看一下。
5360
2019-11-26 13:10:25
学IT大概需要多少费用?
学IT大概需要多少费用?按照目前培训市场的行情,IT培训的学费最低也要上万元,根据地区经济发展水平和不同的学科内容,一般都在25K之内。线上的IT课程普遍会比线下的面授课便宜很多,毕竟省去了场地的大头成本。另外,不同的培训科目内容,培训价格也有所区别。不过比起学费,选择一个靠谱的培训机构和自己喜欢擅长的科目更重要!
5052
2020-07-07 17:23:39