一、概述鸿蒙操作系统

  • 开发背景:

因美国政府的制裁,华为急需开发自家系统。一方面芯片的备胎全部转正,另一方面注册了自己的操作系统——“鸿蒙”。

  • 需求:

(1)、新数字化时代需要新的操作系统;

(2)、网络安全威胁呈现多元化、复杂化、频发高发趋势,需要一个足够安全的系统进行保障;

(3)、AloT场景天然要求多设备智能协同,因此需要一个适合各类型机器的操作系统;

(4)、中国面临严峻的挑战,独立自主的研发操作系统是迫切的需要;

  (5)、TB、PB大数据需要一个能够提供多机互联的操作系统。

  • 开发历史:

2012年9月,在华为“2012诺亚方舟实验室”专家座谈会上,任正非提出要做终端操作系统,以防范于未然要在“断了我们粮食的时候,备份系统要能用得上”,而这就是“鸿蒙”操作系统的起点。

2017年,鸿蒙OS内核1.0完成技术验证,并逐步开展内核2.0研发。

2018年,鸿蒙内核2.0已被应用于终端TEE。

2019年,鸿蒙OS 1.0版本正式亮相,1.0版本基于开源框架,其关键模块均为自研,同时具备分布式架构、方舟编译器、确定时延引擎、TEE微内核形式化验证以及多终端开发ID(Beta)。

2021年,鸿蒙操作系统正式开启大规模商用。

  • 应用场景:

智慧屏、智能座舱、智能家电、摄像头、扫地机、智能称

  • 发展趋势:

鸿蒙系统让国内的手机市场流动起来,让国内手机市场真正重视研发,华为鸿蒙系统采用微内核,顺应了当下互联网和物联网的发展潮流,未来可期。

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

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

 创新是指创造新的,具有创造性,有新意的。而就关于鸿蒙系统是否套壳这件事情,鸿蒙系统相比于安卓系统不仅仅更加流畅,而且长时间使用不易卡顿,加强了互联功能。并且鸿蒙系统兼容性,安卓系统上正常使用的软件在鸿蒙系统上也能正常使用。之所以鸿蒙系统兼容安卓软件,是因为鸿蒙系统很多代码都是基于AOSP的,任何组织或个人能够中使用安卓的基础源代码,并且代码不全是谷歌写的。华为鸿蒙系统负责人也称鸿蒙系统将迎来几乎没有来自ASOP社区谷歌贡献代码。鸿蒙系统是比安卓系统的改进,加强,不能说是完全套壳。

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

 代码复用是指同一份代码在需要的时候可以被重复利用,代码复用最简单的是直接的使用该类的一个对象,也可以是将一个类的对象置于新的类之中。代码的复用也是对原先代码的再一次加工,因此也算是在原先基础上的创新。

三、代码风格分析

  1. 好的代码风格1

°代码:

“···

复制代码
static int aa = 0;
    @Test
    public void test(){
        long start = System.currentTimeMillis();
 
        for (int i=0;i<1000000000;i++){
            aa++;
        }
        long useTime = System.currentTimeMillis()-start;
        System.out.println("useTime:"+useTime);
    }
复制代码

 

···“

  • 分析:逻辑清晰,使用类的静态变量,进一步优化代码

        2.好的代码风格2

°代码:

复制代码
public void test(){
        long start = System.currentTimeMillis();
        int aa = 0;
        for (int i=0;i<1000000000;i++){
            aa<<=1;
            aa>>=1;
        }
        long useTime = System.currentTimeMillis()-start;
        System.out.println("useTime:"+useTime);
    }
复制代码

 

  • 分析:使用位运算比使用乘除法运算更优化系统速度,效率更高。逻辑清晰,更利于理解。

       3.不好的代码风格1

°代码:

“···

复制代码
if (productClass === Card && action === BUYCARD)

 {

seneca.sendSms(smsData, params)
}
if (productClass === Card && action === TURNCARD)

 {
seneca.patchStatus(productId)
}
if (productClass === Card && action === REPLACE) 

{
seneca.changeStatus( crm , Card )
}
if (productClass === Lesson )

 {
seneca.changeStatus( course , Lesson )
}
复制代码

 

···"

  • 分析:每个判断都要执行一次,显得很麻烦,没有必要。

       4.不好的代码风格2

°代码:

复制代码
public void testExpression(){
        long start = System.currentTimeMillis();
        double d = Math.random();
        double a = Math.random();
        double b = Math.random();
        double e = Math.random();

        double x,y;
        for(int i=0;i<10000000;i++){
            x = d*a*b/3*4*a;
            y = e*a*b/3*4*a;
        }
        long useTime = System.currentTimeMillis()-start;
        System.out.println("useTime:"+useTime);

    }
复制代码

 

  • 分析:x,y 两个计算表达式完全相同,多次运算造成重复。
posted on 2021-09-17 14:39  略?  阅读(167)  评论(0编辑  收藏  举报