- 鴻蒙操作系統(tǒng)應(yīng)用開發(fā)實踐
- 陳美汝 鄭森文等
- 6字
- 2022-07-28 19:33:51
第1章 走進(jìn)Harmony
1.1 了解HarmonyOS
當(dāng)前的移動互聯(lián)網(wǎng)創(chuàng)新,仍然僅局限于以手機(jī)為主的單一設(shè)備,單設(shè)備的操作體驗已經(jīng)不能完全滿足人們在不同場景下的需求,而HarmonyOS正是為萬物互聯(lián)而生。HarmonyOS(鴻蒙操作系統(tǒng))是一款“面向未來”的操作系統(tǒng),一款面向全場景的分布式操作系統(tǒng),它創(chuàng)造性地提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,將多個物理上相互分離的設(shè)備融合成一個“超級虛擬終端”,通過按需調(diào)用和融合不同軟硬件的能力,實現(xiàn)不同終端設(shè)備之間的極速連接、硬件互助和資源共享,為用戶在移動辦公、社交通信、媒體娛樂、運(yùn)動健康、智能家居等多種全場景下,匹配最合適的設(shè)備,提供最佳的智慧體驗。
HarmonyOS主打“1+8+N”的全場景體驗,其中“1”指的是主入口手機(jī),“8”指的是智慧屏、平板、PC、音響、手表、眼鏡、車機(jī)和耳機(jī)8種設(shè)備,“N”則指的是泛IoT硬件構(gòu)成的華為HiLink生態(tài),其中包括移動辦公、智能家居、健康生活、影音娛樂、智能出行等各大場景下的智能硬件設(shè)備。
對于HarmonyOS的應(yīng)用開發(fā)者而言,通過HarmonyOS所提供的多種分布式技術(shù),使應(yīng)用開發(fā)者能夠聚焦于上層業(yè)務(wù)邏輯,而忽略不同終端設(shè)備的形態(tài)差異,從而極大地降低了開發(fā)難度和成本,提升了開發(fā)效率。本書將聚焦于HarmonyOS的應(yīng)用開發(fā),旨在帶領(lǐng)更多開發(fā)者加入HarmonyOS全場景的生態(tài)建設(shè)中。下面具體介紹一下應(yīng)用開發(fā)所需要的基本知識。
1.1.1 HarmonyOS技術(shù)特性
多種設(shè)備之間通過HarmonyOS可以實現(xiàn)硬件互助和資源共享,依賴的關(guān)鍵技術(shù)主要包括分布式軟總線、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度和分布式設(shè)備虛擬化等。
1.分布式軟總線
分布式軟總線是手機(jī)、手表、平板、智慧屏、車機(jī)等多種終端設(shè)備的統(tǒng)一基座,是分布式數(shù)據(jù)管理和分布式任務(wù)調(diào)度的基礎(chǔ),為設(shè)備之間的無縫互聯(lián)提供了統(tǒng)一的分布式通信能力,能夠快速發(fā)現(xiàn)并連接設(shè)備,高效地傳輸任務(wù)和數(shù)據(jù)。分布式軟總線示意圖如圖1.1所示。

圖1.1 分布式軟總線示意圖
2.分布式數(shù)據(jù)管理
分布式數(shù)據(jù)管理位于分布式軟總線之上,用戶數(shù)據(jù)不再與單一物理設(shè)備進(jìn)行綁定,而是將多設(shè)備的應(yīng)用程序數(shù)據(jù)和用戶數(shù)據(jù)進(jìn)行同步管理,應(yīng)用跨設(shè)備運(yùn)行時數(shù)據(jù)無縫銜接,讓跨設(shè)備數(shù)據(jù)處理如同本地處理一樣便捷。分布式數(shù)據(jù)管理示意圖如圖1.2所示。

圖1.2 分布式數(shù)據(jù)管理示意圖
例如基于分布式數(shù)據(jù)管理,可以通過手機(jī)訪問其他設(shè)備中的照片和視頻,并將其他設(shè)備中的視頻轉(zhuǎn)移到智慧屏進(jìn)行播放,也可以將編輯在任一設(shè)備中的備忘錄信息進(jìn)行跨設(shè)備更新同步。
3.分布式任務(wù)調(diào)度
分布式任務(wù)調(diào)度基于分布式軟總線、分布式數(shù)據(jù)管理等技術(shù)特性,構(gòu)建統(tǒng)一的分布式服務(wù)管理,支持對跨設(shè)備的應(yīng)用進(jìn)行遠(yuǎn)程啟動、遠(yuǎn)程控制、綁定/解綁、遷移等操作。在具體的場景下,能夠根據(jù)不同設(shè)備的能力、位置、業(yè)務(wù)運(yùn)行狀態(tài)、資源使用情況,并結(jié)合用戶的習(xí)慣和意圖,選擇最合適的設(shè)備運(yùn)行分布式任務(wù)。分布式任務(wù)調(diào)度示意圖如圖1.3所示。

