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

一、概述鸿蒙操作系统

  • 开发背景:

我国对独立自主的研发操作系统的迫切需求,研发面向万物互联网时代的全新的,独立的智能终端操作系统;美国制裁打压华为,谷歌可断供华为使用其GMS,之后禁止华为使用安卓11更新,华为早有准备,顺势推出自己的HMS和鸿蒙系统。

  • 需求:

数字化新时代的到来需要新的操作系统;5G物联网时代的到来对操作系统提出了新的要求;AIoT场景天然要求多设备智能协同,需要一个适用于各类型机器的操作系统;TB、PB级的大数据需要一个能够提供多机互联的操作系统;网络安全威胁呈现多元化、复杂化、频发高发趋势,需要一个足够安全的系统进行保障。

  • 开发历史:

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

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

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

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

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

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

  • 应该场景+发展趋势:

鸿蒙OS将作为华为迎接全场景体验时代到来的产物,率先应用在智能手表、智慧屏、车载设备、智能音箱等智能终端上,着力构建一个跨终端的融合共享生态,重塑安全可靠的运行环境,为消费者打造全场景智慧生活新体验。

物联网的飞速发展将带来下一个产业变革的历史性机遇,万物互联网新时代的机遇下,华为携手各类开发者共建鸿蒙生态,覆盖智能家居,智慧办公,运动健康,教育关怀等全场景多品类。

 

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

  • 什么是创新:(联系鸿蒙系统分析)

鸿蒙操作系统相比传统其他操作系统不同的地方:全场景、分布式、微内核、跨终端。鸿蒙系统是管理计算机软硬件资源的“大脑”,是实现硬件资源分配、实现应用软件功能的重要载体。通过各种智能终端设备(如手机、电脑、平板、手表等)的互联互通,突破了先前不同属性终端设备的“兼容性”难题。一方面,鸿蒙系统能在保障连接质量的情况下,跨设备的进行资源调用;另一方面,开发者无需过度关注物联网连接所带来的复杂调试过程,只需关注功能的逻辑和界面逻辑即可。

  • 代码复用与创新的关系:

软件开发行业是具有集体智慧的,在使用开源代码过程中可能会发现问题,对性能进行优化,提供新的改进思路。开源代码是通用的,鸿蒙操作系统没必要再去研发一个类似的出来,鸿蒙操作系统有自己独特的代码,可以将所有设备串联在一起。

 

三、代码风格分析

1.好的代码风格1 :

  • 代码:

"...

int v[MAXN_N],primes[MAXN_N];//primes用来存储素数

int main()

{

    int n,m=0;//m 是素数的数目

    cout << "输入 n 的值:" << endl;

    scanf("%d",&n);

    memset(v,0,sizeof(v));

    for(int i=2;i<=n;i++)

    {

        if(v[i]==0)//i是素数

        {

            v[i]=i;

            primes[++m]=i;

        }

        for(int j=1;j<=m;j++)

        {

            if(primes[j]>v[i]||primes[j]>n/i)break;//i有比primes[j]更小的质因子,或者超出范围

            v[i*primes[j]]=primes[j];//primes[j]是合数i*primes[j]的最小质因子

        }

    }

    for(int i=1;i<=m;i++) cout<<primes[i]<<" ";

    return 0;

}

..."

  • 分析:

可读性好,易理解,考虑到多种情况,执行效率高。

2.好的代码风格2 :

  • 代码:

"...

public class Test {

    public static void main(String args[]) {

        for(int i=1;i<=9;i++){

            for(int j=1;j<=i;j++){

                System.out.print(j+"*"+i+"="+i*j+" ");

            }

            System.out.println();

        }

    }

}

..."

  • 分析:

结构清晰,简单易懂,可读性强。

 

3.好的代码风格3:

  • 代码:

"...

 public static void main(String[] args) {

        ArrayList<Integer> numbers = new ArrayList<Integer>();

        numbers.add(12);

        numbers.add(8);

        numbers.add(2);

        numbers.add(23);

        Iterator<Integer> it = numbers.iterator();

        while(it.hasNext()) {

            Integer i = it.next();

            if(i < 10) {  

                it.remove();  // 删除小于 10 的元素

            }

        }

        System.out.println(numbers);

    }

  • ..."
  • 分析:

能快速访问集合,执行效率高。

 

4.不好的代码风格1:

  • 代码:

"...

int main()

{

    //外层循环控制行、换行

    //内层循环控制列、列的图形

    //中分的三角菱形

    //定义半菱形高度,即定义了菱形的大小

    int n ;

    cout<<"请输入半菱形高度"<<endl;

    cin >> n;

    //上半部分居中正三角n行

    for (int i = 0; i < n; i++)

    {

        for (int j = 0; j < n - i -1; j++)

        {

            cout<<" ";

        }

        for (int j = 0; j <= 2 * i; j++)

        {

            //每行第一个和最后一个外打印星号,其余打印空格,做成空心效果,下半部分相同

            if (j == 0 or j == 2 * i)

                cout<<"*";

            else

                cout<<" ";

        }

        cout<<endl;

    }

    //下半部分居中倒三角n-1行

    for (int i = 0; i < n - 1; i++)

    {

        for (int j = 0; j <= i; j++)

        {

            cout<<" ";

        }

        for (int j = 0; j <= 2 * ( n - i - 2 ); j++)

        {

            if (j == 0 or j == 2 * ( n - i - 2 ))

                cout<<"*";

            else

                cout<<" ";

        }

        cout<<endl;

    }

    return 0;

}

..."

  • 分析:

常规思路,没有简化方法,代码冗余,执行效率低。

 

posted @ 2021-09-14 17:50  492胡齐  阅读(121)  评论(0编辑  收藏  举报