鴻蒙系統(tǒng)的底層是安卓嗎
根據(jù)華為的說法,鴻蒙系統(tǒng)是基于Linux內(nèi)核,是一套完全自主研發(fā)的操作系統(tǒng),與谷歌的 Android 類似,均為開源,可供其它廠商使用。
首款搭載了鴻蒙系統(tǒng)的產(chǎn)品,是榮耀智慧屏。不過之前有網(wǎng)友發(fā)現(xiàn),首款搭載鴻蒙OS的產(chǎn)品,出現(xiàn)了ABD調(diào)試授權(quán)模式。而ADB的全稱為Android Debug Bridge,它主要起到調(diào)試橋的作用。通過ADB我們可以在Eclipse中方面通過DDMS來調(diào)試Android程序。在鴻蒙OS中出現(xiàn)這個(gè)問題,讓很多人開始質(zhì)疑鴻蒙是否是基于安卓操作系統(tǒng)研發(fā)。
有分析認(rèn)為,鴻蒙OS1.0其實(shí)是基于開源框架,關(guān)鍵模塊自研。也就是鴻蒙1.0可能是基于安卓的自研系統(tǒng)。而到2020年鴻蒙OS2.0才會(huì)實(shí)現(xiàn)內(nèi)核及應(yīng)用框架自研,也就是說鴻蒙OS2.0才真正脫離安卓系統(tǒng)。
鴻蒙OS的出發(fā)點(diǎn)和Android、iOS都不太一樣,它是一款全新的基于微內(nèi)核的面向全場(chǎng)景的分布式操作系統(tǒng),能夠同時(shí)滿足全場(chǎng)景流暢體驗(yàn)、架構(gòu)級(jí)可信安全、跨終端無縫協(xié)同以及一次開發(fā)多終端部署的要求,應(yīng)未來而生。
不過,目前鴻蒙系統(tǒng)關(guān)鍵點(diǎn)可能不僅僅是技術(shù),更在于華為如何構(gòu)建生態(tài)鏈體系,這也是用戶體驗(yàn)的關(guān)鍵。安卓和iOS都是在歷史的恰當(dāng)時(shí)機(jī)抓住機(jī)會(huì)起來的,生態(tài)鏈已有成熟的商業(yè)運(yùn)作模式和口碑,而國產(chǎn)系統(tǒng)在這方面比較弱勢(shì),一致以來難以壯大。
當(dāng)然,華為有一個(gè)最大的優(yōu)勢(shì)是華為在消費(fèi)電子領(lǐng)域已經(jīng)積累了大量的用戶,先把這部分的用戶給轉(zhuǎn)化掉成功的概率就會(huì)變得非常大,如果國產(chǎn)的操作系統(tǒng)早點(diǎn)推廣成功也不至于在這方面被米國卡脖子而吃大虧。
華為目前已擁有 180 萬開發(fā)者,HMS 集成應(yīng)用 9.6 萬個(gè),活躍用戶 4.9 億,應(yīng)用累計(jì)分發(fā)量 2610 億。余承東表示,要助力中國開發(fā)者走向全球。他表示,“沒有人能夠熄滅滿天星光,每一位開發(fā)者,都是華為要匯聚的星星之火”。
鴻蒙系統(tǒng)架構(gòu)安卓架構(gòu)對(duì)比
HarmonyOS整體遵從分層設(shè)計(jì),從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層。系統(tǒng)功能按照“系統(tǒng) 》 子系統(tǒng) 》 功能/模塊”逐級(jí)展開,在多設(shè)備部署場(chǎng)景下,支持根據(jù)實(shí)際需求裁剪某些非必要的子系統(tǒng)或功能/模塊。
內(nèi)核層
內(nèi)核子系統(tǒng):HarmonyOS采用多內(nèi)核設(shè)計(jì),支持針對(duì)不同資源受限設(shè)備選用適合的OS內(nèi)核。內(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ā)、管理框架。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過框架層對(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)組成。
根據(jù)不同設(shè)備形態(tài)的部署環(huán)境,基礎(chǔ)軟件服務(wù)子系統(tǒng)集、增強(qiáng)軟件服務(wù)子系統(tǒng)集、硬件服務(wù)子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪,每個(gè)子系統(tǒng)內(nèi)部又可以按功能粒度裁剪。
框架層
框架層為HarmonyOS的應(yīng)用程序提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架,以及各種軟硬件服務(wù)對(duì)外開放的多語言框架API;同時(shí)為采用HarmonyOS的設(shè)備提供了C/C++/JS等多語言的框架API,不同設(shè)備支持的API與系統(tǒng)的組件化裁剪程度相關(guān)。
應(yīng)用層
應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用。HarmonyOS的應(yīng)用由一個(gè)或多個(gè)FA(Feature Ability)或PA(Particle Ability)組成。其中,F(xiàn)A有UI界面,提供與用戶交互的能力;而PA無UI界面,提供后臺(tái)運(yùn)行任務(wù)的能力以及統(tǒng)一的數(shù)據(jù)訪問抽象?;贔A/PA開發(fā)的應(yīng)用,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能,支持跨設(shè)備調(diào)度與分發(fā),為用戶提供一致、高效的應(yīng)用體驗(yàn)。
Android
Android 是一種基于 Linux 的開放源代碼軟件棧,為各類設(shè)備和機(jī)型而創(chuàng)建。
Linux 內(nèi)核
Android 平臺(tái)的基礎(chǔ)是 Linux 內(nèi)核。例如,Android Runtime (ART) 依靠 Linux 內(nèi)核來執(zhí)行底層功能,例如線程和低層內(nèi)存管理。
使用 Linux 內(nèi)核可讓 Android 利用主要安全功能,并且允許設(shè)備制造商為著名的內(nèi)核開發(fā)硬件驅(qū)動(dòng)程序。
硬件抽象層 (HAL)
硬件抽象層 (HAL) 提供標(biāo)準(zhǔn)界面,向更高級(jí)別的 Java API 框架顯示設(shè)備硬件功能。HAL 包含多個(gè)庫模塊,其中每個(gè)模塊都為特定類型的硬件組件實(shí)現(xiàn)一個(gè)界面,例如相機(jī)或藍(lán)牙模塊。當(dāng)框架 API 要求訪問設(shè)備硬件時(shí),Android 系統(tǒng)將為該硬件組件加載庫模塊。
Android Runtime
對(duì)于運(yùn)行 Android 5.0(API 級(jí)別 21)或更高版本的設(shè)備,每個(gè)應(yīng)用都在其自己的進(jìn)程中運(yùn)行,并且有其自己的 Android Runtime (ART) 實(shí)例。ART 編寫為通過執(zhí)行 DEX 文件在低內(nèi)存設(shè)備上運(yùn)行多個(gè)虛擬機(jī),DEX 文件是一種專為 Android 設(shè)計(jì)的字節(jié)碼格式,經(jīng)過優(yōu)化,使用的內(nèi)存很少。編譯工具鏈(例如 Jack)將 Java 源代碼編譯為 DEX 字節(jié)碼,使其可在 Android 平臺(tái)上運(yùn)行。
ART 的部分主要功能包括:
預(yù)先 (AOT) 和即時(shí) (JIT) 編譯
優(yōu)化的垃圾回收 (GC)
在 Android 9(API 級(jí)別 28)及更高版本的系統(tǒng)中,支持將應(yīng)用軟件包中的 Dalvik Executable 格式 (DEX) 文件轉(zhuǎn)換為更緊湊的機(jī)器代碼。
更好的調(diào)試支持,包括專用采樣分析器、詳細(xì)的診斷異常和崩潰報(bào)告,并且能夠設(shè)置觀察點(diǎn)以監(jiān)控特定字段
在 Android 版本 5.0(API 級(jí)別 21)之前,Dalvik 是 Android Runtime。如果您的應(yīng)用在 ART 上運(yùn)行效果很好,那么它應(yīng)該也可在 Dalvik 上運(yùn)行,但反過來不一定。
Android 還包含一套核心運(yùn)行時(shí)庫,可提供 Java API 框架所使用的 Java 編程語言中的大部分功能,包括一些 Java 8 語言功能。
原生 C/C++ 庫
許多核心 Android 系統(tǒng)組件和服務(wù)(例如 ART 和 HAL)構(gòu)建自原生代碼,需要以 C 和 C++ 編寫的原生庫。Android 平臺(tái)提供 Java 框架 API 以向應(yīng)用顯示其中部分原生庫的功能。例如,您可以通過 Android 框架的 Java OpenGL API 訪問 OpenGL ES,以支持在應(yīng)用中繪制和操作 2D 和 3D 圖形。
如果開發(fā)的是需要 C 或 C++ 代碼的應(yīng)用,可以使用 Android NDK 直接從原生代碼訪問某些原生平臺(tái)庫。
Java API 框架
您可通過以 Java 語言編寫的 API 使用 Android OS 的整個(gè)功能集。這些 API 形成創(chuàng)建 Android 應(yīng)用所需的構(gòu)建塊,它們可簡(jiǎn)化核心模塊化系統(tǒng)組件和服務(wù)的重復(fù)使用,包括以下組件和服務(wù):
豐富、可擴(kuò)展的視圖系統(tǒng),可用以構(gòu)建應(yīng)用的 UI,包括列表、網(wǎng)格、文本框、按鈕甚至可嵌入的網(wǎng)絡(luò)瀏覽器
資源管理器,用于訪問非代碼資源,例如本地化的字符串、圖形和布局文件
通知管理器,可讓所有應(yīng)用在狀態(tài)欄中顯示自定義提醒
Activity 管理器,用于管理應(yīng)用的生命周期,提供常見的導(dǎo)航返回棧
內(nèi)容提供程序,可讓應(yīng)用訪問其他應(yīng)用(例如“聯(lián)系人”應(yīng)用)中的數(shù)據(jù)或者共享其自己的數(shù)據(jù)
開發(fā)者可以完全訪問 Android 系統(tǒng)應(yīng)用使用的框架 API。
系統(tǒng)應(yīng)用
Android 隨附一套用于電子郵件、短信、日歷、互聯(lián)網(wǎng)瀏覽和聯(lián)系人等的核心應(yīng)用。平臺(tái)隨附的應(yīng)用與用戶可以選擇安裝的應(yīng)用一樣,沒有特殊狀態(tài)。因此第三方應(yīng)用可成為用戶的默認(rèn)網(wǎng)絡(luò)瀏覽器、短信 Messenger 甚至默認(rèn)鍵盤(有一些例外,例如系統(tǒng)的“設(shè)置”應(yīng)用)。
系統(tǒng)應(yīng)用可用作用戶的應(yīng)用,以及提供開發(fā)者可從其自己的應(yīng)用訪問的主要功能。例如,如果您的應(yīng)用要發(fā)短信,您無需自己構(gòu)建該功能,可以改為調(diào)用已安裝的短信應(yīng)用向您指定的接收者發(fā)送消息。
責(zé)任編輯:YYX
-
華為
+關(guān)注
關(guān)注
215文章
34263瀏覽量
251026 -
安卓
+關(guān)注
關(guān)注
5文章
2117瀏覽量
56966 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2634瀏覽量
66163
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論