2019年8月29日,Harmoney OS在位于东莞松山湖举行的HDC.Togather2019正式亮相。熟不知,三年后,他却成为备受国人争议的操作系统之一。Harmoney OS是什么,他和Google的Android系统有何联系,他是否是个“套壳”的Android,今天咱们来解开这个迷题。
华为Harmony OS 即鸿蒙系统,是一款分布式开源操作系统,基于Linux内核,lite OS内核。采用Java、XML、C/C++ 、 JS(JavaScript)、CSS(Cascading Style Sheets)和HML(HarmonyOS Markup Language)语言进行开发。鸿蒙一共分为三个版本:
一:鸿蒙开源版即open harmony,基于Linux和LiteOS内核和鸿蒙应用层构建而成。仅支持Hap应用程序,不支持APK文件。
二:商用版鸿蒙,即HarmonyOS,其未被开源,基于Linux,LiteOS,OpenHarmoney,合并了Google的AOSP以及自家的HMS,构建出了华为手机上所使用的HarmoneyOS。
三:TEE中的鸿蒙,即为可信执行环境。其早已合并在EMUI11之中,在互联网上也极少被讨论,他和手机系统处于一种并存的状态,用于处理设备之内的安全信息。华为的远期目标是将TEE鸿蒙代替LiteOS和Linux。
Harmony OS的应用后缀名为hap,貌似基于Android的app框架进行了大量修改,并新增了大量代码,构成了hap应用,不过这点暂未被证实,故先保留。hap应用采用Dec Eco Studio进行开发和构建,拥有自己的api,目前最新为api9。且拥有ArkUI,ArkTS,Ark Compiler完整的应用构建支持。这一点也足以证明HarmoneyOS并非Android套壳。
华为把三款大相径庭的系统统称为一个名字——鸿蒙。这也是造成大家热议的原因之一。以上所讨论到的三种鸿蒙,其中“二”是被认为套壳的,所以我们今天重点聊聊“二”这个手机版鸿蒙。
一个最粗糙的手机系统应该分为三层。第一层是Kernel,第二层是Application Runtime,第三层Framework,TargetSDK。咱们逐层刨析HarmonyOS。
第一层Kernel,HarmonyOS采用Linux内核毋庸置疑,华为自己也承认了这一点。
第二层:Application Runtime,既然HarmonyOS可以同时运行安装安卓应用和鸿蒙应用,那么肯定是并存关系,下面咱们刨析两者的关系。
在“设备信息”这个安卓App中,我们可以顺利检测到OpenHarmony的版本及其API,其原理是检测"ohos.system.DeviceInfo”此Java包来检测HarmonyOS版本。综上可以推断,OpenHarmoney在HarmonyOS中应该为一个Runtime。
华为表示HarmonyOS也在此层增添了众多特性:
系统基本能力子系统集:为分布式应用在HarmonyOS多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、方舟多语言运行时、公共基础库、多模输入、图形、安全、AI等子系统组成。其中,方舟运行时提供了C/C++/JS多语言运行时和基础的系统类库,也为使用方舟编译器静态化的Java程序(即应用程序或框架层中使用Java语言开发的部分)提供运行时。
基础软件服务子系统集:为HarmonyOS提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 、MSDP&DV等子系统组成。
增强软件服务子系统集:为HarmonyOS提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
硬件服务子系统集:为HarmonyOS提供硬件服务,由位置服务、生物特征识别、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
第三层Runtime和FrameWork,显而易见Android和HarmoneyOS肯定是要并存的。目前无法判断谁是主,谁是辅。不过从设备信息App可以推断Android为主,HarmonyOS为辅。不过一旦有HarmonyOS应用程序检测到AndroidAPI和版本,那么也许能说明HarmoneyOS为主,Android为辅。
我们再来回到Android和HarmonyOS架构图,二者从Kernel起即显现出不同,在Application Runtime中华为也大量增添了自己的东西,而AOSP仅仅是合并,而上述架构层刨析只能说明HarmoneyOS把AOSP暂时作为了现在的主应用层。路由器等其他设备上的HarmoneyOS仅支持Hap应用也同时证明了这一点。
HarmonyOS:
Android:
“全世界没有任何一家公司写一个大型的软件,每一行都自己写。”正如王成录所说,套壳不套壳,这个问题不是一个问题。阿里巴巴的一位资深安卓开发人员告诉我们,“安卓套壳”的说法是很狭义的,一部分是因为开发者对鸿蒙不够了解,当然也有鸿蒙自身开源局限的问题导致。“华为不仅推出了自己的 IDE 来适配鸿蒙系统,还做了更多的安卓虚拟机所做不到的编译器优化,来提升代码执行效率。”
事实上,王成录也曾表示,鸿蒙也会吸收社区的优秀技术和代码。“如果我们满足了 AOSP 的开源协议,那谷歌的代码华为为什么不用?”
还是借用别的博主的话“好的技术该夸就夸,不好的公司该骂就骂。这个世界不是非黑即白的”
看到这里了,作者写作不易,点赞支持一下吧[酷币][酷币][酷币]
欢迎大家捐赠支持:https://www.aliyundrive.com/s/bN2VozmGFfn
作者根据中国大陆著作权法以及相关法律对此文章依法享有并保留一切合法权利,未经允许,严谨转载[玫瑰]。
文章部分内容来源于网络,如遇侵权,请于发布15日内与作者联系删除相关内容[玫瑰]
参考文献:
《鸿蒙生态应用开发白皮书》
Harmony OS Developer >文档 >指南