大師兄的鴻蒙學(xué)習(xí)筆記:對(duì)比HarmonyOs和Android系統(tǒng)

一. 與Android系統(tǒng)架構(gòu)比對(duì)

1. HarmonyOs架構(gòu)概覽
  • HarmonyOs的架構(gòu)分為內(nèi)核層何恶、系統(tǒng)服務(wù)層應(yīng)用框架層應(yīng)用層惜辑。
1.1 內(nèi)核層
  • 內(nèi)核層主要由內(nèi)核子系統(tǒng)驅(qū)動(dòng)子系統(tǒng)組成:

內(nèi)核子系統(tǒng):HarmonyOS采用多內(nèi)核設(shè)計(jì)盛撑,支持針對(duì)不同資源受限設(shè)備選用適合的OS內(nèi)核捧搞,如:Linux Kernel, LiteOs等胎撇。
內(nèi)核抽象層(KAL,KernelAbstract Layer):通過屏蔽多內(nèi)核差異碗短,對(duì)上層提供基礎(chǔ)的內(nèi)核能力偎谁,包括進(jìn)程/線程管理纲堵、內(nèi)存管理席函、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管理等正蛙。
驅(qū)動(dòng)子系統(tǒng):HarmonyOS驅(qū)動(dòng)框架(HDF)是HarmonyOS硬件生態(tài)開放的基礎(chǔ)乒验,提供統(tǒng)一外設(shè)訪問能力和驅(qū)動(dòng)開發(fā)蒂阱、管理框架录煤。

1.2 系統(tǒng)服務(wù)層
  • 系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過應(yīng)用框架層對(duì)應(yīng)用程序提供服務(wù)了嚎。該層包含以下幾個(gè)部分:

系統(tǒng)基本能力子系統(tǒng)集:為分布式應(yīng)用在HarmonyOS多設(shè)備上的運(yùn)行歪泳、調(diào)度赘风、遷移等操作提供了基礎(chǔ)能力邀窃,由分布式軟總線、分布式數(shù)據(jù)管理鞍历、分布式任務(wù)調(diào)度劣砍、方舟多語言運(yùn)行時(shí)扇救、公共基礎(chǔ)庫、多模輸入靠娱、圖形掠兄、安全蚂夕、AI等子系統(tǒng)組成婿牍。其中,方舟運(yùn)行時(shí)提供了C/C++/JS多語言運(yùn)行時(shí)和基礎(chǔ)的系統(tǒng)類庫铐维,也為使用方舟編譯器靜態(tài)化的Java程序(即應(yīng)用程序或框架層中使用Java語言開發(fā)的部分)提供運(yùn)行時(shí)嫁蛇。
基礎(chǔ)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供公共的露该、通用的軟件服務(wù)解幼,由事件通知、電話底靠、多媒體暑中、DFX鲫剿、MSDP&DV等子系統(tǒng)組成灵莲。
增強(qiáng)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供針對(duì)不同設(shè)備的、差異化的能力增強(qiáng)型軟件服務(wù)枚抵,由智慧屏專有業(yè)務(wù)汽摹、穿戴專有業(yè)務(wù)竖慧、IoT專有業(yè)務(wù)等子系統(tǒng)組成逆屡。
硬件服務(wù)子系統(tǒng)集:為HarmonyOS提供硬件服務(wù)魏蔗,由位置服務(wù)砍的、生物特征識(shí)別、穿戴專有硬件服務(wù)莺治、IoT專有硬件服務(wù)等子系統(tǒng)組成谣旁。

1.3 應(yīng)用框架層
  • 應(yīng)用框架層為HarmonyOS的應(yīng)用程序提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架榄审,以及各種軟硬件服務(wù)對(duì)外開放的多語言框架API搁进;
  • 應(yīng)用框架層為采用HarmonyOS的設(shè)備提供了C/C++/JS等多語言的框架API,不同設(shè)備支持的API與系統(tǒng)的組件化裁剪程度相關(guān)影兽。
1.4 應(yīng)用層
  • 應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用峻堰。
  • HarmonyOS的應(yīng)用由一個(gè)或多個(gè)FA(Feature Ability)PA(Particle Ability)組成:

FA有UI界面茧妒,提供與用戶交互的能力左冬;
PA無UI界面拇砰,提供后臺(tái)運(yùn)行任務(wù)的能力以及統(tǒng)一的數(shù)據(jù)訪問抽象狰腌。

  • 基于FA/PA開發(fā)的應(yīng)用琼腔,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能丹莲,支持跨設(shè)備調(diào)度與分發(fā)尸诽,為用戶提供一致性含、高效的應(yīng)用體驗(yàn)商蕴。
2. 與Android系統(tǒng)架構(gòu)比對(duì)
2.1 架構(gòu)不同
  • HarmonyOsAndroid系統(tǒng)都是基于Linux,但是HarmonyOs是基于微內(nèi)核(Micro Kernel)架構(gòu)設(shè)計(jì)苛谷,而Android系統(tǒng)是基于宏內(nèi)核/單內(nèi)核(Monolithic Kernel)架構(gòu)設(shè)計(jì):

