前言
2021年6月2日督勺,鴻蒙正式發(fā)布了自己的新系統(tǒng)鴻蒙OS 2.0挠他,成為當(dāng)下最熱門(mén)的話題扳抽,身為一個(gè)編程愛(ài)好者特別是安卓愛(ài)好者,自然需要去窺視一下,看下與安卓有那些不同贸呢,有什么方面的變革
Harmony OS與OpenHarmony OS
Harmony OS是華為自主研發(fā)的分布式操作系統(tǒng)镰烧,華為與2020年6月捐贈(zèng)了Harmony OS 1.0的代碼給了開(kāi)放原子開(kāi)源基金會(huì),2020年年底開(kāi)放原子開(kāi)源基金會(huì)攜手各大廠商成立了OpenHarmony項(xiàng)目群贮尉,2021年6月Harmony OS 2.0由OpenHarmony 發(fā)布
Harmony OS的系統(tǒng)架構(gòu)
Android系統(tǒng)架構(gòu)
Android系統(tǒng)架構(gòu)從應(yīng)用層往下分為
- 系統(tǒng)應(yīng)用層
提供核心的系統(tǒng)應(yīng)用拌滋,比如電話,短信猜谚,日歷等核心功能 - Java API框架層
這些 API 形成創(chuàng)建 Android 應(yīng)用所需的構(gòu)建塊败砂,它們可簡(jiǎn)化核心模塊化系統(tǒng)組件和服務(wù)的重復(fù)使用,包括各種組件和服務(wù)魏铅,提供給應(yīng)用開(kāi)發(fā)調(diào)用 - 原生庫(kù)與Android運(yùn)行時(shí)
C 和 C++ 編寫(xiě)的原生庫(kù)以及Android運(yùn)行時(shí)環(huán)境 - 硬件抽象層
提供硬件調(diào)用的抽象接口昌犹,給上層提供訪問(wèn)硬件的能力 - Linux內(nèi)核層
Android系統(tǒng)的核心,基于Linux內(nèi)核览芳,使用各種驅(qū)動(dòng)進(jìn)行硬件資源的調(diào)配
Harmony 系統(tǒng)架構(gòu)
- 應(yīng)用層
應(yīng)用以及第三方應(yīng)用 - 框架層
提供了C/C++/JS等多語(yǔ)言的用戶程序框架和Ability框架斜姥,適用于JS語(yǔ)言的JS UI框架,以及各種軟硬件服務(wù)對(duì)外開(kāi)放的多語(yǔ)言框架API沧竟。根據(jù)系統(tǒng)的組件化裁剪程度铸敏,設(shè)備支持的API也會(huì)有所不同 - 系統(tǒng)服務(wù)層
OpenHarmony的核心能力集合,通過(guò)框架層對(duì)應(yīng)用程序提供服務(wù) - 內(nèi)核層
根據(jù)不同的版本選擇使用不同的內(nèi)核
微內(nèi)核與宏內(nèi)核
內(nèi)核是軟件操作系統(tǒng)中最核心最底層的功能悟泵,它決定了軟件用于什么樣的功能杈笔,是直接運(yùn)行在硬件上的軟件,通過(guò)驅(qū)動(dòng)操作硬件糕非,比如應(yīng)用程序要訪問(wèn)文件系統(tǒng)蒙具,則會(huì)調(diào)用操作系統(tǒng)框架層的文件服務(wù),最終會(huì)調(diào)用內(nèi)核去進(jìn)行資源調(diào)配朽肥,宏內(nèi)核的設(shè)計(jì)中用戶服務(wù)與內(nèi)核服務(wù)運(yùn)行在相同的的空間中實(shí)現(xiàn)禁筏,這樣會(huì)使運(yùn)行效率提高,微內(nèi)核用戶服務(wù)和內(nèi)核服務(wù)運(yùn)行在不同空間衡招,需要通過(guò)消息進(jìn)行交互篱昔,這種隔離提高了系統(tǒng)的安全性,但是會(huì)使運(yùn)行效率降低
微內(nèi)核 | 宏內(nèi)核 | |
---|---|---|
概念 | 用戶服務(wù)和內(nèi)核服務(wù)運(yùn)行在不同的空間中 | 用戶服務(wù)和內(nèi)核服務(wù)運(yùn)行在相同的空間中 |
大小 | 小 | 大 |
執(zhí)行速度 | 慢 | 快 |
可擴(kuò)展性 | 易 | 難 |
安全性 | 單個(gè)服務(wù)奔潰不影響全局 | 影響全局 |
Harmony開(kāi)發(fā)環(huán)境配置
- 進(jìn)行系統(tǒng)官網(wǎng) https://hmxt.org/ 下載開(kāi)發(fā)工具Dev Eco Studio
- 安裝過(guò)程中指定SDK目錄蚁吝,下一步會(huì)自動(dòng)下載SDK
- 整個(gè)過(guò)程和Android Stuido類似
應(yīng)用開(kāi)發(fā)文檔: https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/Readme-CN.md
Harmony APP項(xiàng)目與Android APP項(xiàng)目對(duì)比
使用Java創(chuàng)建的鴻蒙應(yīng)用項(xiàng)目結(jié)構(gòu)
使用Java創(chuàng)建的Android應(yīng)用項(xiàng)目結(jié)構(gòu)
項(xiàng)目結(jié)構(gòu)相似旱爆,都是基于gradle的項(xiàng)目結(jié)構(gòu),文件結(jié)構(gòu)也很類似窘茁,Android開(kāi)發(fā)者應(yīng)該很容易上手怀伦,本次只是粗略的運(yùn)行了下,后續(xù)會(huì)持續(xù)關(guān)注
運(yùn)行效果
運(yùn)行過(guò)程中遇到的問(wèn)題
Studio版本 2.1.0.501
SDK版本 下載了文檔提示的 配置OpenHarmony SDK的 OpenHarmony-SDK-2.0-Canary.7z
在運(yùn)行Device Manager時(shí)提示Error, hdc file is not exists, please check the sdk toolchains installed.
解決辦法 修改Studio配置的SDK路徑file-settings-System settings->Harmony SDK
山林,指向一個(gè)空目錄房待,讓Stuido自動(dòng)下載SDK
歡迎關(guān)注Mike的簡(jiǎn)書(shū)
Android 知識(shí)整理