HarmonyOS并不是Android的替代品
HarmonyOS與Android的對比相信是很多關注鴻蒙的人,非常關注的一個焦點話題,我并不特別了解安卓(Android)開發,只在大學期間有過一些課程的涉獵,但是我想我既然想學鴻蒙(HarmonyOS)那就離不開去硬著頭皮探索這個問題!這里事先聲明,寫這篇文章之前我認真閱讀了很多知乎、C站、B站、HarmonyOS官網、騰訊網關于HarmonyOS相關新聞等文章,也稍微跟了一些源碼最后做了這些總結。
HarmonyOS并不是Android的替代品,HarmonyOS與Android并非同一個賽道
HarmonyOS目前缺乏生態支持這一點遠遠比不上Android,但是HarmonyOS的戰略眼光更加高,未來可期
HarmonyOS相比Android有一定的性能提升
系統定位
安卓(Android):是一種基于Linux內核(不包含GNU組件)的自由及開放源代碼的操作系統。主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。
鴻蒙(HarmonyOS):是一款面向萬物互聯時代的、全新的分布式操作系統。在傳統的單設備系統能力基礎上,HarmonyOS提出了基于同一套系統能力、適配多種終端形態的分布式理念,能夠支持手機、平板、智能穿戴、智慧屏、車機等多種終端設備,提供全場景(移動辦公、運動健康、社交通信、媒體娛樂等)業務能力。
建議可以看下華為官方對于HarmonyOS系統定位的介紹視頻:
從上面的簡單介紹就能很明顯的看出,Android和HarmonyOS兩款產品的研發初衷完全不一樣,根本就不在同一個賽道上,安卓系統面向的是手機端,而鴻蒙系統面向的是這些年比較的新的概念物聯網,致力于利用其5G世界領先的技術,優先布局和打造一個超級終端,萬物互聯的生態。
內核對比
安卓(Android):基于linux的宏內核設計 ,宏內核包含了操作系統絕大多數的功能和模塊,而且這些功能和模塊都
具有最高的權限,只要一個模塊出錯,整個系統就會崩潰,這也是安卓系統容易崩潰的原因。系統開發難度低。
鴻蒙(HarmonyOS):基于微內核設計,微內核僅包括了操作系統必要的功能模塊(任務管理、內存分配等)處在核心地位具有最高權限,其他模塊不具有最高權限,也就是說其他模塊出現問題,對于整個系統的運行是沒有阻礙的。微內核穩定性很高。鴻蒙系統包含了兩個內核:
Linux內核
LiteOS內核
建議可以看下華為官方對于HarmonyOS的技術架構介紹視頻,它這個有對內核層總體架構有說明。
內核層
內核子系統:HarmonyOS采用多內核設計,支持針對不同資源受限設備選用適合的OS內核。內核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多內核差異,對上層提供基礎的內核能力,包括進程/線程管理、內存管理、文件系統、網絡管理和外設管理等。
驅動子系統:硬件驅動框架(HDF)是HarmonyOS硬件生態開放的基礎,提供統一外設訪問能力和驅動開發、管理框架。
運行速度
安卓(Android):基于Java語言編碼,Java語言有個很大的缺點是其不能直接與底層操作系統通信,需要通過虛擬機充當中間轉換的角色,這是每一個Java開發人員都知道的知識點,JVM也是我們Java程序員必修的一門高級課程。雖然Java語言由于虛擬機的優化,編譯器的優化,熱點代碼等技術使得其越來越快,但是無法直接與操作系統互相通信一直影響著其性能的突破(AOT(Ahead Of Time)技術我并未研究過,只了解Java的JIT(Just-in-time))。
安卓(Android)技術架構圖如下:

鴻蒙(HarmonyOS):鴻蒙的開發也可以采用Java語言,官方也推薦使用Java語言開發,但是華為針對安卓或者說Java語言的這種特性,研發了方舟編譯器,通過方舟編譯器編譯的軟件可以直接與底層操作系統通信,方舟編譯器在這一層面做到了取代虛擬機。雖然沒有研究過,但是推斷應該是在打包的時候,通過方舟編譯器轉換為操作系統能夠讀懂的機器語言,這樣就可以跳過虛擬機解釋這一步驟,當然這是肯定對機器的內存要求比較高,應該也存在啟動后無法繼續優化等問題。
鴻蒙(HarmonyOS)系統架構圖如下:

轉自CSDN:李子捌