微內(nèi)核:內(nèi)核管理著所有的系統(tǒng)資源抄腔,在微內(nèi)核中用戶服務(wù)和內(nèi)核服務(wù)在不同的地址空間中實(shí)現(xiàn)赫蛇。在應(yīng)用程序和硬件的通信中悟耘,內(nèi)核進(jìn)程和內(nèi)存管理的極小的服務(wù)织狐,而客戶端程序和運(yùn)行在用戶空間的服務(wù)通過消息的傳遞來建立通信移迫,它們之間不會(huì)有直接的交互厨埋,這樣一來,微內(nèi)核中的執(zhí)行速度相對(duì)就比較慢了雨效,這是微內(nèi)核架構(gòu)的一個(gè)缺點(diǎn)徽龟。
在內(nèi)核架構(gòu)中,用戶服務(wù)是獨(dú)立于內(nèi)核服務(wù)的传透,因此任何用戶服務(wù)崩潰都不會(huì)影響到內(nèi)核服務(wù)旷祸,這就加強(qiáng)了操作系統(tǒng)的健壯性,這是微內(nèi)核的優(yōu)勢(shì)所在浸赫。另一點(diǎn)赃绊,微內(nèi)核的擴(kuò)展性強(qiáng)碧查,添加一個(gè)功能忠售,只需要建立一個(gè)新的服務(wù)到用戶空間當(dāng)中稻扬,而內(nèi)核空間不需要任何的修改。因此盼砍,微內(nèi)核可移植性強(qiáng)浇坐、安全并且易于擴(kuò)展近刘。

宏內(nèi)核定義:宏內(nèi)核同樣管理著用戶程序和硬件之間的系統(tǒng)資源跌宛,但是和微內(nèi)核不一樣的是,在宏內(nèi)核架構(gòu)中蜕猫,用戶服務(wù)和內(nèi)核服務(wù)在同一空間中實(shí)現(xiàn)回右。具體一點(diǎn)翔烁,就是內(nèi)核可以代表內(nèi)核進(jìn)程運(yùn)行代碼蹬屹,就是通常的內(nèi)核進(jìn)程白华;當(dāng)用戶進(jìn)程經(jīng)過系統(tǒng)調(diào)用或者中斷進(jìn)入到內(nèi)核態(tài)時(shí)弧腥,內(nèi)核也可以代表它運(yùn)行代碼管搪。這樣一來更鲁,宏內(nèi)核需要管理的資源多于微內(nèi)核澡为,其大小就相對(duì)大一些了缀壤。
在宏內(nèi)核架構(gòu)當(dāng)中,內(nèi)核管理著CPU調(diào)度筋夏,內(nèi)存管理条篷,文件管理和系統(tǒng)調(diào)用等各模塊的的工作赴叹,由于用戶服務(wù)和內(nèi)核服務(wù)被實(shí)現(xiàn)在同一空間中乞巧,這樣在執(zhí)行速度上要比微內(nèi)核快绽媒。然而,宏內(nèi)核的劣勢(shì)也是顯而易見的囤热,那就是當(dāng)內(nèi)核中的某個(gè)服務(wù)崩潰了旁蔼,整個(gè)內(nèi)核也會(huì)崩潰牌芋。另一點(diǎn),想要在內(nèi)核中添加新的功能就意味著內(nèi)核中的各個(gè)模塊需要做相應(yīng)的修改经宏,因此其擴(kuò)展性很弱烁兰。

  • 總結(jié)微內(nèi)核和宏內(nèi)核的區(qū)別如下:
區(qū)別 微內(nèi)核 宏內(nèi)核
基本概念 用戶服務(wù)和內(nèi)核服務(wù)運(yùn)行在不同的地址空間 用戶服務(wù)和內(nèi)核服務(wù)運(yùn)行在相同的地址空間
執(zhí)行速度
尺寸 較小 較大
可擴(kuò)展性 易擴(kuò)展 不易擴(kuò)展
安全性 單個(gè)服務(wù)崩潰不影響全局 單個(gè)服務(wù)崩潰往往意味整個(gè)系統(tǒng)崩潰
開發(fā)量 開發(fā)量大 平臺(tái)提供的代碼多,相對(duì)開發(fā)量少
2.2 使用范圍不同
  • 原生Android系統(tǒng)主要適用于手機(jī)主之。
  • HarmonyOs采用了分布式設(shè)計(jì),可以支持手機(jī)李根、智能穿戴設(shè)備槽奕、電腦、電視等智能家居設(shè)備房轿,形成一個(gè)無縫的粤攒、統(tǒng)一的操作系統(tǒng)所森。

二. 與Android系統(tǒng)工程結(jié)構(gòu)比對(duì)

1. HarmonyOs的APP工程結(jié)構(gòu)
  • HarmonyOS的應(yīng)用軟件包以APP Pack(Application Package)形式發(fā)布,它是由一個(gè)或多個(gè)HAP(HarmonyOS Ability Package)以及描述每個(gè) HAP 屬性的 pack.info 組成夯接。
  • HAPAbility的部署包,HarmonyOS應(yīng)用代碼圍繞Ability組件展開盔几。一個(gè)HAP是由代碼晴弃、資源、第三方庫及應(yīng)用配置文件組成的模塊包问欠,可分為entryfeature兩種模塊類型:

