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

 一、概述鸿蒙操作系统

  • 开发背景

(1)从电脑的互联网时代开始,微软的windows操作系统几乎垄断了全球的电脑系统,再到智能手机时代,谷歌的安卓系统,和苹果的ios系统双雄并力同样垄断了智能手机系统,他们有个共同的特点,就是都是国外的企业。

(2)美国东部时间5月15日,美国总统特朗普签署行政命令,要求美国进入“紧急状态”,在此状态之下,美国的企业不得使用对国家安全构成风险的企业所生产的电信设备。几乎所有报道此事的外媒都表示,此举意在针对中国华为的电信设备。

5月20日,安卓系统母公司Google宣布开始“贯彻”特朗普“禁华政策”,将暂停对华为安卓手机的服务。

(3)5月21日,华为消费者业务CEO余承东亲口承认华为已经在操作系统方面做好了“备胎”,并将最早于今年秋季面市。随后网上一度曝光了这款操作系统——华为鸿蒙。

  • 需求

(1)我国在操作性系统领域存在“卡脖子”挑战,在各行各业纷纷实行国产替代的大背景下,急切需要研发独立自主的操作系统。

(2)5G物联网时代的到来对操作系统提出了更高的要求,之前的操作系统无法实现万物智联全场景下的多机互联,这为Harmony OS实现弯道超车提供了历史机遇。

  • 开发历史

(1)2012年,华为开始规划自有操作系统“鸿蒙”。

(2)2019年5月24日,国家知识产权局商标局网站显示,华为已申请“华为鸿蒙”商标,申请日期是2018年8月24日,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。

(3)2019年5月17日,由任教授领导的华为操作系统团队开发了自主产权操作系统——鸿蒙。

(4)2019年8月9日,华为正式发布鸿蒙系统。同时余承东也表示,鸿蒙OS实行开源。

(5)2020年9月10日,华为鸿蒙系统升级至华为鸿蒙系统2.0版本,即HarmonyOS 2.0。余承东表示,2020年12月份将面向开发者提供鸿蒙2.0的beta(公测)版本。

(6)2021年6月2日晚间,华为在线上举办HarmonyOS 2及华为全场景新品发布会,会上,华为正式发布HarmonyOS 2及多款搭载HarmonyOS 2的新产品,新产品包括HUAWEI Mate 40系列新版本、Mate X2新版本、HUAWEI WATCH 3系列、HUAWEI MatePad Pro等手机、智能手表、平板产品。

  • 应用场景

(1)鸿蒙OS + 智慧屏

荣耀智慧屏作为当时首个搭载鸿蒙系统的终端产品,突破了传统电视的概念,搭载有鸿鹄818智慧芯片等三颗华为自研芯片和升降式AI摄像头,内置华为系统级视频通话功能,开创了大屏和手机的新交互方式,除了可联控智能家居,还能实现智慧双投、魔法闪投、魔法控屏等功能。

(2)鸿蒙OS + 智能座舱

可实现账号、多模输入、用户程序框架、元能力框架、多媒体、公共通信、车机业务启动恢复等功能,使得自动驾驶、导航、视频、音乐和通话等业务能够在智能座舱和其他设备之间实现无缝切换,让智能驾驶变得简单、有趣、享受。

(3)鸿蒙OS + 智能家电

目前,美的已经组建了鸿蒙的开发团队,并在去年推出了十余款搭载鸿蒙的全场景家电,包括洗碗机、智能灶等,可与鸿蒙系统进行底层数据互联。

(4)手机、PC

 

  • 发展趋势

(1)软件生态反哺硬件,开启IoT增量市场

① 迎合物联网发展,开辟增量市场:鸿蒙OS正是致力于解决消费者多终端割裂体 验的问题,实现多个IoT设备的互联互通,迎合物联网发展方向。

(2)微内核的全场景分布式OS——万物互联

① 鸿蒙是为物联网服务的操作系统,目标是实现万物互联和万物智能。

② 其重新定位人 - 设备 - 场景的关系,以人为中心,按场景把不同智能终端通过 HarmonyOS 的 系统级原生能力组建成一个超级终端,为智能全场景带来不同的体验。

③ 未来将逐步覆盖1+8+N全场景终端设备:“1”代表智能手机,“8”代表PC、平板、手表、智慧屏、AI音箱、AR/VR眼镜,“N”代表loT生态产品,为消费者衣食住行全场景提供智能智慧服务。

(2)软硬件共同发力,打造全场景生态

 ① 提出“一纵一横”策略,打造全场景设备圈 和生态产业链。

② Harmony OS开源:吸引大批应用厂商,有利于实现全场景覆盖。

③ 10万人才生态圈:目标全球开发者增长率接近100%

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

  • 什么是创新

所谓的创新,即是,既可以解释过去科学论点可以解决的问题,又可以解决过去科学论点无法解决的问题。

