鸿蒙(Harmony)、安卓(Android)、AOSP

鸿蒙(Harmony)、安卓(Android)、AOSP

华为鸿蒙2.0发布,铺天盖地的关于鸿蒙的文章,有点晕,也不太能看得懂,很惭愧,所以特意查了一下,感觉能够科普到能看懂相关新闻的程度。例如AOSP,GWS,HWS等,和大家分享一下:

先说关键概念

  • AOSP是什么

我们都知道Andriod是一个开源系统,指的就是AOSP,就是Android Open Software Project的缩写,这个系统是google维护的,但是由开源社区贡献的,是操作系统的核心,说他是核心因为如果没有其他的一些服务(硬件驱动和GMS),还不能安装到手机上。

简单看一下Andriod操作系统的分层:
鸿蒙(Harmony)、安卓(Android)、AOSP

Linux Kernel管理cpu、内存、网络,还包括手机所有硬件的驱动程序。
HAL把是app到手机硬件的抽象接口,也就是说是厂商无关的。
通用函数库:例如OpenGL ES,Webkit等
往上就是Andriod Framework,也就是我们看到的Android的界面,还有SDK等,
再往上,就是Apps了。
中间的Android Runtime,是一个java虚拟机。

  • 驱动程序

AOSP并不包含硬件驱动,各芯片厂商会根据AOSP的版本,裁剪出适合自己的硬件的AOSP版本,所以,有些手机厂商的定制开发是从芯片厂商出获得AOSP。

  • GMS

AOSP也不包含Google的应用程序套件,也就是GMS,是Google Mobile Service。这个软件套件包含了Chrome,YouTube,Google Play, Google Play 服务,Google支付,Voice command等。GMS不是开源的,凡是要安装GMS的手机必须获得Google的授权。GMS里面的大部分服务在国内可能不能使用,但是很多App,特别是国外的App是严重依赖GMS的,如果没有GMS,可能会闪崩。所以一般情况下,国内的手机厂商都会获取GMS的授权,然后在安装的时候做一些裁剪,同时推出自己的对应的服务,例如华为有自己的HMS, 小米也有自己的小米移动服务。但是里面或多或少的保留了GMS的一部分模块,国内手机用户如果有点黑客精神,还是可以把GMS安装上的(就是著名的google三件套)。 由于中美贸易摩擦,华为不能获得GMS的授权,也就不能使用GMS,这样会造成有些App可能不兼容。为了保证不安装任何GMS情况下兼容所有App,华为必须保证HMS能够足够能力替换GMS。

  • 原生Android系统(Stock Android)

Google公司为了证明Android,亲自OEM了一些手机,例如Nexus系列,Google在AOSP的基础上,裁剪驱动,增加GMS,提供用户界面,推出一个能够在手机上运行的操作系统,此系统最为精简,我们一般称为原生Android,也叫Stock Android。当然也有一些手机厂商直接使用这个系统。

  • 三星、华为(EMUI)、小米(MIUI)等用的定制化Andriod系统

现在的大厂都基于AOSP,定制完驱动,获得GMS授权后,然后根据进行用户体验的优化,主要是进行界面的优化和性能参数调整等。

有了这些概念,我们再来看鸿蒙新闻。鸿蒙架构里面的内核包括LiteOS和Linux,这里,LiteOS是完全自研的内核(这个内核和Linux的关系还希望操作系统的专家深度解读),而Linux则就是AOSP里面的Linux内核。如果鸿蒙要是用LiteOS的话,那么上面的驱动程序,HAL,Native C/C++ Library都需要在LiteOS上编译后,才有可能兼容当下的大部分软件开发。当然华为实现了方舟编译器,但是所有的驱动,Native库在新的操作系统上编译成功是一件工作量巨大的事情。从这个方面推断,目前华为手机上推送的鸿蒙系统,应该还是AOSP的,只不过是把HMS优化到可以完全绕过GMS,并且包含之前的EMUI(不太确定是否EMUI也开源了)。并且我也猜测,手机端的鸿蒙应该和LiteOS并没有关系,有关系的话,也是通过一些驱动和操作系统接口,和其他设备上的LiteOS可以互联互通。

在鸿蒙的两次发布中,都提到了万物互联的概念。移动互联网已经发展到了顶峰,手机操作系统已经是个非常复杂,非常成熟,生态非常庞大的系统,再开发一个一样成熟的代价将会是个天文数字,而且等开发完成了,估计手机时代也已经过去了。所以华为的目光实际上是放在物联网操作系统上的,这个就是LiteOS。当然,物联网操作系统,Google也没有落后,Google Fuchsia是基于Google的非linux内核Zircon 并且支持 Google’s Dart 语言的物联网操作系统,根据流行趋势,也是开源的。极客们,是时候去看下一代操作系统了!

上一篇:性能测试中用LambdaProbe监控Tomcat Tomcat和Probe的配置


下一篇:使用Android Studio调试系统应用之TvSettings(一):移植