entry:應(yīng)用的主模塊肝匆。一個(gè) APP 中,對(duì)于同一設(shè)備類型必須有且只有一個(gè) entry類型的HAP顺献,可獨(dú)立安裝運(yùn)行旗国。
feature:應(yīng)用的動(dòng)態(tài)特性模塊。一個(gè) APP 可以包含一個(gè)或多個(gè) feature類型的HAP注整,也可以不含能曾。

2. 與Android工程結(jié)構(gòu)對(duì)比
  • HarmonyOS工程目錄結(jié)構(gòu):
  • Android系統(tǒng)工程目錄結(jié)構(gòu):
目錄結(jié)構(gòu) Android HarmonyOS
源碼目錄 project\entry\src\main\java project\app\src\main\java
資源文件目錄 project\app\src\main\res project\entry\src\main\resources
清單文件 project\app\src\main\AndroidManifest.xml project\entry\src\main\config.json
依賴文件目錄 project\app\libs project\entry\libs
模塊編譯配置文件 project\app\build.gradle project\entry\build.gradle
gradle目錄 project\gradle project\gradle
  • 此外,HarmonyOS還支持用JS開發(fā):

三. 與Android安裝包比對(duì)

  • Android應(yīng)用最終會(huì)被打包成.apk文件肿轨。
  • HarmonyOS應(yīng)用會(huì)被構(gòu)建成.hap文件寿冕,hap是由代碼、資源和第三方庫及應(yīng)用配置文件組成的模塊包椒袍。
  • hap文件在被打包構(gòu)建時(shí)會(huì)生成一個(gè)entry_signed_entry.apk文件驼唱,用于兼容Android系統(tǒng)
  • classes.dex文件與Android系統(tǒng)相同驹暑,對(duì)應(yīng)HarmonyOS中Java部分的代碼玫恳。
  • assets\entry\resources對(duì)應(yīng)Android系統(tǒng)中的res目錄,用于儲(chǔ)存resources中的資產(chǎn)文件优俘。
  • config.json對(duì)應(yīng)Android系統(tǒng)中的AndroidosManifest.xml清單文件京办。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市帆焕,隨后出現(xiàn)的幾起案子惭婿,更是在濱河造成了極大的恐慌,老刑警劉巖叶雹,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件财饥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡折晦,警方通過查閱死者的電腦和手機(jī)佑力,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來筋遭,“玉大人打颤,你說我怎么就攤上這事暴拄。” “怎么了编饺?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵乖篷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我透且,道長(zhǎng)撕蔼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任秽誊,我火速辦了婚禮鲸沮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锅论。我一直安慰自己讼溺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布最易。 她就那樣靜靜地躺著怒坯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藻懒。 梳的紋絲不亂的頭發(fā)上剔猿,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音嬉荆,去河邊找鬼归敬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鄙早,可吹牛的內(nèi)容都是我干的汪茧。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼蝶锋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了什往?” 一聲冷哼從身側(cè)響起扳缕,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎别威,沒想到半個(gè)月后躯舔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡省古,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年粥庄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豺妓。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惜互,死狀恐怖布讹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情训堆,我是刑警寧澤描验,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站坑鱼,受9級(jí)特大地震影響膘流,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鲁沥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一呼股、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧画恰,春花似錦彭谁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蔼两,卻和暖如春甩鳄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背额划。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工妙啃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俊戳。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓揖赴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親抑胎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子燥滑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 一、系統(tǒng)定位 HarmonyOS 基于微內(nèi)核設(shè)計(jì):一款“面向未來”阿逃、面向全場(chǎng)景(移動(dòng)辦公铭拧、運(yùn)動(dòng)健康、社交通信恃锉、媒體...
    紅塵丶閱讀 6,205評(píng)論 17 15
  • HarmonyOS官方開發(fā)文檔地址:https://www.harmonyos.com/cn/develop[ht...
    zzj丶閱讀 597評(píng)論 0 0
  • 內(nèi)核架構(gòu) 內(nèi)核的基礎(chǔ)知識(shí) 所有現(xiàn)代的操作系統(tǒng)在設(shè)計(jì)師都包含一個(gè)稱為內(nèi)核(kernel)的組件搀菩,是整個(gè)系統(tǒng)的核心偷拔。內(nèi)...
    CoderKo1o閱讀 2,755評(píng)論 1 4
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月绕辖,有人笑有人哭,有人歡樂有人憂愁宁炫,有人驚喜有人失落土砂,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,531評(píng)論 28 53
  • 信任包括信任自己和信任他人 很多時(shí)候州既,很多事情谜洽,失敗、遺憾易桃、錯(cuò)過褥琐,源于不自信,不信任他人 覺得自己做不成晤郑,別人做不...
    吳氵晃閱讀 6,187評(píng)論 4 8