阅读 81

值得一谈的鸿蒙2.0,赶紧撸一下hello world


一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统 。现已开源,名为OpenHarmony。

2019年8月9日,华为在HDC开发者大会上正式发布鸿蒙系统。

2020年9月10日,华为在HDC开发者大会上如约发布鸿蒙 2.0,并面向应用开发者发布Beta版本。明年鸿蒙将全面支持华为手机。

值得一提的是,鸿蒙HarmonyOS正式开源,今年年底首先对国内开发者发布针对智能手机的HarmonyOS beta版本。

余承东强调,全球第三大移动应用生态正在破茧而出。「华为要构筑开放生态,将核心技术、软硬件能力全面开放给开发者和生态伙伴。」

 据介绍,基于鸿蒙操作系统的HiLink 智能硬件生态,目前已经有 800 家合作伙伴,其中 HiCar 已合作 150 余款车,2021年计划预装超过 500 万台。HMS Core 已经发展到 5.0 版本,超过 9.6 万个应用集成 HMS Core,活跃用户 4.9 亿。

华为承受打压众所周知,但在大会上,余承东表示,即使遭受三轮打击,华为依然实现增长。今年上半年,其消费者业务销售收入 2558 亿元,消费者业务手机全球发货量达到 1.05 亿。

华为承受打压众所周知,但在大会上,余承东表示,即使遭受三轮打击,华为依然实现增长。今年上半年,其消费者业务销售收入 2558 亿元,消费者业务手机全球发货量达到 1.05 亿。

 

其实说了这么多,也只是一个噱头,未来的路还很长,我经常在blink里面看到有人投票说,华为鸿蒙操作系统将取代安卓操作系统,我先否定一下。发展好了最多也只是三足鼎立的局面,不可能取代,至于为什么?大家评论区吃瓜吧。

源码托管在国内知名开源平台码云上gitee.com/openharmony

作为程序员,我也下载了源码,研究了两个晚上,顺带写了一个 hello world 程序。

官方介绍说是“轻量级 JS 核心开发框架”。

当我看完源码后发现它确实轻。其核心代码只有 5 个 js 文件。

·  runtime-core\src\core\index.js

·  runtime-core\src\observer\observer.js

·  runtime-core\src\observer\subject.js

·  runtime-core\src\observer\utils.js

·  runtime-core\src\profiler\index.js

从名字可以看出来,这些代码实现了一个观察者模式。它实现了一个非常轻量级的 MVVM 模式(后端理解为MVC就好)。通过使用和 vue2 相似的属性劫持技术实现了响应式系统。

当我们开发的时候,通过Toolkit 将开发者编写的 HML、CSS 和 JS 文件编译打包成 JS Bundle,然后再将 JS Bundle 解析运行成C++ native UI 的 View 组件进行渲染。

“通过支持三方开发者使用声明式的API 进行应用开发,以数据驱动视图变化,避免了大量的视图操作,大大降低了应用开发难度,提升开发者开发体验”。基本上就是一个小程序式的开发体验。

jsruntime选择了 JerryScript是用于物联网的超轻量 JavaScript 引擎。它能够在内存少于 64 KB 的设备上执行 ECMAScript 5.1 源代码。这也是为什么在文档中说鸿蒙 JS 框架支持 ECMAScript 5.1 的原因。

 SDK中的那些包仅仅是做 loader用的,大概是为了在 webpack 打包时解析 htm 组件用的,将 html 的 template 编译为 js 代码。

 

 

华为宣传的鸿蒙四大特性:

分布式架构首次用于终端OS,实现跨终端无缝协同体验;确定时延引擎和高性能IPC,技术实现系统天生流畅;基于微内核架构重塑终端设备可信安全;通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享

分布式架构、跨终端无缝协同体验”是说,华为搞了一个很妙的底层OS(“分布式OS架构”和“分布式软总线技术”,公共通信平台、分布式数据管理、分布式能力调度和虚拟外设四大能力),把不同终端的特性都归纳好了,能容纳在统一的架构里。这样对开发者和消费者来说,不同的终端产品能在一个平台里统一开发使用了。为什么能这么做,是因为鸿蒙OS重新设计了整个架构,安卓和iOS办不到。这是从系统架构层面说事。

确定时延引擎和高性能IPC技术实现系统天生流畅”是说,鸿蒙搞了很妙的进程调度算法,进程通信机制天然就好。进程就是不同程序的任务,一个手机上面几个APP同时跑,需要调度算法来分配系统时间轮换着运行。“确定时延”就是调度算法能保证,进程不会因CPU被其它进程占据而卡死,总能在规定时间内轮到自己顺利执行。因为架构是新的,所以应用响应时间能降低四分之一,安卓和iOS因为架构的原因办不到。IPC就是进程间通信(Inter Process Communication),进程之间非常需要通信传递消息和数据来协同运作。因为微内核架构好,鸿蒙的IPC效率能提升5倍,安卓和iOS受系统架构限制办不到。这是对关心性能的用户宣传。

基于微内核架构重塑终端设备可信安全” 是说,鸿蒙系统更安全,因为内核代码少,出现漏洞的机会也就极少,不象安卓和iOS那样代码一堆容易找漏洞。苹果悬赏找到一个漏洞100万美元,是让人来攻击。鸿蒙对整个系统,设计了一套安全机制,只要按照这套机制做,安全性能就能极大提升。这套安全机制不是基于攻击测试的,而是基于数学模型算法的,能形式化证明理论上就是安全的,比传统安全验证方式要高一个档次。这对关心系统安全的用户很有吸引力。

通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享” ,是呼应第一个特性。第一个特性是说,鸿蒙从系统架构上,让跨终端统一开发成为可能。统一IDE是说,华为开发工具也准备好了,这个以方舟编译器为核心的工具包非常牛,可视化编程,以后还几种语言混着开发都能统一编译,直接出高效机器码。总之意思就是开发方便高效了,比现在安卓和iOS的开发工具效率更高。这是对程序员开发者喊话。

从这些鸿蒙的“特性”可以看出,鸿蒙真的是面向未来的下一代操作系统,有非常多的优势。鸿蒙不是安卓或者iOS在手机上的替代品,而是跨平台的新系统。起码在立意上,鸿蒙真不是对标安卓或者iOS,而是对标谷歌的Fuchsia(也是微内核的)。通过鸿蒙的四大特性,也可以了解为什么谷歌要搞Fuchsia,因为安卓架构的技术潜力有限,要搞下一代操作系统只能重新搞全新生态系统。

 

 

最后,收集几个大家可能会有疑问的槽点,欢迎在评论区留言!

1. 线下华为各个型号普遍涨价了,断供会影响?

2. 华为鸿蒙系统和安卓操作系统,你更看好那个?

3. 未来三年会不会有超过一半的国内厂商用上HMS?

4. 大家觉得鸿蒙系统的未来前景如何?

5. 作为程序员,有兴趣用华为的开发平台工具DecEco Studio体验写一个“Hello world”?

 

文章分类
前端
文章标签