十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
鸿蒙系统是一款全新的面向全场景的分布式操作系统,以手机操作为主,链接汽车、智能音箱、可穿戴等设备的分布式操作系统。与Android等系统具有根本性不同,Harmony OS创新多设备交互,让消费者操控多个设备像操作一台设备一样简单。
创新互联建站自2013年起,先为西岗等服务建站,西岗等地企业,进行企业商务咨询服务。为西岗企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
鸿蒙:
鸿蒙OS是华为公司开发的一款基于微内核、耗时10年、4000多名研发人员投入开发、面向5G物联网、面向全场景的分布式操作系统。鸿蒙的英文名是HarmonyOS,意为和谐。不是安卓系统的分支或修改而来的。与安卓、iOS是不一样的操作系统。性能上不弱于安卓系统,而且华为还为基于安卓生态开发的应用能够平稳迁移到鸿蒙OS上做好衔接——将相关系统及应用迁移到鸿蒙OS上,差不多两天就可以完成迁移及部署。这个新的操作系统将打通手机、电脑、平板、电视、工业自动化控制、无人驾驶、车机设备、智能穿戴统一成一个操作系统,并且该系统是面向下一代技术而设计的,能兼容全部安卓应用的所有Web应用。
一、鸿蒙1.0是一个Tee OS
我们用的安卓操作系统,其实很复杂。最早的安卓系统是Linux核心上的一个JAVA虚拟机,解释执行JAVA程序。后来随着安卓一步步发展,基本就是一个用了Linux核心的独立操作系统了。
我们用的操作系统,并不是一个核心就完事了,而是一个核心后面有一大堆上层的东西,构成一个完整的操作系统。
我们现在用的手机、电脑等使用ARM芯片的东西,为了安全,除了安卓之外,还有一个叫做Tee OS的东西,这个东西先执行一个可信计算的操作系统,防治被攻击。
普通安卓用一个叫做Trusty的微型操作系统作为Tee OS。而华为自己开发了一个微型操作系统作为华为安卓设备的Tee OS。
2019年发布会上,华为把这个已经使用的Tee OS命名为鸿蒙1.0,并且把使用了Tee OS替代Trusty的安卓电视,命名为使用了鸿蒙1.0操作系统的电视。
这种命名其实命名华为手机、平板也是可以的,鸿蒙1.0实际上已经用了华为手机和平板之中的。
用了Tee OS替代Trusty的安卓设备,华为都可以命名为鸿蒙1.0设备。
二、鸿蒙2.0主要还是Lite OS
2020年,华为发布了鸿蒙2.0。从目前公布的鸿蒙2.0的信息和代码看,这个鸿蒙2.0其实还是华为2016年搞的Lite OS的进化版。
操作系统其实是分级别的,有简单的操作系统,复杂的操作系统。嵌入式设备用的操作系统往往简单,不能支持太多的功能,但是占用的空间小,资源少,能够满足一些基本的需求。Lite OS就是这个级别的东西。
和Lite OS类似的操作系统还有RT-Thread、TencentOS tiny等等。这个操作系统可以用在IOT设备上,但是用在手机上比较勉强。
最多可以做功能机,做智能机是不行的。所以,华为公布的鸿蒙2.0目前,只给128M内存以下的设备用。
微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成;这些原语,仅仅包括了建立一个系统必需的几个部分;如线程管理,地址空间和进程间通信等。
微核的目标是将系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最内核的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分微内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是多线程的,第一代微内核,在内核提供了较多的服务,因此被称为'胖微内核',它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS 的内核,可以说,蒸蒸日上.第二代微内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS。
不用,因为对于大多数的程序员来讲都是属于应用开发,根据的介绍,华为即将推出的鸿蒙操作系统兼容了安卓所有应用,所以对于目前市面上主要的应用开发人员来讲,其实是没有特别大的影响的,更不用说去学习新的开发预言了。
不过也有另外一种情况,那就是对于系统安全领域的应用,比如各种安全卫士、杀毒类的应用来讲,那是必然需要对华为的鸿蒙操心系统进行适配的,5月25日360就宣布会积极适配华为的鸿蒙操作系统,不过整合中适配的难度应该也不会太大,毕竟鸿蒙系统跟IOS不一样,它不是抛开安卓系统外另起了一套,而是跟安卓系统一样都是基于Linux开发而言,因此在应用适配方面,估计跟当前的安卓应用开发也有一定的相似性。
安卓是基于Linux的,是宏内核,由一堆底层特权模式的核心代码紧密组合在一起。这个架构的灵活性是不够的。面对各种硬件配置的手机,或者平板、电视之类的系统,它都是这一个架构,怎么适应?于是就搞出一个叫“虚拟机”的东西,假设大家都是在虚拟机上运行,代码是跨平台的。每一个安卓应用,都在操作系统底层对应着一个虚拟机实例,由这个虚拟机来伺候运行应用程序的代码。
而且对于操作系统生态的搭建来讲,其实系统开发一家企业都能搞定,但是应用生态开发确是需要整合产业链上的很多参与者才行,这也是非常考验企业的资源整合能力的,而华为目前选择兼容安卓应用,也是考虑到疾风骤雨的打击的前提下,所做出的决定,因为自把华为列入"实体名单"之后,谷歌很快就宣布暂停了跟华为在硬件、软件及技术服务方面的合作,因此华为就不得不在安卓系统之前另谋方法。
开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(HarmonyOS)简介及开发环境搭建
开发前的准备:「鸿蒙开发 1」华为鸿蒙应用集成开发环境DevEco Studio安装和设置
了解鸿蒙应用开发的基本开发流程:「鸿蒙开发 2」第一个华为鸿蒙(HarmonyOS)应用程序(App)
本章目标:
1 了解华为鸿蒙应用开发的可视化(低代码)方式
2 通过构建一个简单的具有页面跳转功能的应用
低代码开发方式,即通过可视化界面开发方式快速构建布局、编辑UI界面,可有效降低用户的上手成本并提升用户构建UI界面的效率。
1 打开DevEco Studio,创建一个新工程,选择支持Phone / Tablet / Wearable(手机 / 平板 / s可穿戴)的模板,我们在此直接选择Empty Ability
Project name工程名称填SuperVisual
Development mode开发方式选择Super Visual
其它的可以使用默认设置,点击完成,进入编辑界面
1 在Project(项目)窗口,删除工程运行默认的入口文件夹:“entry src main js default pages index”文件夹
2 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”
JS visual name填first,点击完成,进入编辑界面
创建完成后,可以看到“entry src main supervisual default pages page page.visual”的文件目录结构
3 第一个页面内有一个容器、文本和一个按钮,通过Div、Text和Button组件来实现
(1)分别选中first.visual画面中的Text、Div组件,单击鼠标右键,选择Delete删除
(2)选中UI Control中的Div组件,将其拖至画布
点击右侧属性样式栏中的通用样式图标(General),设置Div组件的高度Height为100%,使其占满屏幕
点击右侧属性样式栏中的样式图标(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示
(3)选中UI Control中的Text组件,将其拖至Div组件的中央区域
点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hello World ”
点击右侧属性样式栏中的通用样式图标(General),设置Text组件的宽(width)为100%,高(height)为100px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为60px,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示
(4)选中UI Control中的Button组件,将其拖至Text组件下面
点击右侧属性样式栏中的属性图标(Properties),设置Button组件的Value属性为 “ Next ”,
点击右侧属性样式栏中的通用样式图标(General),设置按的宽(width)为40%,高(height)为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为40px
至此,第一个页面创建完成
我们可以在预览窗口中看效果,点击右侧边栏的Preview打开预览窗口
1 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”
Visual配置界面,JS visual name填second,回车(Enter键)或者点击完成,进入编辑界面
2 第二个页面中有一个容器和文本,通过Div、Text组件实现,现在编辑器已经为我们创建好了,我们就来修改下它们的属性(你也可以删除原有的自己创建,具体步骤参考本章第二节“二 创建第一个页面”)。
选中Text组件,点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hi,I'm always here. ”
点击右侧属性样式栏中的通用图标(General),设置组件的宽(width)为100%,高为60px
点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为36px,TextAlign样式为center
这样我们的第二个页面创建成功了
1 在Project窗口,打开工程中的“entry src main js default pages first first.js”, 导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
2 打开或者切换到first.visual页面,选中画布上的Button组件,点击右侧属性样式栏中的事件图标(Events),鼠标点击Click事件的输入框,选择launch事件
3 在预览窗口中查看项目效果,点击Next按钮后发现我们的页面成功跳转了。
到此,本章的目标就完成了。
没有官方的「鸿蒙系统」架构资料,所以不好说
但是啊,如果「鸿蒙系统」没有基于「安卓」开发 ,那么鸿蒙系统是如此做到「完美兼容」的呢?甚至「鸿蒙」系统说安卓APP运行效率比在安卓系统上还快
网上传的「科抖」说「鸿蒙系统」使用C|C++开发,那么谁告诉你安卓系统不能使用C|C++开发 …… 如果使用安卓系统做应用或游戏或广告时,你没有使用过C|++,那么是你本人的问题,而且无论安卓还是IOS使用的都是SQLite数据库(一般是SQLite3),游戏开发时还有可能使用JAVASCRIPT或LUA这两门语言…… …… …… …… ANDROID一开始就支持C|C++,更准确地说ANDROID系统的底层本身就是使用C|C++实现的(同样,IOS开发同样需要掌握C|C++开发)
网上传的一些「鸿蒙系统」否定了自己使用「虚拟机」的说法,并且以「虚拟机」批判安卓系统,这就有意思了,因为文章最后的总结出了「大问题」
文章的最后『 总之,华为的“鸿蒙”操作系统,底层(Linux内核、运行库)是用C语言编写的,虚拟机可能采用了C或者C++语言;面向应用开发商的开发环境很可能是Java语言』鸿蒙系统用什么语言?“鸿蒙”和安卓有什么区别?
这是在「自打嘴巴」吗?一个连「虚拟机」都不存在的系统,如何使用「JAVA语言」?「JVM」本身就是「虚拟机」(JVM:Java Virtual Machine(Java虚拟机))……
另一个问题:如果「鸿蒙」系统是使用了「虚拟机」兼容「安卓系统」,而不是基于「安卓系统」进行魔改…… 那么「安卓应用"APK"」通过「ANDROID虚拟机」运行在「鸿蒙」系统,那么有可能比跑在「安卓系统」本身上更快吗?手机的硬件能支撑「系统虚拟机」(比如常用的 Parallels Desktop、virtualbox等)的运行吗?大家都知道「系统虚拟机」虽然可以在A系统上跑B系统,但是代价也非常昂贵,不仅仅占用大量的「内存」,而且运行效率低下,即使是目前最好用的Parallels Desktop,也完全没有装双系统或者干脆重新安装全新的系统「效率好」
现在网上的文章看似将「鸿蒙」和「安卓」区分开了,但实际上经不起推敲,问题百出,给人存心「骗人」的感觉
…………………………………………………………………………………………………………
如果你还能打开ANDROID官网,你会从里面找到非常非常详细的资料,可以将「安卓系统」看得清清楚楚,「安卓系统」哪部分是「开源的」哪部分是「不开源的」,「安卓系统」各层使用的「库」是基于哪门「语言」开发的及「安卓系统」的所有的「库」信息
…………………………………………………………………………………………………………
「鸿蒙系统」目前一切皆是「谜」
等着官网公开「鸿蒙系统」的资料
…………………………………………………………………………………………………………
如果官网连「鸿蒙系统」的资料都不愿意「公开」的话,这就显得很奇怪了,既然已经将自家系统捧上天了,为什么不让人看一看它的「资料」呢?而且这对于日后培养「鸿蒙系统开发程序员」也是非常「必要」的,一个只有对自己使用的「系统」有个清楚的「认知」,在开发时才能「找到方向」…… …… 没有人能在「一无所知」的系统上做好「开发」,并且「一无所知」会令程度员「开发兴趣」直线下降…… …… 「程序员」本来就是靠「好奇心」驱动的,「程序员」就是不断的学习不断的思考不断的尝试然后完成「开发」…… …… …… …… 只想依靠自己公司里的员工来开发「应用」是十分不现实的,所以「很多资料」的「公开」是非常有必要的
…………………………………………………………………………………………………………
这段对话很吸引人,至少「安卓系统」目前不支持「电脑」,或者说「安卓系统」对于电脑而言「太弱」,苹果也是手机使用IOS而电脑使用MACOS两套操作系统,微软曾经也开发过WINPHONE系统(微软的手机系统,跟微软出的电脑用的的WINDOWS系统完全不同)
同样这段话令人怀疑「它」的「真实性」…… 「万能操作系统」那种东西可能存在吗?一个弄不好就是「样样不行操作系统」了…… 因为电脑所用的操作系统与手机所用的操作系统,区别非常非常地大…… 而像智能穿戴和汽车明显又是完全不同的操作系统,智能穿戴重点在于「小巧」(比如APPLE WATCH使用的Watch OS),而车载系统明显是完全不同的东西,虽然目前市场上有CarPlay和Android Auto,但说实话并不理想,因为理想的车载系统需要将智能硬件,自动驾驶、云服务、IOT等技术深度结合,而索尼推出的XAV-AX8000完全就是娱乐系统(东西好是好,但感觉已经完全偏离普通操作系统的方向了,更像是一款娱乐软件,当然因为功能强大所以叫娱乐系统…… 兼容CarPlay和Android Auto)…… 无论如何,小生都不认为普通的「操作系统」能实现「车载系统」,「车载系统」的功能完全与「汽车」深深地绑定在了一起:比如导航、娱乐、警报、电话、电动车剩余余量、汽油车剩余油量和导航系统的匹配、联动等…… 或者还需要自动驾驶、查看周围路况、数据交互、云存储等功能
…………………………………………………………………………………………………………
一个系统能同时兼容电脑、手机、汽车、智能穿戴,这是件非常非常「不可思议」的事情…… …… 想一想如何才能将庞大的电脑操作系统放到小巧的智能穿戴设备上?想一想手机硬件同电脑硬件存在的「巨大差距」
总之,小生是被「鸿蒙系统」给「雷」到了
编程语言(programming language)是一种计算机和人都能识别的语言,能够让程序员准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。编程语言是计算机科学与应用中一个基础的工具,但截至目前市面上尚无中国企业主导开发的主流编程语言,在其他底层应用供给上的发展也落后于国际先进水平。
在本场大会上,最先出场的华为常务董事、消费者业务CEO、智能 汽车 解决方案BU CEO余承东在演讲中坦陈,到今天为止,华为已经经历了四轮制裁,自身在思考突围的方向。最伟大的企业是有生态的企业,而华为将与合作伙伴和开发者们一起打造生态。
校对 李铭