分享

鸿蒙演变过程

 金刚光 2023-10-24 发布于辽宁


鸿蒙演变过程

Eidosper
冰消雪融,花为汝开~
你赞同过 TA 的内容

鸿蒙OS是一个最初就计划用于替换安卓的系统,但过程有些艰辛和复杂。考虑到最近的混乱越来越多了,包括我自己也一度弄混了很多内容。尽管为了保证正确性我请教了一些大佬,但仍然可能有错漏之处,也欢迎指出。

(已经根据评论区留言、开发者群其它大佬的论述做了补充)

关系简略示意图,没有画liteos部分,harmony kernel是传言会上

对于开发者来说更加清晰:

安卓开发者使用Android Studio(当然你也可以用上古的eclipse去搞古代版本Android),配合Android SDK开发APK;鸿蒙开发者使用DevEco,配合两种Harmony的SDK,开发两种HAP。

最终形态我预估是这样:

就像现在的Android也可以跑部分exe一样,也许以后HarmonyOS Next会有民间大神做安卓的支持,这个理论上可行。

鸿蒙概念阶段

这个时候大家思想都还没有统一,“鸿蒙”这个名字甚至都是自媒体扒出来的。但是自从众所周知的事情发生后,这个概念就不得不硬上。

任何一个操作系统的拿出来都不可能是“分分钟”的事情——写代码要时间的,测试啥的也要。

这一时期最大的误解就是:分分钟能拿出来

实际情况:分分钟能拿,只能一点

但这个阶段也比较重要,起码得先有个思路才知道要做什么。

鸿蒙1

这个阶段其实只有OpenHarmony 1.0,而且主要还是liteos改。Liteos是华为用在路由器等iot设备的操作系统,我们可以在OH1.0看到kernel是liteos的两个不同尺寸:

包含两个liteos内核

这一阶段造成的主要误解就是:鸿蒙是给路由器/iot设备用的

真实情况是:鸿蒙的完全体还没开发完,只拿出了liteos部分

这个阶段的鸿蒙和现在的小米vela是类似的:鸿蒙是基于过去自家的liteos,vela是基于开源的nuttx——这俩都是iot os。oh1.0的代码包只有225MB[1],nuttx的代码包约54mb[2],一个数量级。

鸿蒙2

这个阶段手机叫HarmonyOS 2,正式改名。此时的手机鸿蒙是双框架——同时支持AOSP的APK和鸿蒙的HAP格式,带有OpenHarmony,但是其中后者只有开发者用DevEco才能在手机上运行,所以事实上鸿蒙2是“真鸿蒙”但是“未启用”的状态。

这种状态造成的最大尴尬是,你说这是鸿蒙,那鸿蒙HAP生态默认不开启;你说不是鸿蒙,但又具备完整的鸿蒙能力。这种尴尬类似于“九岁的男孩是不是男人”一样……

包含三个内核

这个阶段的最大问题是因为安卓只能运行APK,所以HAP格式解压缩后需要有一个APK的入口(并非软件实体)。同时根据评论区可知,部分api的实现是通过映射aosp实现的,这不意外。另一位开发者透露,通过对代码进行追踪,当时的java代码是通过安卓实现的,这也合理。

OpenHarmony的HAP没有这个问题。

这造成了广泛的误解:鸿蒙app是套壳安卓app

真实的情况是:临时为开发者能在手机鸿蒙上运行而做的入口和映射,包中APK并非程序本体

DevEco使用的SDK中并不包含Android SDK

DevEco其实可以佐证这个不是APK套壳——想要编译出完整的APK需要Android SDK,但DevEco使用的HarmonyOS SDK并不包含Android SDK,具体的文件都是清晰可查看对比的。

这个阶段的最大问题是,API本身的不稳定——这对开发者来说不是特别友好,但也是技术探索中的必要弯路。这个阶段的OepnHarmony已经初步能刷到开发板、带有桌面了,源代码6GB,容量是上一阶段的30倍。

