【轉(zhuǎn)】鴻蒙演變過程
鴻蒙演變過程

Eidosper
冰消雪融,花為汝開~

你贊同過 TA 的內(nèi)容
鴻蒙OS是一個最初就計劃用于替換安卓的系統(tǒng),但過程有些艱辛和復(fù)雜。考慮到最近的混亂越來越多了,包括我自己也一度弄混了很多內(nèi)容。盡管為了保證正確性我請教了一些大佬,但仍然可能有錯漏之處,也歡迎指出。
(已經(jīng)根據(jù)評論區(qū)留言、開發(fā)者群其它大佬的論述做了補充)

對于開發(fā)者來說更加清晰:

安卓開發(fā)者使用Android Studio(當(dāng)然你也可以用上古的eclipse去搞古代版本Android),配合Android SDK開發(fā)APK;鴻蒙開發(fā)者使用DevEco,配合兩種Harmony的SDK,開發(fā)兩種HAP。
最終形態(tài)我預(yù)估是這樣:

就像現(xiàn)在的Android也可以跑部分exe一樣,也許以后HarmonyOS Next會有民間大神做安卓的支持,這個理論上可行。
鴻蒙概念階段
這個時候大家思想都還沒有統(tǒng)一,“鴻蒙”這個名字甚至都是自媒體扒出來的。但是自從眾所周知的事情發(fā)生后,這個概念就不得不硬上。

任何一個操作系統(tǒng)的拿出來都不可能是“分分鐘”的事情——寫代碼要時間的,測試啥的也要。
這一時期最大的誤解就是:分分鐘能拿出來
實際情況:分分鐘能拿,只能一點

但這個階段也比較重要,起碼得先有個思路才知道要做什么。
鴻蒙1
這個階段其實只有OpenHarmony 1.0,而且主要還是liteos改。Liteos是華為用在路由器等iot設(shè)備的操作系統(tǒng),我們可以在OH1.0看到kernel是liteos的兩個不同尺寸:

這一階段造成的主要誤解就是:鴻蒙是給路由器/iot設(shè)備用的
真實情況是:鴻蒙的完全體還沒開發(fā)完,只拿出了liteos部分
這個階段的鴻蒙和現(xiàn)在的小米vela是類似的:鴻蒙是基于過去自家的liteos,vela是基于開源的nuttx——這倆都是iot os。oh1.0的代碼包只有225MB[1],nuttx的代碼包約54mb[2],一個數(shù)量級。

鴻蒙2
這個階段手機叫HarmonyOS 2,正式改名。此時的手機鴻蒙是雙框架——同時支持AOSP的APK和鴻蒙的HAP格式,帶有OpenHarmony,但是其中后者只有開發(fā)者用DevEco才能在手機上運行,所以事實上鴻蒙2是“真鴻蒙”但是“未啟用”的狀態(tài)。
這種狀態(tài)造成的最大尷尬是,你說這是鴻蒙,那鴻蒙HAP生態(tài)默認(rèn)不開啟;你說不是鴻蒙,但又具備完整的鴻蒙能力。這種尷尬類似于“九歲的男孩是不是男人”一樣……

這個階段的最大問題是因為安卓只能運行APK,所以HAP格式解壓縮后需要有一個APK的入口(并非軟件實體)。同時根據(jù)評論區(qū)可知,部分api的實現(xiàn)是通過映射aosp實現(xiàn)的,這不意外。另一位開發(fā)者透露,通過對代碼進(jìn)行追蹤,當(dāng)時的java代碼是通過安卓實現(xiàn)的,這也合理。
OpenHarmony的HAP沒有這個問題。
這造成了廣泛的誤解:鴻蒙app是套殼安卓app
真實的情況是:臨時為開發(fā)者能在手機鴻蒙上運行而做的入口和映射,包中APK并非程序本體

DevEco其實可以佐證這個不是APK套殼——想要編譯出完整的APK需要Android SDK,但DevEco使用的HarmonyOS SDK并不包含Android SDK,具體的文件都是清晰可查看對比的。
這個階段的最大問題是,API本身的不穩(wěn)定——這對開發(fā)者來說不是特別友好,但也是技術(shù)探索中的必要彎路。這個階段的OepnHarmony已經(jīng)初步能刷到開發(fā)板、帶有桌面了,源代碼6GB,容量是上一階段的30倍。
鴻蒙3
這個階段手機叫HarmonyOS 3。仍然是雙框架,更加成熟。
OpenHarmony的HAP已經(jīng)基本成熟,解壓縮HAP就是正常的樣子:

