为鸿蒙说两句公道话

今天看了鸿蒙系统的评测,看完后我感觉很欣慰,为什么这么说 ? 不是很多人吐槽鸿蒙是 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. 2、ASP.NET Core中服务的生命周期

    ASP.NET Core支持依赖注入软件设计模式,它允许在不同的组件中注入我们的服务,并且控制服务的初始化.有些服务可以在短时间内初始化,并且只能在某个特别的组件,以及请求中才能用到:而还有一些服务, ...

  2. kuberadm集群升级

    升级kubernetes集群 注意不能跨版本升级 比如1.13.x 要先升级到1.14.x,不能直接升级到1.15.x 举例说明升级到1.15,和1.14有些参数不一样,具体看官网: https:// ...

  3. Innodb中的快照读和当前读

    一.前言 上篇文章记录了对MVCC的相关理解,其中有提到快照读.其实在MVCC并发控制中,读操作可以分为两类:快照读(snapshot read)和当前读(current read)   二.什么是快 ...

  4. 关于SpringBoot结合mybatis后遇到的坑

    先放出我遇到的出错信息,真的出错了可以先看看出错信息,就能更加高效准确的搜索到信息 我的报错日志: org.springframework.beans.factory.UnsatisfiedDepen ...

  5. PHP大牛笔记收藏

    PHP大牛笔记收藏 Do not use PHP references 未完,待续

  6. 微信小程序中的自定义组件

    微信小程序中的组件 前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 ...

  7. POJ3040给奶牛发工资

    题意:       有n种硬币,每种硬币有mi个,然后让你给奶牛发工资,每周发至少c元(就是不找零钱的意思)然后问你能发几周?(硬币之间都是倍数关系) 思路:       这个题目做了两天,丢脸,看完 ...

  8. Linux系统登录相关

    whoami:查看当前用户 who:查看当前登录系统的所有用户 tty指的是主机的图形化界面的面板 pts/x指的是远程ssh连接的窗口 who -b:主机的上一次启动时间 w:显示已经登陆系统的用户 ...

  9. 前端小白的学习之路html与css的较量【二】

    标签的划分 块级元素 独占一行 设置 宽 高可以起作用 排列方式: 上下排列 行内元素 可以共占一行 设置 宽 高 不起作用,大小由内容决定 排列方式:左右排列 行内块 可以共占一行 可以设置宽 高 ...

  10. 6 JDBC

    JDBC 理解图 需要mysql包 下载官网:https://downloads.mysql.com/archives/c-j/ 第一个JDBC项目 创建一个java项目,一路next 导入jar包 ...