別再說“換皮”了,來看看HarmonyOS與Android的全面對比吧


鴻蒙的爭議一直挺大的,很多人都說是換皮,很多做鴻蒙技術分享的博客下面的評論區都吵得不可開交。

為了愛與和平,選個火葯味不重的

我們交流圈里也有很多人發表自己的看法,下面是其中一個大佬在圈里的分享。

一、前言

華為自己對於鴻蒙系統的定位是完全不同於安卓系統的:它不僅是一個手機或某一設備的單一系統,而是一個可將所有設備串聯在一起的通用性系統,就是多個不同設備比如手機、智慧屏、平板電腦、車載電腦等等,都可使用鴻蒙系統。

這段時間我在尋思着學習一下鴻蒙,原因有三:
第一是因為在着手做一個自己的開源項目,技術選型的時候想到了鴻蒙;

第二是我個人非常看好鴻蒙系統的未來,清楚明白華為和一些民族企業擔負的責任和國人的期待,雖然帶着一些民族感情;

最后,最近剛好有時間。鴻蒙剛發布的時候自己是非常激動的,但是后來項目太忙一直沒有認真的去了解過,這次打算花一部分時間認認真真的去研究學習一下。

於是我開始試探性的去請教身邊的大佬們,公司的CTO、中台部門的總監、老東家數十年行業經驗的老架構、以及在中科院讀研究生的大學老室友、技術圈的網友等等,他們都給出了自己獨特的看法,讓我從多方面更好的去了解到了大家對鴻蒙的認識,當然期間也發現很多國內開發者對鴻蒙系統嗤之以鼻或者抱着一些不太看好的心態,甚至有人在我的關於鴻蒙開發的博客下評論一些比較難聽的話!(當然一千個讀者有一千個哈姆雷特,這都是個人自由)。

最后,我預感這肯定是一篇遭到唾棄的文章!但這一切都無法磨滅我堅定的信仰:支持國產、支持民族企業、支持每一個為國家富強而努力的同胞!

二、HarmonyOS與Android的對比

2.1 HarmonyOS並不是Android的替代品

HarmonyOS與Android的對比相信是很多關注鴻蒙的人,非常關注的一個焦點話題,我並不特別了解安卓(Android)開發,只在大學期間有過一些課程的涉獵,但是我想我既然想學鴻蒙(HarmonyOS)那就離不開去硬着頭皮探索這個問題!這里事先聲明,寫這篇文章之前我認真閱讀了很多知乎、C站、B站、HarmonyOS官網、騰訊網關於HarmonyOS相關新聞等文章,也稍微跟了一些源碼最后做了這些總結。

文章觀點:

1.HarmonyOS並不是Android的替代品,HarmonyOS與Android並非同一個賽道
2.HarmonyOS目前缺乏生態支持這一點遠遠比不上Android,但是HarmonyOS的戰略眼光更加高,未來可期
3.HarmonyOS相比Android有一定的性能提升

2.2 系統定位

安卓(Android):是一種基於Linux內核(不包含GNU組件)的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。

鴻蒙(HarmonyOS):是一款面向萬物互聯時代的、全新的分布式操作系統。在傳統的單設備系統能力基礎上,HarmonyOS提出了基於同一套系統能力、適配多種終端形態的分布式理念,能夠支持手機、平板、智能穿戴、智慧屏、車機等多種終端設備,提供全場景(移動辦公、運動健康、社交通信、媒體娛樂等)業務能力。

建議可以看下華為官方對於HarmonyOS系統定位的介紹視頻:視頻地址

從上面的簡單介紹就能很明顯的看出,Android和HarmonyOS兩款產品的研發初衷完全不一樣,根本就不在同一個賽道上,安卓系統面向的是手機端,而鴻蒙系統面向的是這些年比較的新的概念物聯網,致力於利用其5G世界領先的技術,優先布局和打造一個超級終端,萬物互聯的生態。

2.3 內核對比

安卓(Android):基於linux的宏內核設計 ,宏內核包含了操作系統絕大多數的功能和模塊,而且這些功能和模塊都具有最高的權限,只要一個模塊出錯,整個系統就會崩潰,這也是安卓系統容易崩潰的原因。系統開發難度低。

