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