我們打開westinyang大佬開發(fā)的F-OH.hap,里面的ets就是extend typescript的意思,是這個app的可執(zhí)行部分。鴻蒙使用arkTS,是由typescript添加鴻蒙特性得到,整體還是JS/TS,非常適合低成本開發(fā)APP。


盡管這時候可以推進(jìn)鴻蒙HAP生態(tài)了,但是這時候由于華為使用高通芯片沒有驅(qū)動,OpenHarmony是否能部署到高通芯片上取決于高通,僅有已經(jīng)停售的高通芯片高通會開放驅(qū)動以供開發(fā)者自行匹配。此時的華為消費者業(yè)務(wù)萎靡不振,軟件廠商配合的意愿也要打問號。
誤解:寫了完整的操作系統(tǒng)就能上手機
實際情況:需要考慮芯片的驅(qū)動問題,芯片驅(qū)動由芯片設(shè)計者提供
鴻蒙4
這個階段的鴻蒙仍然是雙框架,OpenHarmony已經(jīng)演進(jìn)到API10——非常成熟的系統(tǒng)了。這個階段華為推出了鴻蒙next,top200的app在推進(jìn)適配。
根據(jù)開發(fā)者提供的消息,api9以后的hap在手機鴻蒙4上不再有apk入口,而是由鴻蒙4動態(tài)生成一個apk入口。這也是安卓底座帶來的妥協(xié),鴻蒙next將不會有此種妥協(xié)。
這個階段理論上已經(jīng)可以放棄aosp,但是放棄aosp后沒有應(yīng)用,畢竟top200在適配中,HDC2023也演示過部分已經(jīng)適配的應(yīng)用。

隨著華為Mate60的發(fā)布,廠商的適配意愿也開始恢復(fù)。但開發(fā)需要時間,所以鴻蒙4仍然還是和2、3一樣,帶有一個僅開發(fā)者可以用的OpenHarmony——當(dāng)然,成熟程度更高了。這個階段最大的問題就是廠商適配需要點時間,畢竟大型應(yīng)用的移植、測試都需要時間。
至于傳言中的“APK2HAP”,我覺得難度有億點點大,但也不是完全不可能,只不過現(xiàn)在應(yīng)該沒有完整的這種工具。
這個階段的誤解:分分鐘移植
實際情況:移植并沒有很容易
鴻蒙next
關(guān)于鴻蒙nt,只有一些傳言,不一定準(zhǔn),大家看著圖一樂就行:
傳說沒有任何對安卓的官方支持
傳說使用自研kernel,雖然我不覺得這很重要,用戶層面感知不強
傳說支持側(cè)載,權(quán)限比安卓更嚴(yán)格,但比iOS略開放

鴻蒙next也有pc版本這個確定,不過估計還是要綁定麒麟芯片(也可能是鯤鵬,總之是華為自己的芯片),不然驅(qū)動很難解決。當(dāng)然,如果第三方愿意開發(fā)驅(qū)動,那HDF是做好了的,可以給鴻蒙開發(fā)驅(qū)動。
現(xiàn)階段的鴻蒙next開發(fā)者版本根據(jù)評論區(qū)可知是linux內(nèi)核,這也不意外。
寫在最后
搞營銷歸搞營銷,鴻蒙整個發(fā)展過程中是拿出了正經(jīng)的代碼的,就像程序員總說的“talk is cheap,shou me the code”。Openharmony拿出了代碼、網(wǎng)友大佬們做出了適配小米6、一加6t的刷機包,在這點上是說得過去的。
一位OpenHarmony開發(fā)者如此評價:自從看到3.2的OpenHarmony出來以后,就感覺到華為多年負(fù)重前行,格局很高,野心也很大,我才會更感興趣。一直在孕育這個OpenHarmony,直到有一天它能獨當(dāng)一面,再完全切換過去——這個太不容易了,敢想敢干。
市工業(yè)和信息化局關(guān)于印發(fā)《深圳市推動開源鴻蒙歐拉產(chǎn)業(yè)創(chuàng)新發(fā)展行動計劃(2023-2025年)》的通知-政策文件-深圳市應(yīng)急管理局yjgl.sz.gov.cn/zwgk/xxgkml/qt/ztzl/yjzt/szaqyjcyjkjxxh/zcwj/content/post_10788408.html

而且OpenHarmony生態(tài)得到了一定的支持。
鴻蒙未來可期。
參考
^鴻蒙各版本的代碼包?https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Release/zh-cn/release-notes/Readme.md
^nuttx代碼下載頁面?https://nuttx.apache.org/download/
編輯于 2023-10-24 14:44