鴻蒙(HarmonyOS):基於微內核設計,微內核僅包括了操作系統必要的功能模塊(任務管理、內存分配等)處在核心地位具有最高權限,其他模塊不具有最高權限,也就是說其他模塊出現問題,對於整個系統的運行是沒有阻礙的。微內核穩定性很高。鴻蒙系統包含了兩個內核:

  • Linux內核
  • LiteOS內核

建議可以看下華為官方對於HarmonyOS的技術架構介紹視頻,它這個有對內核層總體架構有說明。

內核層

內核子系統:HarmonyOS采用多內核設計,支持針對不同資源受限設備選用適合的OS內核。內核抽象層(KAL,Kernel Abstract Layer)通過屏蔽多內核差異,對上層提供基礎的內核能力,包括進程/線程管理、內存管理、文件系統、網絡管理和外設管理等。
驅動子系統:硬件驅動框架(HDF)是HarmonyOS硬件生態開放的基礎,提供統一外設訪問能力和驅動開發、管理框架。

視頻地址

2.4 運行速度

安卓(Android):基於Java語言編碼,Java語言有個很大的缺點是其不能直接與底層操作系統通信,需要通過虛擬機充當中間轉換的角色,這是每一個Java開發人員都知道的知識點,JVM也是我們Java程序員必修的一門高級課程。雖然Java語言由於虛擬機的優化,編譯器的優化,熱點代碼等技術使得其越來越快,但是無法直接與操作系統互相通信一直影響着其性能的突破(AOT(Ahead Of Time)技術我並未研究過,只了解Java的JIT(Just-in-time))。

安卓(Android)技術架構圖如下:

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

鴻蒙(HarmonyOS)系統架構圖如下:

三、方舟編譯器

以下部分來源開源中國對方舟編譯器的介紹:
https://www.oschina.net/p/arkcompiler?hmsr=aladdin1e1

華為方舟編譯器作為一款全新的編譯器可以顯著提高手機的運行速度,它不采用現有編譯器邊解釋邊執行的模式,而是將這種動態編譯改為靜態編譯,可以做到全程執行機器碼,進而高效運行程序,大大縮短程序響應時間。

方舟編譯器的優勢

  • 多語言聯合:將同一應用中的不同語言代碼聯合編譯、聯合優化,消除語言間的性能“鴻溝”,降低開發者的優化成本
  • 輕量運行時:通過編譯器的語言實現能力和優化能力增強,應用運行時的開銷更小
  • 軟硬件協同:編譯器與芯片實現軟硬件協同優化,充分發揮硬件能效,應用體驗更佳
  • 多平台支持:支持面向多樣化的終端設備平台進行編譯和運行,根據設備特征提供便捷的開發與部署策略,提高開發效率

深入鴻蒙

各位開發朋友如果對鴻蒙感興趣,想要上手了解一下的,可以看看下面的內容。

首先,下面這些鴻蒙知識點是必須掌握的:

  • 基礎環境和開發工具
  • 開發工具安裝
  • 運行開發工具完成基礎配置DevEco Studio
  • 運行第一個hello world
  • 運行第一個頁面
  • 通過代碼創建頁面 Feature Ability
  • 編程實現頁面跳轉

在這里筆者給大家分享一份《最全面最系統的鴻蒙學習筆記》帶大家兩個禮拜吃透鴻蒙技術開發里的核心原理問題及解決方案,有需要的朋友可以通過下方代碼塊獲取。

// Wechat number(可復制): 
study5233

《HarmonyOS學習筆記》

總目錄

第一章 入門

  • Harmony OS 概述
  • 開發基礎知識
  • 快速入門

第二章 開發

  • Ability
  • 線程
  • UI
  • 媒體
  • 安全
  • 網絡與連接

第三章 設備

  • 車機
  • 添加多媒體支持
  • 智慧屏

第四章 工具

HUAWEI DevEco Studio 使用指南

第五章 術語

第六章 常見問題

這份《最全面最系統的鴻蒙學習筆記》有需要的朋友可以通過下方代碼塊獲取。

// Wechat number(可復制): 
study5233

最后

未來,混合開發、跨平台開發會成為一種大趨勢,大家可以好好准備,不管怎樣,鴻蒙還是值得期待!

不忘初心,方得始終。加油!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM