为鸿蒙说两句公道话

今天看了鸿蒙系统的评测,看完后我感觉很欣慰,为什么这么说 ? 不是很多人吐槽鸿蒙是 Android 套壳吗 ?或者叫鸿蒙 UI 吗?说鸿蒙没有自己的核心技术。看了鸿蒙系统的设计,底层确实是基于安卓的 AOSP 接口没有错,但是我倒是觉得系统设计者应该是一个务实的家伙。因为至少没有被不理智的民族主义冲昏头脑,没有蠢到真正的从零开始设计一套新的系统,而是可以让用户没有学习成本、无痛的切换到一套新的操作系统上面。

如果不是共用底层,那么你基本不可能通过在线升级把 Android 升级为 鸿蒙 OS,还能兼容 Android 的海量应用(你想想你的 Android 可以在线升级为 IOS 吗?)等等……

为什么说无痛迁移这么重要 ?因为如果真正的开发一套全新内核的操作系统,会遇到以下这些无法解决的问题:

  • 没有生态:如果不跟安卓共用底层,那么无法兼容目前安卓海量的应用程序,一个没有应用程序的系统,再强大再好用,你会切换吗 ?
  • 不稳定:Window/Mac OS 都是经过30年的长期进化才有的今天的稳定性,Android 也有10多年的进化,如果从 0 开发新系统,那么快则 4-5 年系统才能趋向稳定,华为等得起,市场也等不起
  • 成本高:就算华为再有钱,完全从零开发操作系统的成本是无法估量的,根据估值微软的 Windows 就已经接近千亿美金,华为目前市场占用率下滑,不可能还有那么多资金投入到操作系统上

选择跟 Android 共享底层会带来什么好处? 如下:

  • 兼容生态:就像上面说了,用户切换到鸿蒙,不会有任何的阻碍,成本极地,因为操作就安卓系统差不多。是一个可以不被民族主义绑架也能真正产生价值的产品
  • 成本低:这里就不需要多说,底层不用自己写了,起码节省 80% 的开发成本,可以把更多的精力投入到扩展系统能力上,例如分布式协同,万物互联等等
  • 稳定性:安卓底层有多稳定,鸿蒙就有多稳定,增加用户切换的信心

我相信鸿蒙的设计者选择和安卓相同的 AOSP 底层是经过深思熟虑的,是真正能看清现实,为什么这么说:

  • 知道那些无脑吹捧华为的狂热的民族主义只是少数人,他们也不是华为的目标用户,他们最终还是会趋向性价比去选择产品,然后留下一句:下次一定
  • 那些抨击华为没有从零开始写操作系统的人也是少数,他们也不是华为的目标用户,就算真的从零设计实现了操作系统,他们也还会继续喷其他的缺点,该喷的还的喷,喷子永远不会停下来

华为的鸿蒙的设计是真正从普通用户和使用者的角度出发,在乎用户体验和实用的设计。所以华为的最终目标用户是:我们大多数的普通人,我们购买一件产品,不是因为它有某种“爱国情怀”的标签,也不是它是不是真正的从零开始实现的操作系统,我们普通人需要的就是一个价格合适,可以给我们生活带来便利的工具。这才是我们会购买它的根本原因。

大胆猜测华为的下一步动作

大胆猜测一下,我相信华为下一步的目标肯定会替换到安卓的 AOSP 底层,只是这块工作难度太大,时间和市场都没办法等这么久,所以只能先基于 AOSP 先把应用层实现,等应用层铺开后,鸿蒙的应用层生态建立后,再替换为鸿蒙的内核,兼容 AOSP 那么可以做到对应用层无干扰的情况下完成整个操作系统的全部替换,那么鸿蒙就真正的意义的“完全自主研发的操作系统”。或许你会疑问这么做会不会成功 ?答案是肯定的,因为已经有很多类似的成功案例,我们看看以下两个比较类似的案例:

  1. kunbernetes 决定弃用 Docker
  2. 苹果 M1 全面替换 intel 芯片

他们的共同点是什么 ?

kunbernetes 是位于应用层的容器调度工具,起初它的底层是基于 Docker 实现的(非常类似鸿蒙 OS 基于安卓的 AOSP 底层实现应用),但是随着 kunbernetes 的发展和壮大,大家都开始依赖 kunbernetes 后,Docker 本身也成为限制 kunbernetes 发展的瓶颈,kunbernetes 就直接把 Docker 替换为自家的容器实现,技术上更可控,因为大家都是面向使用 kunbernetes 至于底层是用 Docker 还是自家的容器,who care ? 只要不影响用户使用就好。

苹果自家 M1 替换 Intel 芯片这个案例大家应该都知道了,当时苹果还是小公司的时候,不得已使用 Intel 芯片作为自己产品的核心处理器,然后随着苹果市场份额壮大,Intel 逐渐成为苹果发展的瓶颈,因为大家使用的是苹果的应用程序,所以后面就算把 Intel 芯片替换掉,只要苹果能保证 M1 兼容应用程序,那么底层是使用 M1 还是使用 Intel 谁会在意 ? 后面 M1 芯片的苹果产品受到市场认可,也证明了这策略是成功可行的。