首先对于系统定位 :HarmonyOS基于微内核设计:一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统;而Android基于linux的宏内核设计:宏内核包含了操作系统绝大多数的功能和模块。对于系统设计HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层;Android是一种基于 Linux 的开放源代码软件栈,为各类设备和机型而创建。对于鸿蒙系统的优势,浙江大学教授黄鹂强认为主要体现在两个方面:第一,鸿蒙系统能在保障连接质量的情况下,跨设备的进行资源调用;第二,开发者无需过度关注物联网连接所带来的复杂调试过程,只需关注功能逻辑和界面逻辑即可。

其实我自己作为一名鸿蒙系统的体验者,有以下几点新的使用感受:(1)媲美iOS的流畅体验,使用过程明显丝滑许多;(2)有着更快捷的交互:“万能卡片”功能的出现极大地提升手机的使用效率;(3)至于分布式操作我还未使用过所以不做评价。以上也是我认为区别安卓的最大体验,鸿蒙系统的创新给用户带来的使用享受是不可忽视的。

在如今如此激烈的竞争中,新的产品源源不断的出现,同时也携带着多样的设计。若在不断的竞争中努力超越追赶,能挖掘自身的主导特点,并在改善中走向成熟,这才是适宜的创新战略。

  • 代码复用与创新的关系

其实鸿蒙系统是否套壳安卓系统的争议点即在于“代码复用”,鸿蒙OS虽然采用了部分AOSP(安卓开放源代码项目)的代码,但是AOSP非完全是谷歌创作的,也不是消费者普遍认知的Android系统。华为作为安卓开放联盟的成员,对AOSP的贡献良多,况且华为有意识地在"去谷歌化,取其精华为鸿蒙OS所用是挑不出毛病的。华为鸿蒙操作系统负责人王成录在今年1月的一次采访中就说:“今年10月,鸿蒙第三阶段的开源代码会上线,来自AOSP社区的、由谷歌贡献的代码几乎没有了。”所以这很明显并非所谓简单的“代码复用”,而是许多网友们提到的“二次创新”。

其次,鸿蒙采用了AOSP的代码,更大程度上是为了适应市场的生态体系,在安卓和iOS在国内盛行了十多年的今天,如果突然出现了一个不兼容的,完全陌生的系统,那么现有的手机用户其实是很难接受的。况且,如果让国内同行都兼容鸿蒙的话,他们需要做的工作是:基于 Openharmony 2 开发自己的 UI,这显然是一个短期无法实现的目标。鸿蒙作为一个新生的系统,选择了在适应整个生态系统的同时,逐步发展自己的系统特点,这需要时间。

三、代码风格分析

1.好的代码风格1 :

° 代码示例:

"···

 # Aligned with opening delimiter
       foo = long_function_name(var_one, var_two,
                                var_three, var_four)

       # Aligned with opening delimiter in a dictionary
       foo = {
           long_dictionary_key: value1 +
                                value2,
           ...
       }

       # 4-space hanging indent; nothing on first line
       foo = long_function_name(
           var_one, var_two, var_three,
           var_four)

       # 4-space hanging indent in a dictionary
       foo = {
           long_dictionary_key:
               long_dictionary_value,
           ...
       }

···”

° 分析:

(1)用4个空格来缩进代码

(2)绝对不要用tab,也不要tab和空格混用.。对于行连接的情况,你应该要么垂直对齐换行的元素(见 行长度 部分的示例),或者使用4空格的悬挂式缩进(这时第一行不应该有参数)

 

2.好的代码风格2 :

“···

Yes: class SampleClass(object):
         pass


     class OuterClass(object):

         class InnerClass(object):
             pass


     class ChildClass(ParentClass):
         """Explicitly inherits from another class already."""
No: class SampleClass:

···”

° 分析:

(1)如果一个类不继承自其它类, 就显式的从object继承, 嵌套类也一样。

(2)继承自 object 是为了使属性(properties)正常工作,并且这样可以保护你的代码,潜在不兼容性影响。这样做也定义了一些特殊的方法, 这些方法实现了对象的默认语义,包括 __new__, __init__, __delattr__, __getattribute__, __setattr__,__hash__,__repr__, and __str__。

 

3.不好的代码风格1 :

“···

if (x):
         bar()
     if not(x):
         bar()
     return (foo)

···”

° 分析:

宁缺毋滥的使用括号,除非是用于实现行连接,则不要在返回语句或条件语句中使用括号, 不过在元组两边使用括号是可以的。

 

4.不好的代码风格2:

“···

 x = ‘%s%s‘ % (a, b)  # use + in this case
    x = ‘{}{}‘.format(a, b)  # use + in this case
    x = imperative + ‘, ‘ + expletive + ‘!‘
    x = ‘name: ‘ + name + ‘; score: ‘ + str(n)

···”

° 分析:

即使参数都是字符串,使用%操作符或者格式化方法格式化字符串。 不过也不能一概而论,你需要在+和%之间好好判定。

 

 

 

posted @ 2021-09-19 01:12  豆里又没钱了  阅读(39)  评论(0编辑  收藏  举报