圖1.3 分布式任務(wù)調(diào)度示意圖
利用分布式任務(wù)調(diào)度機(jī)制,可以實現(xiàn)多設(shè)備間的能力互助。例如,手機(jī)設(shè)備拍照具有美顏功能,但在家庭多人合影等場景下,手機(jī)屏幕較小,此時可以用手機(jī)控制智慧屏的攝像頭,同時還能調(diào)用手機(jī)的相機(jī)美顏功能,并將最終照片傳回手機(jī)。
除此之外,還可以通過分布式任務(wù)調(diào)度,實現(xiàn)業(yè)務(wù)的無縫遷移。例如在上車前,可以通過手機(jī)查找并規(guī)劃好導(dǎo)航路線,待上車后,導(dǎo)航會自動遷移到車載大屏和車機(jī)音箱,待下車后,導(dǎo)航又會自動遷移回手機(jī)。
4.分布式設(shè)備虛擬化
分布式設(shè)備虛擬化可以實現(xiàn)不同設(shè)備的資源融合、設(shè)備管理、數(shù)據(jù)處理,將周邊設(shè)備作為手機(jī)能力的延伸,共同形成一個超級虛擬終端。針對不同類型的任務(wù),為用戶匹配并選擇能力最佳的執(zhí)行硬件,讓業(yè)務(wù)連續(xù)地在不同設(shè)備間流轉(zhuǎn),充分發(fā)揮不同設(shè)備的資源優(yōu)勢。分布式設(shè)備虛擬化示意圖如圖1.4所示。

圖1.4 分布式設(shè)備虛擬化示意圖
5.一次開發(fā),多端部署
HarmonyOS通過提供統(tǒng)一的IDE,進(jìn)行多設(shè)備的應(yīng)用開發(fā),并且通過向用戶提供程序框架、Ability框架及UI框架,保證開發(fā)的應(yīng)用在多終端運(yùn)行時的一致性。通過模塊化耦合,對應(yīng)不同設(shè)備間的彈性部署。一次開發(fā),多端部署的示意圖如圖1.5所示。

圖1.5 一次開發(fā),多端部署示意圖
6.統(tǒng)一OS,彈性部署
HarmonyOS擁有“硬件互助,資源共享”和“一次開發(fā),多端部署”的系統(tǒng)能力,為各種硬件開發(fā)提供了全棧的軟件解決方案,并保持了上層接口和分布式能力的統(tǒng)一。通過組件化和小型化等設(shè)計方法,做到硬件資源的可大可小,以及在多種終端設(shè)備間按需彈性部署。
1.1.2 HarmonyOS系統(tǒng)架構(gòu)
HarmonyOS整體遵從分層設(shè)計,從下向上依次為內(nèi)核層、系統(tǒng)基礎(chǔ)服務(wù)層、框架層和應(yīng)用層。HarmonyOS系統(tǒng)架構(gòu)如圖1.6所示。

圖1.6 HarmonyOS系統(tǒng)架構(gòu)
1.內(nèi)核層
HarmonyOS采用多內(nèi)核設(shè)計(Linux內(nèi)核、HarmonyOS微內(nèi)核或者Lite OS),支持針對不同資源受限設(shè)備選用適合的OS內(nèi)核。內(nèi)核抽象層(KAL)通過屏蔽多內(nèi)核差異,對上層提供基礎(chǔ)的內(nèi)核能力,包括進(jìn)程/線程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管等。
2.系統(tǒng)基礎(chǔ)服務(wù)層
系統(tǒng)基礎(chǔ)服務(wù)層是HarmonyOS的核心能力集合,通過框架層對應(yīng)用程序提供服務(wù),包含系統(tǒng)基本能力子系統(tǒng)集、基礎(chǔ)軟件服務(wù)子系統(tǒng)集、增強(qiáng)軟件服務(wù)子系統(tǒng)集、HarmonyOS驅(qū)動框架(HDF)和硬件抽象適配層(HAL)、硬件服務(wù)子系統(tǒng)集和專有硬件服務(wù)子系統(tǒng)集。
3.框架層
框架層為HarmonyOS的應(yīng)用程序提供了Java/C/C++/JavaScript等多語言的用戶程序框架和Ability框架,以及各種軟硬件服務(wù)對外開放的多語言框架API。
4.應(yīng)用層
應(yīng)用層包括系統(tǒng)應(yīng)用和第三方應(yīng)用。HarmonyOS的應(yīng)用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,F(xiàn)A有UI頁面,而PA無UI頁面。FA/PA均能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能,支持跨設(shè)備調(diào)度與分發(fā),為消費(fèi)者提供一致、高效的應(yīng)用體驗。
- Linux網(wǎng)絡(luò)管理與配置(第2版)
- Implementing Cisco UCS Solutions
- Linux實戰(zhàn)
- Kali Linux滲透測試全流程詳解
- 精解Windows 8
- 曝光:Linux企業(yè)運(yùn)維實戰(zhàn)
- Ubuntu Linux操作系統(tǒng)
- 新編電腦辦公(Windows 10+ Office 2013版)從入門到精通
- 精解Windows 10
- 分布式系統(tǒng)設(shè)計實踐
- Introduction to R for Quantitative Finance
- Windows Vista終極技巧金典
- 從實踐中學(xué)習(xí)Windows滲透測試
- Learn SwiftUI
- μC/OS-III內(nèi)核實現(xiàn)與應(yīng)用開發(fā)實戰(zhàn)指南:基于STM32