牟 峰
(南京工業(yè)大學(xué)計算機(jī)學(xué)院 江蘇·南京 211816)
在高新信息技術(shù)領(lǐng)域的不確定性日益增強(qiáng)的時代里,華為的鴻蒙系統(tǒng)(HarmonyOS)作為一款真正意義上的國產(chǎn)分布式操作系統(tǒng),華為歡迎友商和開發(fā)者加入鴻蒙計劃并提供技術(shù)扶持。在高校中培養(yǎng)更多的專業(yè)鴻蒙軟件開發(fā)者,是鴻蒙生態(tài)鏈的重要一環(huán)。本文將從頭開始,探索鴻蒙軟件開發(fā)學(xué)習(xí)之路。
以下對HarmonyOS操作系統(tǒng)做全面說明。
從開發(fā)者角度出發(fā),可以將搭載HarmonyOS的設(shè)備在系統(tǒng)層面融為一體、形成超級終端,根據(jù)需要協(xié)同工作。
從使用者角度出發(fā),HarmonyOS能夠?qū)⒏黝惤K端進(jìn)行能力整合,實(shí)現(xiàn)不同終端設(shè)備之間的快速連接、能力互助、資源共享,匹配合適的設(shè)備、提供流暢的全場景體驗(yàn)。
HarmonyOS采用了多種分布式技術(shù),使應(yīng)用開發(fā)與不同終端設(shè)備的形態(tài)差異無關(guān),讓開發(fā)者能夠聚焦上層業(yè)務(wù)邏輯,更加便捷、高效地開發(fā)應(yīng)用。
HarmonyOS采用了組件化的設(shè)計方案,可根據(jù)不同設(shè)備和業(yè)務(wù)靈活裁剪,滿足不同形態(tài)終端設(shè)備對操作系統(tǒng)的要求。
HarmonyOS和大多數(shù)操作系統(tǒng)一樣,分功能層次形實(shí)現(xiàn)。了解操作系統(tǒng)的層次和組成,可以很方便地明確哪些功能操作系統(tǒng)已提供、并可以裁剪;哪些功能需開發(fā),開發(fā)工作處在整個系統(tǒng)的哪個層面和位置。
HarmonyOS的分層結(jié)構(gòu)和功能如圖1所示。
圖1:HarmonyOS的分層結(jié)構(gòu)和功能
內(nèi)核層包括內(nèi)核子系統(tǒng)和驅(qū)動子系統(tǒng)兩個部分。可以將不同的內(nèi)容抽象成一個統(tǒng)一的對外內(nèi)核和驅(qū)動。
(1)核子系統(tǒng):HarmonyOS支持多種內(nèi)核,針對擁有不同資源的設(shè)備選用適合的 OS內(nèi)核。通過內(nèi)核抽象層(KAL,Kernel Abstract Layer)屏蔽不同內(nèi)核差異,對上層提供進(jìn)程/線程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管理等基礎(chǔ)的內(nèi)核能力。
(2)驅(qū)動子系統(tǒng):HarmonyOS提供硬件驅(qū)動框架(HDF),提供統(tǒng)一外設(shè)訪問能力和驅(qū)動開發(fā)、管理框架。改框架是硬件生態(tài)開放的基礎(chǔ),開發(fā)新的使用鴻蒙的嵌入式系統(tǒng),會涉及該部分的驅(qū)動開發(fā)工作。
系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過框架層對應(yīng)用程序提供服務(wù)。該層包含以下幾個部分:
(1)系統(tǒng)基本能力子系統(tǒng)集:該子系統(tǒng)為分布式應(yīng)用在HarmonyOS多設(shè)備上的運(yùn)行、調(diào)度、遷移等操作提供了基礎(chǔ)能力。其由分布式軟總線、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度、方舟多語言運(yùn)行時、公共基礎(chǔ)庫、多模輸入、圖形、安全、AI等子系統(tǒng)組成。其中,方舟運(yùn)行時提供了C/C++/JS多語言運(yùn)行時和基礎(chǔ)的系統(tǒng)類庫。
(2)基礎(chǔ)軟件服務(wù)子系統(tǒng)集:該子系統(tǒng)為HarmonyOS提供公共的、通用的軟件服務(wù),由事件通知、電話、多媒體、DFX(Design For X)、MSDP&DV等子系統(tǒng)組成。
(3)增強(qiáng)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供針對不同設(shè)備的、差異化的能力增強(qiáng)型軟件服務(wù),由智慧屏專有業(yè)務(wù)、穿戴專有業(yè)務(wù)、IoT專有業(yè)務(wù)等子系統(tǒng)組成。
(4)硬件服務(wù)子系統(tǒng)集:為HarmonyOS提供硬件服務(wù),由位置服務(wù)、生物特征識別、穿戴專有硬件服務(wù)、IoT專有硬件服務(wù)等子系統(tǒng)組成。
各子系統(tǒng)可以根據(jù)不同設(shè)備形態(tài)的部署環(huán)境,基礎(chǔ)軟件服務(wù)子系統(tǒng)集、增強(qiáng)軟件服務(wù)子系統(tǒng)集、硬件服務(wù)子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪,每個子系統(tǒng)內(nèi)部又可以按功能粒度裁剪。
框架層為 HarmonyOS應(yīng)用開發(fā)提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架,兩種UI框架(包括適用于Java語言的Java UI框架、適用于JS語言的JSUI框架),以及各種軟硬件服務(wù)對外開放的多語言框架API。根據(jù)系統(tǒng)的組件化裁剪程度,HarmonyOS設(shè)備支持的API也會有所不同。
應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用。HarmonyOS的應(yīng)用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,F(xiàn)A有UI界面,提供與用戶交互的能力;而PA無UI界面,提供后臺運(yùn)行任務(wù)的能力以及統(tǒng)一的數(shù)據(jù)訪問抽象。FA在進(jìn)行用戶交互時所需的后臺數(shù)據(jù)訪問也需要由對應(yīng)的PA提供支撐。
HarmonyOS軟件開發(fā)環(huán)境構(gòu)建包括安裝開發(fā)工具,并配置相關(guān)開發(fā)環(huán)境。鴻蒙的開發(fā)環(huán)境為 DevEco Studio,支持在windows和macOS系統(tǒng)兩種桌面操作系統(tǒng)中安裝。對開發(fā)用電腦的硬件要求為,內(nèi)存:8GB及以上;硬盤:100GB及以上;分辨率:1280*800像素及以上。以windows下安裝該開發(fā)軟件為例。簡述開發(fā)環(huán)境構(gòu)建過程。
進(jìn)入HUAWEI DevEco Studio產(chǎn)品頁,點(diǎn)擊下載列表后的按鈕,下載DevEco Studio 2.1 Release或DevEco Studio 2.2 Beta1中的一個。
DevEcoStudio的編譯構(gòu)建依賴JDK,DevEcoStudio預(yù)置了OpenJDK,版本為1.8,安裝過程中會自動安裝JDK。
下載完成后,雙擊下載的“deveco-studio-xxxx.exe”,進(jìn)入DevEcoStudio安裝向?qū)В谌缦掳惭b選項(xiàng)界面勾選64-bit launcher后,點(diǎn)擊Next,直至安裝完成。
DevEco Studio提供SDK Manager統(tǒng)一管理SDK及工具鏈,下載各種編程語言的SDK包時,SDKManager會自動下載該SDK包依賴的工具鏈。多種編程語言的SDK包和工具鏈,具體說明如圖2所示。
圖2:多種編程語言的SDK包和工具鏈
首次安裝和非首次安裝DevEco Studio,會有不同處理步驟。第一次安裝使用DevEco Studio,需要下載HarmonyOS SDK及對應(yīng)工具鏈。
如果已經(jīng)下載過HarmonyOS SDK,當(dāng)存在新版本的SDK時,可以通過SDK Manager來更新對應(yīng)的SDK。進(jìn)入SDK Manager的方法:配置HDC工具環(huán)境變量。
HDC是為開發(fā)者提供HarmonyOS應(yīng)用的調(diào)試工具,需要為HDC工具的端口號設(shè)置環(huán)境變量。
在此電腦->屬性->高級系統(tǒng)設(shè)置->高級->環(huán)境變量中,添加 HDC端口變量。變量名為:HDC_SERVER_PORT,變量值設(shè)置為7035。
以Phone工程為例,并初步熟悉鴻蒙軟件開發(fā)方法。在Phone的遠(yuǎn)程模擬器中運(yùn)行該工程。
打開DevEco Studio,在歡迎頁點(diǎn)擊Create HarmonyOS Project,創(chuàng)建一個新工程。根據(jù)工程創(chuàng)建向?qū)?,選擇需要的Ability工程模板,然后點(diǎn)擊Next。填寫工程相關(guān)信息,Device Type選擇Phone,其他保持默認(rèn)值即可。
DevEco Studio提供遠(yuǎn)程模擬器和本地模擬器。以遠(yuǎn)程模擬器為例進(jìn)行說明。
(1)在DevEcoStudio菜單欄,點(diǎn)擊Tools>DeviceManager。(2)在Remote Emulator頁簽中點(diǎn)擊Login,在瀏覽器中彈出華為開發(fā)者聯(lián)盟帳號登錄界面,請輸入已實(shí)名認(rèn)證的華為開發(fā)者聯(lián)盟帳號的用戶名和密碼進(jìn)行登錄。(3)在設(shè)備列表中,選擇Phone設(shè)備P40,并點(diǎn)擊按鈕,運(yùn)行模擬器。(4)DevEco Studio會啟動應(yīng)用的編譯構(gòu)建,完成后應(yīng)用即可運(yùn)行在模擬器上。