软件工程2021:第2次作业—— 谈谈鸿蒙操作系统

一、概述鸿蒙操作系统

  • 开发背景

为了打破国外操作系统霸占国产电子产品的局面,鸿蒙系统应运而生。

  • 需求

鸿蒙OS发布于2019年,但是最早可以追溯到2012年,彼时任正非与华为2012实验室的专家座谈时提出,华为要自研操作系统做备份,哪怕几十年都用不上也一定要做。否则一旦操作系统“断粮”对华为就是数千亿美元的损失。华为根据实际情况,研发鸿蒙操作系统,满足不同用户的不同需求,打破对国外产品的过度依赖。

  • 开发历史
2012年,华为开始规划自有操作系统“鸿蒙”。
2019年5月17日,由任正非领导的华为操作系统团队开发自主产权操作系统——鸿蒙。
2019年5月24日,国家知识产权局商标局网站显示,华为已申请“华为鸿蒙”商标,申请日期是2018年8月24日,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。
2019年8月9日,华为正式发布鸿蒙系统。同时余承东也表示,鸿蒙OS实行开源。
2020年8月,在中国信息化百人会2020年峰会上,华为消费者业务CEO余承东表示,鸿蒙截至2020年8月已经应用到华为智慧屏、华为手表上,未来有信心应用到1+8+N全场景终端设备上。2020年9月10日,华为鸿蒙系统升级至华为鸿蒙系统2.0版本,即HarmonyOS 2.0,并面向128KB-128MB终端设备开源。余承东表示,2020年12月份将面向开发者提供鸿蒙2.0的beta版本。2020年12月16日,华为正式发布HarmonyOS 2.0手机开发者Beta版本。华为消费者业务软件部总裁王成录表示,2020年已有美的、九阳、老板电器、海雀科技搭载鸿蒙 OS,2021年的目标是覆盖40+主流品牌1亿台以上设备。
2021年2月22日晚,华为正式宣布HarmonyOS将于4月上线,华为Mate X2将首批升级。 
2021年3月,华为消费者业务软件部总裁、鸿蒙操作系统负责人王成录表示,2021年搭载鸿蒙操作系统的物联网设备(手机、Pad、手表、智慧屏、音箱等智慧物联产品)有望达到3亿台,其中手机将超过2亿台,将力争让鸿蒙生态的市场份额达到16%。
2021年4月22日,华为 HarmonyOS 应用开发在线体验网站现已上线。
2021年5月18日,华为宣布华为HiLink将与Harmony OS统一为Harmony OS Connect。
2021年5月25日,华为技术有限公司对外公布,计划在6月2日正式举办鸿蒙产品发布会, 预计此前只用于智慧屏、可穿戴设备等产品的鸿蒙操作系统将在更多产品品类上使用。 5月28日,魅族科技在微博上发出一张全新海报,其圆形灯饰图案下方配有“你好,鸿蒙”字样。在华为公布鸿蒙系统之后,魅族成为首家宣布接入鸿蒙系统的手机厂商。
2021年6月2日晚,华为正式发布HarmonyOS 2及多款搭载HarmonyOS 2的新产品。这也意味着“搭载HarmonyOS(鸿蒙)的手机”已经变成面向市场的正式产品。6月9日,“HarmonyOS Sans”公开上线,可以免费商用
2021年6月3日,我爱我家宣布,在业内率先实现基于鸿蒙系统的APP应用支持。
2021年7月29日晚,华为举办新品发布会表示,从6月2日开启升级后,到目前为止,鸿蒙系统升级用户已突破4000万。
  • 应用场景

华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,可以运行在智能手机、智能扬声器、计算机、智能手表、无线耳塞、汽车与平板电脑上,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。

  • 发展趋势

华为的鸿蒙操作系统宣告问世,在全球引起反响。人们普遍相信,这款中国电信巨头打造的操作系统在技术上是先进的,并且具有逐渐建立起自己生态的成长力。它的诞生将拉开永久性改变操作系统全球格局的序幕。它不是要在安卓和IOS已经垄断的市场上分一杯羹,而是瞄准万物互联的更广阔市场。

二、关于鸿蒙是否套壳的争议

  • 什么是创新

创新是指以现有的思维模式提出有别于常规或常人思路的见解为导向,利用现有的知识和物质,在特定的环境中,本着理想化需要或为满足社会需求,而改进或创造新的事物、方法、元素、路径、环境,并能获得一定有益效果的行为。以鸿蒙系统为例,它在以下方面有创新之处:分布式架构首次用于终端OS,实现跨终端无缝协同体验;确定时延引擎和高性能IPC技术实现系统天生流畅;基于微内核架构重塑终端设备可信安全。而有些言论认为鸿蒙是套皮安卓,其实不然,鸿蒙OS的部分代码基于ASOP,在可以兼容大部分安卓软件的基础上进行相关技术的创新,在不大量流失从前的安卓系统的用户基础上保证用户体验,推广自己的系统。

  • 代码复用与创新的关系

代码复用可以降低软件开发成本、增加代码的可靠性并提高它们的一致性。以鸿蒙系统为例,鸿蒙系统基于ASOP这个开源项目进行二次开发,在保证了系统基本的稳定性的同时一定程度上能够降低开发难度,同时也保证了老安卓用户的使用体验。

三、代码风格分析 

1.好的代码风格1:

代码:

 1 Observer.prototype.update = function() {
 2  const lastValue = this._lastValue;
 3  const nextValue = this._get();
 4  const context = this._ctx;
 5  const meta = this._meta;
 6  
 7  if (nextValue !== lastValue || canObserve(nextValue)) {
 8  this._fn.call(context, nextValue, lastValue, meta);
 9  this._lastValue = nextValue;
10  }
11 };

分析:实现了数据更新时的脏检查(Dirty checking)机制。比较更新后的值和当前值,如果不同,那么就执行回调函数。如果值相同,那么再检查设置
的新值是否可以被观察,再决定到底要不要执行回调函数。同时在5、7两行之间空出一行,使代码块更加美观,方便后续检查。

 

2.好的代码风格2:

代码:

 1 // vfs 接口实现
 2   static const struct file_operations_vfs g_memDevOps = {
 3       MemOpen,  /* open */
 4       MemClose, /* close */
 5       MemRead,  /* read */
 6       MemWrite, /* write */
 7       NULL,      /* seek */
 8       NULL,      /* ioctl */
 9       MemMap,   /* mmap */
10   #ifndef CONFIG_DISABLE_POLL
11       NULL,      /* poll */
12   #endif
13       NULL,      /* unlink */
14   };
分析:定义结构体时善用注释,可以在之后的编写中防止对所写代码功能的混淆,也方便多人团队协作的效率提高。

 

3.好的代码风格3:

代码:

 1 if (!err) {
 2             ss.read(new ArrayBuffer(4096), {}, function (err, buf, readLen) {
 3                 if (!err) {
 4                     console.log('readLen: ' + readLen)
 5                     console.log('data: ' + String.fromCharCode.apply(null, new Uint8Array(buf)))
 6                 } else {
 7                     console.log('Cannot read from the stream ' + err)
 8                 }
 9                 ss.close(function (err) {
10                     console.log(`Stream is ${err ? 'not' : ''}closed`)
11                 });
12             })
13         } else {
14             console.log('Cannot open the stream ' + err)
15         }
分析:嵌套使用if else语句时符合空格标准,代码块干净易懂,使用了驼峰命名法。

 

posted @ 2021-09-18 21:38  HerchWu  阅读(29)  评论(0编辑  收藏  举报