只要掌握应用层的生产资料,那么底层使用什么并不重要,我相信也这是鸿蒙的思路,只要等到鸿蒙生态成熟,那么未来某一天我们可能会突然看到新闻 华为鸿蒙系统决定放弃 安卓AOSP底层 替换为鸿蒙核心 的时候,也只是会心一笑而已。因为它根本就不影响你的使用。所以你无需关心它底层到底是安卓的AOSP还是真正重写的鸿蒙OS内核。

文章到这里就差不多可以总结了:

  • 我认为鸿蒙选择跟安卓共用底层是正确的选择,不仅可以让用户无缝升级,还能复用目前海量的安卓 APP 市场,真正从用户使用的角度设计系统,而不是被民族主义冲坏理智的头脑
  • 我相信鸿蒙OS在未来替换会逐渐安卓的AOSP底层,完成真正意义上的“完全自主研发操作系统”,这个里程碑对于我们还是蛮有意义。只是这个阶段太难完成,鸿蒙OS和用户都还需要时间来建立鸿蒙OS的生态壁垒

本文完 2021.6.3

phoenix 肖斌 于 广州

为鸿蒙OS说两句公道话(我对鸿蒙OS的一些看法)的更多相关文章

  1. MySQL 只能做小项目?松哥要说几句公道话!

    松哥上学那会,很多人对 MySQL 有一些偏见,偏见主要集中在以下几方面: MySQL 不支持事务(事实上 MyISAM 有表锁,但是效率比较低) MySQL 存储的数据量比较小,适合小项目,大项目还 ...

  2. 为Java说句公道话

    为Java说句公道话 有些人问我,在现有的语言里面,有什么好的推荐?我说:"Java. " 他们非常吃惊:"什么?Java!" 所以我如今来解释一下. Java ...

  3. 【转】给Java说句公道话

    有些人问我,在现有的语言里面,有什么好的推荐?我说:“Java.” 他们很惊讶:“什么?Java!” 所以我现在来解释一下. Java超越了所有咒骂它的“动态语言” 也许是因为年轻人的逆反心理,人们都 ...

  4. 神级程序员通过两句话带你完全掌握Python最难知识点——元类!

    千万不要被所谓"元类是99%的python程序员不会用到的特性"这类的说辞吓住.因为 每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生 ...

  5. 两句话掌握python最难知识点——元类

    千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...

  6. 两句话掌握 Python 最难知识点——元类

    千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...

  7. Leetcode884.Uncommon Words from Two Sentences两句话中的不常见单词

    给定两个句子 A 和 B . (句子是一串由空格分隔的单词.每个单词仅由小写字母组成.) 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的. 返回所有不常用单 ...

  8. 简单两句话解释下prototype和__proto__

    先上两句代码: var Person = function () {}; var p = new Person(); 把new的过程拆分成以下三步: <1> var p={}; 也就是说, ...

  9. 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传)

    前言 首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已. 下面先介绍一下WebUploader 简介: WebUp ...

随机推荐

  1. 【SpringBoot】Springboot2.x整合SpringSecurity

    一.Spring Security是什么?有什么作用(核心作用)?以及如何阅读本篇文章 1.是什么 Spring Security是Spring家族的一个强大的安全框架,与Springboot整合的比 ...

  2. Android的so注入( inject)和函数Hook(基于got表) - 支持arm和x86

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53942648 前面深入学习了古河的Libinject注入Android进程,下面来 ...

  3. W32Dasm缓冲区溢出分析【转载】

    课程简介 在上次课程中与大家一起学习了编写通用的Shellcode,也提到会用一个实例来展示Shellcode的溢出. 那么本次课程中为大家准备了W32Dasm这款软件,并且是存在漏洞的版本.利用它的 ...

  4. 【python】Leetcode每日一题-最长公共子序列

    [python]Leetcode每日一题-最长公共子序列 [题目描述] 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . ...

  5. Day008 数组的使用

    数组的使用 For-Each循环 数组作方法入参 数组作返回值 用普通for循环遍历 int[] arrays={1,2,3,4,5}; //打印全部的数组元素 for (int i = 0; i & ...

  6. 第四部分 数据搜索之使用HBASE的API实现条件查询

    因为数据清洗部分需要用到Mapreduce,所以先解决hbase的问题,可以用命令先在hbase存一下简单的数据进行查询,之后只要替换数据就可以实现了原本功能 在看该部分前,确保Hase API看了, ...

  7. python模块一之faker模块

    faker模块主要是用来创建伪数据,无需手动生成或者手写随机数来生成数据,可以利用faker完成伪造大量测试数据的工作 一.安装 pip install faker 二.使用 from faker i ...

  8. LeetCode 26. 删除有序数组中的重复项

    双指针法 分析: 设置两个指针:p1,p2,初始p1指向数组的第一个元素,p2指向第二个元素 1)如果p1的值 == p2的值,就让p2后移一位 2)如果p1的值 != p2的值,修改p1的下一个元素 ...

  9. 简单介绍下自动化框架:Robot Framework

    一.简介: Robot Framework:Robot Framework是由Python编写的一款功能丰富并且扩展性强的自动化测试框架,也可以在Java和 .NET 上运行. HttpRunner: ...

  10. Linux的三剑客

    首先,需要介绍一下管道和正则表达式,因为它经常和Linux三剑客一起使用. 一.管道Linux 提供管道符"|",将两个命令隔开,管道符左边命令的输出作为管道符右边命令的输入. c ...