现在华为和肖战一样,根本就不能讨论,比恐怖分子还厉害,至少恐怖分子还可以谈判。 鸿蒙操作系统(HarmonyOS)出来后主要有两派观点:一派认为鸿蒙操作系统是“自主的全场景分布式系统”,是国产之光,这一派以非技术人士为主;另一派则认为鸿蒙操作系统是“Android套壳”,是挂羊头卖狗肉,这一派以技术人士为主。 两派各执一词,吵得不可开交。 今天咱们就把华为鸿蒙掰开了揉碎了看一看,不吹,也不黑。 在评价之前,咱们得先厘清一下概念。现在华为鸿蒙其实包含两个部分:一个是大家熟知的手机鸿蒙操作系统;另一个则是万物鸿蒙。 这两个部分相互独立,但又起到相互协同的作用。 首先我们先说下这个万物鸿蒙。 华为的万物鸿蒙是基于LiteOS的,属于为内核架构,这项技术诞生于很早之前,那时候华为已经开始研发当时很火爆的万物互联操作系统,也就是AIoT,华为采用的是LiteOS,核心优点就是Lite,非常轻量,体积小、省电,因此这系统主要是应用在一些智能设备上,比如摄像头、门铃、体温计等设备里。 在万物互联领域,LiteOS对标谷歌的Fuchsia、小米的Vela、腾讯的TencentOS Tiny以及阿里巴巴的AliOS。 厘清了万物鸿蒙,那么下一步咱们重点开始讲手机鸿蒙,也就是华为发布的HarmonyOS。 因为HarmonyOS源码开源,知乎上有各位大神已经把HarmonyOS的源码扒完了,有兴趣的可以自行查阅,比较技术流,我挑几个重点说一下: 1. 目录结构和Android雷同,只是改了后缀,而且再将.hap的后缀改回.apk可以直接用Android Studio打开。 2.主代码主要干了一件事:重新定义了一套新的UI,这就是为啥鸿蒙看起来和苹果似的原因,这是华为重写的。 3. 华为最关键的三个点是加入了分布式任务调度、分布式数据服务、分布式文件服务,从这里本来可以看到华为到底做了哪些优化,但是这几部分源码,华为在编译的时候全部隐藏掉了,关键代码一律不给看!Java开发中,这种情况比较少见,只有一些重要的、底层的API中可能会出现,不过这个ohos.jar包源码全部隐藏还是第一次见!HarmonyOS到底有多怕被人发现它的小秘密。 4. 总体来看,HarmonyOS = 原有的Android系统 – GMS + HMS + 分布式软总线 + 以Ability为核心的应用开发框架。 下面,我可以直接给出结论了。 华为手机鸿蒙操作系统,是基于ASOP开发的,什么是ASOP呢?它的全称是:Android Open Source Project,翻译成中文叫做:安卓开源项目。 先讲讲这个Android Open Source Project和安卓的关系吧。 目前,基于Android的手机操作系统一般都有三层结构: 第一层:Linux内核。 Linux系统是绝大多数开源软件的内核,比如现在的信创最火爆的麒麟Linux系统、谷歌的Chrome、Android等等,内核都是Linux。 第二层:Android Open Source Project。 Android Open Source Project就是基于Linux系统,为手机场景提供特定代码,它是Android的地基。 有趣的是,谷歌允许你在Android Open Source Project之上套壳,穿上一身新衣服,你就可以定制成为你需要的产品,谷歌公开了Android Open Source Project的代码,这就意味着这是个开源的东西,而如果你要用这玩意来定制你的东西,也意味着你的东西也必须得开源。 所以华为手机鸿蒙操作系统号称开源,其实不管华为主观意愿是否希望开源,华为都不得不开源,因为你基于Android Open Source Project开源系统开发,你就得遵守开源的规矩,明白了吗,所以,不要无脑神话开源行为,有时候是被迫,拿人手短啊,吃人嘴软啊,如果真的硬气,以后可以自己搭建一套HUAWEI Open Source Project,那时候再开源,那肯定没有丝毫争议和质疑。 第三层:Android操作系统。 谷歌自己是在Android Open Source Project之上加了GMS增强包,因此,目前全世界主流的Android操作系统应该是Android Open Source Project+GMS。 但是尴尬的是,国内是不被允许使用GMS的,因此呢,各大手机厂商就只能在谷歌裸机版本的Android Open Source Project上套壳,华为套完壳叫EMUI,小米套完壳叫MIUI,魅族叫Flyme,就这么个事。所以,从这个意义上来说,谷歌的安卓,华为的EMUI,小米的MIUI,魅族的Flyme,是一类东西。都是在Android Open Source Project上加了些自己的东西。 而目前绝大多数App供应商和开发商都是基于Android Open Source Project来开发App的,因此,只要你们的手机系统是基于Android Open Source Project的,那么就能兼容大部分App,这也是为什么华为手机鸿蒙操作系统出来之后,能让绝大多数App瞬间无缝衔接的原因。 这种闭门造车、出门合辙的事不是奇迹,都是事出有因。 华为手机鸿蒙,相较于之前做的EMUI,有了很大的升级,如果之前的EMUI是辆八手奥拓的话,现在的鸿蒙已经是全新劳斯莱斯了。 那么,鸿蒙到底是“自主的全场景分布式系统”还是“Android套壳”呢? 这个问题的关键,是看你说的Android,指的是什么。 但这个答案还不是我希望的,我想通过源码拆解获得一个准确答案,究竟是不是套壳。 通过我阅读技术流的源码拆解,我发现我没办法回答这个问题,你说它是“自主的全场景分布式系统”吧,它确实是从Android发展来的,而且底层代码还是Android;但是你说是“Android套壳”吧,它确实又有一些明显区别于Android的特色性差异。 因此,这里就演变为一个哲学问题了:忒修斯悖论。 忒修斯悖论是说有一艘在海上航行了几百年的船,期间不沉不坏是因为不间断的维修和替换部件。只要一块木板腐烂了,它就会被替换掉,以此类推,直到所有的功能部件都不是最开始的那些了。问题是,最终产生的这艘船是否还是原来的那艘特修斯之船,还是一艘完全不同的船?如果不是原来的船,那么在什么时候它不再是原来的船了? 华为鸿蒙如果换了Android一行代码,那么鸿蒙是“Android套壳”吗? 华为鸿蒙如果换了Android一个模块,那么鸿蒙是“Android套壳”吗? 华为鸿蒙若给Android加了一个模块,那么鸿蒙是“Android套壳”吗? 针对于忒修斯悖论,全球上百代哲学家争论了2000年,至今还没有明确的答案,我觉得就凭咱们这点哲学底蕴,很难在学术层面得出结论了,索性搁置争议不讨论。 因为话说回来,如果基于AOSP套壳,可以被称为中国自主开发的操作系统的话,那么小米的MIUI,魅族的Flyme也应该算中国自主开发的操作系统。 不管你个人觉得哪个好用,喜欢哪个,但他们本质上是一种东西,没有根本的差别。 这几乎是不可能的,谁会将自己的发展命脉捆绑在一个友商手里呢,友商如果偷着给自己的华为手机定制鸿蒙系统,你不就傻了吗,哪天不开心,不给你用了,你不就直接死了吗? 当然,华为也不会让他们用手机鸿蒙,这是各家手机厂家的核心差异所在。 好了,我们总结一下,什么是华为鸿蒙? 其实就是万物鸿蒙和手机鸿蒙的统称,很容易让人迷惑,他们之间有很多互动,比如手机音乐可以音响上放,这是手机连接了智能家居设施,小米之类的都能实现,只是基于通信协议层面的实现而已,你用苹果手机加上OPPO的智能音箱也可以实现,蓝牙就行呗,多大点事? 所以华为现在的万物鸿蒙+手机鸿蒙其他厂商也都有,比如小米的是Vela+MIUI,谷歌则是Fuchsia+Android Q,而阿里巴巴的则是AliOS Things+AliOS。 只是大家现在没有把这两套东西绑定起一个统一的名字,现在华为有意无意地将两者混淆,这点不是很厚道。 华为鸿蒙确实是个手机操作系统,但是之前华为多次公开场合都是信誓旦旦地说要突破卡脖子的问题,但是现在华为自己都站出来承认是基于Android Open Source Project了,但是华为自来水海军们却还不承认,甚至还要引导一众海军鼓吹这是中国人自己的操作系统,不觉得有点尴尬吗? |
E_mail: redchinacn@gmail.com
2010-2011http://redchinacn.net