鸿蒙3

这个阶段手机叫HarmonyOS 3。仍然是双框架,更加成熟。

OpenHarmony的HAP已经基本成熟,解压缩HAP就是正常的样子:

HAP和APK一样是个压缩包

我们打开westinyang大佬开发的F-OH.hap,里面的ets就是extend typescript的意思,是这个app的可执行部分。鸿蒙使用arkTS,是由typescript添加鸿蒙特性得到,整体还是JS/TS,非常适合低成本开发APP。

ets文件夹打开后就是个abc文件
安卓APK核心代码是dex文件

尽管这时候可以推进鸿蒙HAP生态了,但是这时候由于华为使用高通芯片没有驱动,OpenHarmony是否能部署到高通芯片上取决于高通,仅有已经停售的高通芯片高通会开放驱动以供开发者自行匹配。此时的华为消费者业务萎靡不振,软件厂商配合的意愿也要打问号。

误解:写了完整的操作系统就能上手机

实际情况:需要考虑芯片的驱动问题,芯片驱动由芯片设计者提供

鸿蒙4

这个阶段的鸿蒙仍然是双框架,OpenHarmony已经演进到API10——非常成熟的系统了。这个阶段华为推出了鸿蒙next,top200的app在推进适配。

根据开发者提供的消息,api9以后的hap在手机鸿蒙4上不再有apk入口,而是由鸿蒙4动态生成一个apk入口。这也是安卓底座带来的妥协,鸿蒙next将不会有此种妥协。

这个阶段理论上已经可以放弃aosp,但是放弃aosp后没有应用,毕竟top200在适配中,HDC2023也演示过部分已经适配的应用。

随着华为Mate60的发布,厂商的适配意愿也开始恢复。但开发需要时间,所以鸿蒙4仍然还是和2、3一样,带有一个仅开发者可以用的OpenHarmony——当然,成熟程度更高了。这个阶段最大的问题就是厂商适配需要点时间,毕竟大型应用的移植、测试都需要时间。

至于传言中的“APK2HAP”,我觉得难度有亿点点大,但也不是完全不可能,只不过现在应该没有完整的这种工具。

这个阶段的误解:分分钟移植

实际情况:移植并没有很容易

鸿蒙next

关于鸿蒙nt,只有一些传言,不一定准,大家看着图一乐就行:

  1. 传说没有任何对安卓的官方支持
  2. 传说使用自研kernel,虽然我不觉得这很重要,用户层面感知不强
  3. 传说支持侧载,权限比安卓更严格,但比iOS略开放
windows经历过一次内核更换,但用户层面感知不强

鸿蒙next也有pc版本这个确定,不过估计还是要绑定麒麟芯片(也可能是鲲鹏,总之是华为自己的芯片),不然驱动很难解决。当然,如果第三方愿意开发驱动,那HDF是做好了的,可以给鸿蒙开发驱动。

现阶段的鸿蒙next开发者版本根据评论区可知是linux内核,这也不意外。

写在最后

搞营销归搞营销,鸿蒙整个发展过程中是拿出了正经的代码的,就像程序员总说的“talk is cheap,shou me the code”。Openharmony拿出了代码、网友大佬们做出了适配小米6、一加6t的刷机包,在这点上是说得过去的。

一位OpenHarmony开发者如此评价:自从看到3.2的OpenHarmony出来以后,就感觉到华为多年负重前行,格局很高,野心也很大,我才会更感兴趣。一直在孕育这个OpenHarmony,直到有一天它能独当一面,再完全切换过去——这个太不容易了,敢想敢干。

而且OpenHarmony生态得到了一定的支持。

鸿蒙未来可期。

参考

  1. ^鸿蒙各版本的代码包 https:///openharmony/docs/blob/OpenHarmony-3.1-Release/zh-cn/release-notes/Readme.md
  2. ^nuttx代码下载页面 https://nuttx./download/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多