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

一、概述鸿蒙操作系统

  •开发背景

 自技术战爆发之后,华为在芯片与操作系统受限的背景下推出了主打物联网时代的“鸿蒙系统”,在手机芯片受到限制之后,华为手机业务受到了巨大的冲击,手机每年能为华为提供不少的现金流,华为势必需要寻找新的突破点

  •需求

 鸿蒙系统是面向未来的系统,物联网时代的系统,覆盖的领域非常多。工业的发展趋势很容易判断,但是人的需求却不像工业一样是循序渐进的变化,而是需要天才的眼光和判断力去寻找挖掘,是一种质的突变。网络系统的未来要求是“超高速、低时延”,这是个技术要求问题,华为在这个领域是专家,但是当网络技术进入“无人区”之后,创始人任正非也开始迷茫。同理,当鸿蒙系统从一个工业技术系统迈向手机操作系统时,它服务的对象不再是千千万万个有统一标准的连网设备,而是千千万万有不同想法的人,之间的区别绝非仅仅是技术的迁移过渡,而是对手机的体验需求,对未来网络的需求,对人类自身情感的更深刻理解的综合判断。

  •开发历史

  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版本
 
 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日正式举办鸿蒙产品发布会, 预计此前只用于智慧屏、可穿戴设备等产品的鸿蒙操作系统将在更多产品品类上使用。
  应用场景
 HarmonyOS是“第一个适用于所有场景的基于微内核的分布式操作系统”,它可以运行在智能手机、智能扬声器、计算机、智能手表、无线耳塞、汽车与平板电脑上,其支持的RAM大小从干字节到千兆字节不等。 
     发展趋势
 
 鸿蒙OS是一个面向物联网时代的操作系统,超级终端是鸿蒙OS中的重要概念。鸿蒙OS希望未来能够实现万物的智能互联功能,它通过将任意个孤立设备连接成“超级终端”,提供了流畅、安全的无缝衔接跨平台能力,实现了“超级终端”内硬件设备之间的信息共享与服务共享,让用户能够像使用一台设备一样任意调用超级终端内的设备与服务。

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

  •什么是创新以及代码复用与创新的关系

 我认为创新就是根据现有的资源,来创造出不同于其他产品,具有自己鲜明特点和优势的一项活动。很多人都说鸿蒙是AOSP套壳,那么我们首先得明白什么是AOSP?AOSP是"Android Open Source Project"的缩写,中文意为"安卓开放源代码项目",AOSP是基于Linux开的。AOSP 是由谷歌主导的一个开源项目,通过AOSP可以编译出一个比较纯净的,可以用于智能设备的操作系统。而Android,尤其是首字母A大写的时候,是属于谷歌的一个商标,不属于AOSP 所有,未经允许不能随意在商业产品中fAndroid系统是开源的AOSP和额外的闭源部分(其中包括GMS )的组合而成,所以可以认为Android=AOSP+GMS。网友有一个通俗的比喻: AOSP是个毛坯房,Android是个精装房。由于AOSP是开源的,一些第三方机构就可以以AOSP为基础,做出自己的改进,并对不同机型适配,然后自己取一个名比如小米的MIUI、华为的EMUI、或者魅族的 Flyme。所以,华为只是“站在巨人的肩膀上”创造了属于自己的操作系统。

三、代码风格分析

  •好的代码风格

  代码

  if (list instanceof RandomAccess) {
    for (int i = 0; i < list.size(); i++){}
    }else {

      Iterator<?> iterator = list.iterable();
      while (iterator.hasNext()) {
        iterator.next()
    }
}
  分析:实现RandomAccess接口的类实例,假如是随机访问的,使用普通for循环效率将高于使用foreach循环;反过来,如果是顺序访问的,则使用Iterator会效率更高。

  •好的代码风格

  代码

  int a = 2;

  int b = 16;

  System.err.println(a<<5);//等同于 2*2*2*2*2*2 即2*32

  System.err.println(b>>2);//等同于 16/2/2 即16/4

  分析:该代码使用了位移运算,因为位移是基于2进制的算法,任何运算都会转换成二进制再运算,那我们直接使用二进制就会提升一部分效率。

  •不好的代码

  代码

  public void noTryCatchOperateInLoop(long times){

        long before = System.currentTimeMillis();

          for (int i = 0; i < times; i++){
            new Object();
      }
    long after = System.currentTimeMillis();
    System.out.println("循环耗时:" + (after - before) + "ms");
}

  分析:该代码在循环中使用NEW关键词来创造对象,导致每次循环都要创造新的对象从而加大了代码运行的时间并且创建对象也占用了不少内存

 

posted @ 2021-09-18 12:33  znhy06  阅读(118)  评论(0编辑  收藏  举报