近日,华为已经向部分拥有测试资格的开发者推送了鸿蒙系统2.0Beta版,全网都非常关心华为鸿蒙系统的表现。有幸测试的开发者们也向外公开了测试的结果,总结如下:
- UI界面:鸿蒙2.0看起来非常清爽。跟之前的华为的EMUI并没有太多不同。
- APP:完全兼容android10,鸿蒙APP的后缀为hap,目前发布得非常少。
- 性能:有博主测试了王者荣耀以及和平精英,发现在开启HDR、抗锯齿画质下,整体性能比EMUI11更流程更稳定,功耗更低。
很多人看完都很好奇两件事,第一就是鸿蒙2.0会不会就是套壳安卓10?第二就是为何安卓的APP在鸿蒙运行更流畅?
1、鸿蒙2.0是不是套壳安卓?
虽然UI界面没什么变化,APP也兼容安卓,但鸿蒙2.0真的不是套壳安卓。华为之所以这么安排是为了让用户和开发者都可以无缝过渡。
①、市场角度
首先,现在的手机系统市场已经被安卓和IOS完全占领,用户也已经习惯了安卓和IOS的风格。而华为鸿蒙系统则不同,市场占有率为零。用户和开发者对它都是完全陌生的。如果鸿蒙UI变化太大,用户可能会很不适应。当使用上因为不适应造成麻烦时,很多用户就会放弃它。
其次、APP方面如果不兼容原有EMUI的话,用户会因为没有APP可用,被迫放弃鸿蒙。开发者也会因为用户太少而不愿意开发新的应用。这就是一个系统的生态问题。苹果和安卓都已经形成了各自的软件生态,在生态的影响下也形成了各自的用户群体。它们互不兼容,对彼此影响不会太大。鸿蒙因为是初生系统,和安卓同源linux。所以,兼容安卓是最好的选择。
②、技术角度
华为鸿蒙系统和安卓虽然都是基于linux开发而来,但鸿蒙系统是一个基于微内核的分布式操作系统。微内核仅仅打包了操作系统必须的核心模块,拥有最高的系统权限,其他外围功能模块权限低。任何外围功能模块出问题,都不会影响系统的运行。所以,整个系统开发起来比较困难,但华为克服了这些困难。同时,华为鸿蒙系统取消了ART虚拟机的运行方式,它将应用程序直接编译成二进制机器码,这样使得软件运行效率更高。分布式的架构,使得它将来可用于电脑、手机、汽车、电视、以及可穿戴设备等全部领域。
而安卓系统采用的宏内核设计,宏内核包括了操作系统的大部分功能和模块。这些功能和模块都拥有系统最高权限,任何一个功能和模块出了问题,都会导致安卓系统出现故障。但这种架构的系统开发难度较低,谷歌当年就选择了这种方式。同时,安卓使用了虚拟机的方式来运行APP。使用久了,系统会变得越来越慢。
★从上面两个方面来看,鸿蒙系统绝对不是套壳安卓。而是全新设计的未来操作系统。值得用户和开发者去尝试体验。
2、安卓的APP在鸿蒙兼容运行,居然更流畅?
要想知道这个问题的原因,必须从安卓和鸿蒙系统的原理出发。
①、安卓APP的运行方式
众所周知,安卓程序基本上都是用java语言编写。而java语言编写的程序要想在机器上运行,必须将源代码翻译成字节码。然后在将字节码翻译成二进制的机器码。这些翻译又有两种模式:
- 普通模式:java虚拟机一边翻译一边执行,运行效率较低;
- ART模式:安装程序时,AOT编译器一次性把字节码翻译成了机器码。运行时无需再翻译就可以直接运行。这种安装程序慢,运行效率较高。
这两种模式中,华为Emui是支持ART模式的,鸿蒙系统在此之上做了升级。
②、鸿蒙系统运行APP的方式
鸿蒙系统是采用微内核+AOSP(安卓10)双架构。对ART模式做了一个重要的优化升级。那就是方舟编译器替代了AOT编译器。方舟编译器是基于AOT编译器开发而来,但完全摆脱了java虚拟机的机制,将高级语言的字节码提前编译成二进制代码,让CPU直接运行。同时,方舟编译器在编译过程中还有很多算法的优化(比如:内存回收机制)。这就导致通过方舟编译器编译的程序比之前AOT编译的程序,运行速度提升了60%。除此之外,华为的超级文件系统EROFS,具有更高的压缩率和更高的读取速度。这也对提升APP运行效率有不小的帮助。
总结
华为鸿蒙系统2.0是基于微内核的分布式操作系统,绝对不是套壳安卓的系统。它的方舟编译器和超级文件系统可以大大提升兼容APP的运行效率。如果开发者直接在鸿蒙系统上开发新的APP,效率会有更大幅度的提升。目前,华为已经提供众多SDK包、子系统源代码给开发者。希望鸿蒙生态越来越好!