《華為HDC:鴻蒙生態應用開發白皮書V2.0(2023)(131頁).pdf》由會員分享,可在線閱讀,更多相關《華為HDC:鴻蒙生態應用開發白皮書V2.0(2023)(131頁).pdf(131頁珍藏版)》請在三個皮匠報告上搜索。
1、 V2.0 版權所有 華為終端有限公司2022。保留一切權利。本材料所載內容受著作權法的保護,著作權由華為公司或其許可人擁有,但注明引用其他方的內容除外。未經華為公司或其許可人事先書面許可,任何人不得將本材料中的任何內容以任何方式進行復制、經銷、翻印、播放、以超級鏈路連接或傳送、存儲于信息檢索系統或者其他任何商業目的的使用。商標聲明 以上為華為公司的商標(非詳盡清單),未經華為公司書面事先明示許可,任何第三方不得以任何形式使用。注意 華為會不定期對本文檔的內容進行更新。本文檔僅作為使用指導,文檔中的所有陳述、信息和建議不構成任何明示或暗示的擔保。華為終端有限公司 地址:廣東省東莞市松山湖園區新
2、城路 2 號 網址:https:/ 1)一次開發,多端部署 3)統一生態,原生智能 O1 O3 萬物互聯時代應用開發的機遇、挑戰和趨勢 鴻蒙生態應用核心技術理念 9 21 2)可分可合,自由流轉 18 CONTENTCONTENT O2 鴻蒙生態應用開發核心概念 O4 O5 O6 鴻蒙生態應用開發能力全景 2)鴻蒙開發套件 3)三方庫 4)開發者支持平臺 26 46 45 高效開發與測試 1)典型開發場景 3)ArkTS 語言 4)ArkUI 框架 48 50 49 5)應用程序框架 6)SDK 7)集成開發環境 62 71 65 8)測試工具 80 統一上架與多端分發 1)快速上架 2)應用
3、分發 3)服務分發 93 101 97 2)設計 48 1)賦能套件 24 全方位運維分析 O9 全場景案例參考 1O 附錄:術語 O8 O7 自由流轉與分布式運行環境 1)價值與架構定義 2)跨端遷移 3)多端協同 107 111 110 2 2 萬物互聯時代應用開發 的機遇、挑戰和趨勢 ChapterChapter 1 1 3 3 經過十多年的發展,傳統移動互聯網的增長紅利已漸見頂。萬物互聯時代正在開啟,應用的設備底座將從幾十億手機擴展到數百億 IoT 設備。GSMA 預測到 2025 年,全球物聯網終端連接數量將達 246 億個,其中消費物聯網終端連接數量將達 110 億個(注:數據來自
4、于全球移動通信系統協會發布的2020 年移動經濟報告)。IDC 預計到2025 年,中國物聯網總連接量將達到 102.7 億個(注:數據來自于 IDC發布的中國物聯網連接規模預測,20202025報告)。全新的全場景設備體驗,正深入改變消費者的使用習慣。同時應用開發者也面臨設備底座從手機單設備到全場景多設備的轉變,通過全場景多設備作為全新的底座,為消費者帶來萬物互聯時代更為高效、便捷的體驗。新的場景同時也帶來了新的挑戰。開發者不僅需要支持更加多樣化的設備,還需要支持跨設備的協作。不同設備類型意味著不同的傳感器能力、硬件能力、屏幕尺寸、操作系統和開發語言,還意味著差異化的交互方式。同時跨設備協作
5、也讓開發者面臨分布式開發帶來的各種復雜性,例如跨設備的網絡通信、數據同步等。若采取傳統開發模式,適配和管理工作量將非常巨大。當前移動應用開發中遇到的主要挑戰包括:針對不同設備上的不同操作系統,重復開發,維護多套版本。多種語言棧,對人員技能要求高。多種開發框架,不同的編程范式。命令式編程,需關注細節,變更頻繁,維護成本高。與此同時,AI 時代全面來臨,在 PC 互聯網到移動互聯網到智能化終端演進過程中,AI計算主要在云端數據中心進行,非常依賴網絡,具有一定的時延,且數據傳輸的安全性、私密性不能得到有效保證。隨著人們對交互和信息獲取的智能化要求越來越高,移動設備的計 4 4 算能力越來越強,在設備
6、側就能提供 AI 的相關能力,例如自然語言交互、環境智能感知、圖像識別等。如何快速地使用設備側的強大 AI 能力,使自己的應用更加智能化,進而更好的服務消費者,也是開發者面臨的全新挑戰。移動終端上的應用生態發展到今天也面臨著變革。傳統厚重的App,整體體驗好,功能齊全,但開發成本高、周期長,且存在搜索,安裝,升級,卸載等一系列需要用戶主動關注的顯性操作,這些顯性操作給用戶帶來了實質性的使用成本。輕量化、可快速達成消費者意圖、可獨立執行、完成單一功能的程序實體正成為新的趨勢,例如小程序、App Clips、快應用等。根據阿拉丁指數的統計,全網小程序已經突破 700 萬個(注:數據來自于阿拉丁研究
7、院發布的2021 年度小程序互聯網發展白皮書),遠超 App 數量。大型應用開發者普遍向用戶提供輕量化程序實體。在很多特定的使用場景下,小程序等輕量化程序實體的使用占比已超過 App,成為面向用戶的主要觸達方式。輕量化的程序實體所具備的“即用即走、無需安裝卸載、永遠最新”的特征,也推動了 App 基于搜索下載的“人找應用”的傳統分發向“服務找人”的智慧分發的演進。App 遵循“搜索、下載、安裝、使用”的模式,用戶主動發現的成本高,拉新、促活、召回的全生命周期流程相對被動。輕量化的程序實體具有即用即走的體驗,可通過各類終端的系統級智慧入口進行分發,甚至可以在三方 App 中分發,依托無所不在的入
8、口流量和標簽化識別,向用戶主動提供精準服務。配合 CPS(Cost Per Sale)等商業模式,可以為開發者帶來更高的 ROI(Return of Investment)。為了更好的抓住機遇,應對萬物互聯所帶來的一系列挑戰,新的應用生態應該具備如下特征:5 5 單一設備延伸到多設備:應用一次開發就能在多個設備上運行,軟件實體能夠從單一設備轉移到其他設備上,且多個設備間能夠協同運行,給消費者提供全新的分布式體驗。厚重應用模式到輕量化服務模式:提供輕量化的服務,最小化資源消耗,一步直達,快速完成消費者特定場景的任務。集中化分發到 AI 加持下的智慧分發:為消費者提供智慧場景服務,實現“服務找人”
9、。純軟件到軟硬芯協同的 AI 能力:提供軟硬芯協同優化的原生 AI 能力,全面滿足應用高性能訴求。6 6 鴻蒙生態應用 開發核心概念 ChapterChapter 2 2 7 7 HarmonyOS應用:使用 HarmonyOS SDK 開發的應用程序,能夠在華為終端設備(如:手機、平板等)上運行,其有兩種形態:傳統方式的需要安裝的 App。輕量級,具備免安裝,隨處可即,服務直達,自由流轉等關鍵特征的元服務。HarmonyOS 元服務:元服務是 HarmonyOS 面向萬物互聯時代提供的一種輕量級應用程序形態。它基于 HarmonyOS 平臺開放能力開發,打包為 App Pack 形態,運行在
10、HarmonyOS操作系統,擁有一張或者多張萬能卡片,由 HarmonyOS應用程序框架管理,具備隨處可及、服務直達、跨設備等核心特征。萬能卡片:HarmonyOS 系統定義的一種界面展示形式,它是 HarmonyOS 元服務的一個組成部分,將重要信息或操作前置到卡片,以達到服務直達,減少操作層級的目的。萬能卡片常用于嵌入到其他系統應用(桌面/負一屏)中作為其界面的一部分顯示,并支持點擊拉起元服務。HarmonyOS 元服務必須實現萬能卡片。HarmonyOS 應用與元服務基于同一個鴻蒙系統技術棧開發,同屬一個鴻蒙生態。開發者通過業務解耦將應用分解為若干元服務獨立開發,按需根據場景組合成復雜應
11、用。8 8 鴻蒙生態應用鴻蒙生態應用 核心技術理念核心技術理念 ChapterChapter 3 3 1 1 -1)一次開發,多端部署-2)可分可合,自由流轉-3)統一生態,原生智能 9 9 在萬物智聯時代重要機遇期,鴻蒙系統結合移動生態發展的趨勢,提出了三大技術理念:一次開發,多端部署;可分可合,自由流轉;統一生態,原生智能。圖 3-1:核心技術理念 1)一次開發,多端部署“一次開發,多端部署”指的是一個工程,一次開發上架,多端按需部署。目的是為了支撐開發者高效地開發多種終端設備上的應用。為了實現這一目的,鴻蒙系統提供了幾個核心能力,包括多端開發環境,多端開發能力以及多端分發機制。1010
12、圖 3-2:一次開發 多端部署 多端開發環境 HUAWEI DevEco Studio 是面向全場景多設備提供的一站式開發平臺,支持多端雙向預覽、分布式調優、分布式調試、超級終端模擬、低代碼可視化開發等能力,幫助開發者降低成本、提升效率、提高質量。HUAWEI DevEco Studio 提供的核心能力如下圖所示:圖 3-3:HUAWEI DevEco Studio 核心功能和特征 1.多端雙向預覽 在鴻蒙生態應用的開發階段,因不同設備的屏幕分辨率、形狀、大小等差異,開發者需要在不同設備上查看 UI 界面顯示,確保實現效果與設計目標一致。傳統的開發模式下,開 1111 發者需要獲取大量不同的真
13、機設備用于測試驗證。HUAWEI DevEco Studio 提供了多種設備的雙向預覽能力,支持同時查看 UI 代碼在多個設備上的預覽效果,并支持 UI 代碼和預覽效果的雙向定位修改。2.分布式調試 鴻蒙生態應用具有天然的分布式特征,體現在同一個應用在多個設備之間會有大量的交互。開發過程中,對這些交互進行調試時,需要對每個設備分別建立調試會話,并且需要在多個設備之間來回切換,容易造成調試不連續、操作繁瑣等問題。為了提升開發效率,HUAWEI DevEco Studio 提供了分布式調試功能,支持跨設備調試,通過代碼斷點和調試堆??梢苑奖愕馗櫜煌O備之間的交互,用于定位多設備互動場景下的代碼缺
14、陷。圖 3-4:分布式調試交互圖 3.分布式調優 分布式應用的運行性能至關重要。在跨端遷移場景中,需要應用在目標設備上快速啟動,以實現和原設備之間的無縫銜接;在多端協同場景中,需要應用在算力和資源不同的多個設備上都能高效運行,以獲得整體的流暢體驗。以往開發者在分析分布式應用的性能問題時,1212 需要單獨查看每個設備的性能數據,并手動關聯分析這些數據,操作繁瑣,復雜度高。HUAWEI DevEco Studio 提供了分布式調優功能,支持多設備分布式調用鏈跟蹤、跨設備調用堆??p合,同時采集多設備性能數據并進行聯合分析。圖 3-5:多設備聯合分析 4.超級終端模擬 移動應用開發時需要使用本地模擬
15、器來進行應用調試,實現快速開發的目的。鴻蒙生態應用需要運行在多種不同類型的設備上,為此 HUAWEI DevEco Studio 提供了不同類型的終端模擬,支持開發者在多個模擬終端上進行開發調試,降低門檻、節約成本。同時,多個模擬終端、真機設備也可以自由地組成超級終端,進一步降低開發者獲取分布式調測環境的難度。5.低代碼可視化開發 低代碼開發提供 UI 可視化開發能力,支持自由拖拽組件和可視化數據綁定,可快速預覽效果,所見即所得。通過拖拽式編排、可視化配置的方式,幫助開發者減少重復性的代碼 1313 編寫,快速地構建多端應用程序。低代碼開發的產物如組件、模板等可以被其他模塊的代碼引用,并且能通
16、過跨工程復用,支持開發團隊協同完成復雜應用的開發。多端開發能力 應用如需在多個設備上運行,需要適配不同的屏幕尺寸和分辨率、不同的交互方式(如觸摸和鍵盤等)、不同的硬件能力(如內存差異和器件差異等),開發成本較高。因此,多端開發能力的核心目標是降低多設備應用的開發成本。為了實現該目標,鴻蒙系統提供了以下幾個核心能力,支持多端 UI 適配,交互事件歸一,設備能力抽象,幫助開發者降低開發與維護成本,提高代碼復用度。1.多端 UI 適配 不同設備屏幕尺寸、分辨率等存在差異,鴻蒙系統將對屏幕進行邏輯抽象,包括尺寸和物理像素,并提供豐富的自適應/響應式的布局和視覺能力,方便開發者進行不同屏幕的界面適配。屏
17、幕邏輯抽象:鴻蒙系統提供虛擬像素 vp(virtual pixel)對分辨率進行抽象,不同設備的系統在底層將物理像素轉化成虛擬像素,為應用開發者提供統一單位。不同設備的尺寸存在差異,鴻蒙系統根據設備的屏幕水平寬度,抽象和定義了四種尺寸:超?。▁s)、?。╯m)、中(md)、大(lg)。這四種抽象后的屏幕尺寸與日常使用的設備屏幕類型有一定的對應關系,例如:超小對應智能穿戴設備,小對應手機和折疊屏折疊態,中對應折疊屏展開態和平板,大對應智慧屏。開發者可面向應用運行的目標設備進行屏幕類型的適配。1414 圖 3-6:尺寸抽象化 布局:鴻蒙系統提供的布局主要分為自適應布局和響應式布局。自適應布局是當外
18、部容器大小發生變化時,容器內元素可以根據相對關系自動變化以適應外部容器變化的布局能力。相對關系包含占比、固定寬高比、顯示優先級等。當前自適應布局能力主要有 7 種:拉伸能力、均分能力、占比能力、縮放能力、延伸能力、隱藏能力、折行能力。響應式布局是當顯示空間大小發生變化時,布局可以根據預設斷點、柵格或特定的特征(如屏幕方向、窗口寬高等)進行自動切換。當前響應式布局能力主要有 3 種:斷點、媒體查詢、柵格布局。鴻蒙系統將響應式布局能力下沉到默認組件的基礎屬性中,比如網格、列表和輪播組件等,支持自動增加顯示列數,以便充分利用屏幕寬度,節省應用開發工作量。視覺:鴻蒙系統提供的視覺樣式能力,包括分層參數
19、、多態組件和主題。2.交互事件歸一 事件歸一抽象:不同設備間的交互方式等存在差異,如觸摸、鍵盤、鼠標、語音、手寫筆等,鴻蒙系統將不同設備的輸入映射成歸一交互事件,從而簡化開發者適配邏輯。以縮放交互為例,通過多指觸控的張合來完成縮放動作,在多設備場景下,縮放交互會出現多種不同的操作輸入方式,如表 3-1 所示。為了讓應用更容易的支持不同的交互方式,鴻蒙系統提供歸一的縮放交互事件。1515 表 3-1:縮放交互的規則 操作方式 觸屏雙指捏合交互 鍵盤 Ctrl 鍵+鼠標滾輪交互 鍵盤 Ctrl 鍵+“+/-”鍵交互 觸控板雙指捏合交互 表冠旋轉交互 上報事件 觸屏雙指捏合事件 按鍵+滾輪組合事件
20、按鍵組合點擊事件 觸控板雙指捏合事件 表冠旋轉事件 組件歸一響應:當應用部署在不同設備上供用戶使用時,需要支持多種 I/O 設備,界面呈現出相應的狀態為用戶提供正確的視覺引導。例如觸摸時顯示按壓狀態,鼠標特有的懸停狀態,鍵盤走焦狀態。鴻蒙系統默認提供多種交互方式的組件實現,方便開發者支持多種輸入方式。3.設備能力抽象 不同設備間的軟、硬件能力等存在差異,如設備是否具備定位能力、是否具備攝像頭、是否具備藍牙功能等,鴻蒙系統需要對設備能力進行邏輯抽象,并提供接口來查詢設備是否支持某一能力,方便開發者進行不同軟、硬件能力的功能適配。在鴻蒙系統中,使用SystemCapability(簡寫為 SysC
21、ap)定義每個部件對應用開發者提供的系統軟硬件能力。應用開發者基于統一的方式訪問不同設備的能力。1616 圖 3-7:API、SystemCapability、部件和設備的關系 多端分發機制 如果需要開發多設備上運行的應用,一般會針對不同類型的設備多次開發并獨立上架。開發和維護的成本大,為了解決這個問題,鴻蒙系統提供了“一次開發,多端部署”的能力,開發者開發多設備應用,只需要一套工程,一次打包出多個 HAP,統一上架,即可根據設備類型按需進行分發。除了可以開發傳統的應用,開發者還可以開發元服務。元服務是一種面向未來的服務提供方式,具有獨立入口的、免安裝的、可為用戶提供一個或多個便捷服務的應用程
22、序形態。鴻蒙系統為元服務提供了更多的分發入口,方便用戶獲取,同時也增加了元服務露出的機會。1717 1.多設備按需分發 鴻蒙系統提供了兩種模式幫助開發者基于“一次開發,多端部署”能力分發應用和元服務到不同設備上。圖 3-8:多設備按需分發的兩種模式 模式 1:應用或服務的 UI 自適應不同尺寸的設備屏幕,并且在不同設備的功能相同,可以實現多設備共享一個 HAP 包。這種場景下建議開發者通過一個模塊來開發,并配置該模塊支持多設備,然后再編譯構建生成一個 HAP,分發到不同類型的設備上運行。模式 2:應用或服務的 UI、功能在不同設備間存在差異,無法實現 HAP 包多設備歸一??筛鶕嶋H情況設置不
23、同模塊適用的設備類型,編譯構建多個 HAP 包,一起上架。HUAWEI AppGallery Connect 會自動提取 HAP 中的設備類型的配置信息,為對應的設備自動分發正確的 HAP 包組合。1818 2.多入口按需分發 鴻蒙系統為元服務提供了更多的分發入口,基于場景和用戶意圖拉起元服務,實現“服務直達”。鴻蒙生態提供的豐富入口如下圖所示:圖 3-9:多入口按需分發 2)可分可合,自由流轉 元服務是鴻蒙系統提供的一種全新的應用形態,具有獨立入口,用戶可通過點擊、碰一碰、掃一掃等方式直接觸發,無需顯式安裝,由程序框架后臺靜默安裝后即可使用,可為用戶提供便捷服務。傳統移動生態下,開發者通常需
24、要開發一個原生應用版本,如果提供小程序給用戶,往往需要開發若干個獨立的小程序。鴻蒙生態下,鴻蒙原生支持元服務開發,開發者無需維護多套版本,通過業務解耦將應用分解為若干元服務獨立開發,按需根據場景組合成復雜應用。1919 元服務基于鴻蒙系統 API 開發,支持運行在 1+8+N 設備上,供用戶在合適的場景、合適的設備上便捷使用。元服務是支撐可分可合,自由流轉的輕量化程序實體,幫助開發者的服務更快觸達用戶。具備如下特點:觸手可及:元服務可以在服務中心發現并使用,同時也可以基于合適場景被主動推薦給用戶使用,例如用戶可在服務中心和小藝建議中發現系統推薦的服務。服務直達:元服務無需安裝卸載,“秒開體驗”
25、,即點即用,即用即走。萬能卡片:支持用戶無需打開元服務便可獲取服務內重要信息的展示和動態變化,如天氣、關鍵事務備忘、熱點新聞列表。自由流轉:元服務支持運行在多設備上并按需跨端遷移,或者多個設備協同起來給用戶提供最優的體驗。例如手機上未完成的郵件,遷移到平板繼續編輯,手機用作文檔翻頁和批注,配合智慧屏完成分布式辦公;例如分布式游戲場景,手機可作為手柄,與智慧屏配合玩游戲,獲得新奇游戲體驗??煞挚珊?在開發態,開發者通過業務解耦,把不同的業務拆分為多個模塊。在部署態,開發者可以將一個或多個模塊自由組合,打包成一個 App Pack 統一上架。在分發運行態,每個 HAP都可以單獨分發滿足用戶單一使用
26、場景,也可以多個 HAP 組合分發滿足用戶更加復雜的使用場景。開發者可以在以下兩種模式中選擇,進行鴻蒙生態應用、元服務的打包和上架。2020 圖 3-10:兩種打包上架模式 模式一:打包成多個App Pack,不同App Pack的包名是不一樣的,每個App Pack都需要單獨上架。在運行態,應用和服務的生命周期完全獨立。模式二:打包成一個 App Pack,App Pack 里面的 HAP 包名相同,統一上架。在運行態,應用生命周期完全共享。自由流轉 傳統應用只能在單個設備內運行,當用戶有多個設備,且要完成多個任務時,則需要在多個設備間來回切換。因此應用能夠在設備之間流轉,不間斷給用戶提供服
27、務的能力就變得非常重要。鴻蒙系統提供了自由流轉的能力,使得開發者可以方便地開發出跨越多個設備的應用,用戶也能夠方便地使用這些功能。2121 自由流轉可分為跨端遷移和多端協同兩種情況。他們分別是時間上的串行交互和時間上的并行交互。自由流轉不僅帶給用戶全新的交互體驗,也為開發者搭建了一座從單設備時代通往多設備時代的橋梁。關于跨端遷移和多端協同詳細說明,會在第七章中詳細展開。3)統一生態,原生智能 統一生態 移動操作系統和桌面操作系統的跨平臺應用開發框架不盡相同,從渲染方式的角度可以歸納為 WebView 渲染、原生渲染和自渲染這三類,鴻蒙系統對應的提供系統 WebView、ArkUI 框架和 XC
28、omponent 能力來支撐三種類型的跨平臺框架的接入 主流跨平臺開發框架已有版本正在適配 HarmonyOS,基于這些框架開發的應用可以以較低成本遷移到鴻蒙系統。原生智能 鴻蒙系統內置強大的 AI 能力,面向鴻蒙生態應用的開發,通過不同層次的 AI 能力開放,滿足開發者的不同開發場景下的訴求,降低應用的開發門檻,幫助開發者快速實現應用智能化。2222 圖 3-11:原生智能 AI 能力分層開放框架 通過基礎API提供AI能力,滿足開發者各類AI能力訴求?MachineLearning Kit:提供場景化能力,包括通用卡證識別、實時語音識別等;提供 AI 控件能力,使系統控件融合文字識別等 A
29、I 能力。?Core AI API:提供圖像語義、語言語音解析、OCR 文字識別等能力。?Core DeepLearning API:提供高性能低功耗的端側推理和端側學習環境。意圖框架提供了 HarmonyOS 系統級的意圖標準體系,通過多維系統感知、大模型等能力構建全局意圖范式,實現對用戶顯性與潛在意圖的理解,并及時、準確地將用戶需求傳遞給生態伙伴,匹配合時宜的服務,為用戶提供多模態、場景化進階場景體驗。2323 ChapterChapter 4 4 -1)賦能套件-2)鴻蒙開發套件-3)三方庫-4)開發者支持平臺 鴻蒙生態應用鴻蒙生態應用 開發能力全景圖開發能力全景圖 2424 圍繞開發者
30、旅程,鴻蒙系統為開發者提供了端到端的開發能力支持。如下圖所示,鴻蒙系統為開發者提供了賦能套件、鴻蒙開發套件、三方庫、開發者支持平臺。具體能力全景圖如下圖所示:圖 4-1:鴻蒙生態應用開發能力全景圖 1)賦能套件 開發者了解和學習鴻蒙系統的各類資源,覆蓋開發者全旅程,內容包含白皮書、Codelabs、視頻課程、技術文章、指南、UX設計資源與指南、API參考、Sample Code與FAQ。2525 圖 4-2:賦能套件全景圖 鴻蒙生態應用開發白皮書:全面闡釋了鴻蒙生態下應用開發核心理念、關鍵能力以及創新體驗,旨在幫助開發者快速、準確、全面的了解鴻蒙開發套件給開發者提供的能力全景和未來的愿景。Co
31、delabs:以教學為目的的代碼樣例及詳細的開發指導,幫助開發者一步步地完成指定場景的應用開發并掌握相關知識。Codelabs 將最新的鴻蒙生態應用開發技術與典型場景結合,讓開發者快速地掌握開發高質量應用的方法。同時支持互動式操作,通過文字、代碼和效果聯動為開發者帶來更佳的學習體驗。視頻課程:基于真實的開發場景,提供向導式學習,多維度融合課程等內容,給開發者提供全新的學習體驗。技術文章:針對新發布特性及熱點特性提供詳細的技術解析和開發最佳實踐。開發、測試及上架指南:提供系統能力概述、快速入門,用于指導開發者進行場景化的開發。指南涉及到的知識點包括必要的背景知識、符合開發者實際開發場景的操作任務
32、流(開發流程、開發步驟、調測驗證)以及常見問題等。2626 UX 設計資源與指南:提供開發鴻蒙生態應用所需的 UX 設計規范、指導文檔以及推薦的設計資源,滿足各種場景的設計要求,可以幫助開發者設計出體驗一致的鴻蒙生態應用。API 參考:面向開發者提供鴻蒙系統開放接口的全集,供開發者了解具體接口使用方法。API 參考詳細地描述了每個接口的功能、使用限制、參數名、參數類型、參數含義、取值范圍、權限、注意事項、錯誤碼及返回值等。Sample Code:面向不同類型的開發者提供的鴻蒙生態應用開發優秀實踐,每個Sample Code 都是一個可運行的工程,為開發者提供實例化的代碼參考。FAQ:開發者常見
33、問題的總結,開發者可以通過 FAQ 更高效地解決常見問題。FAQ 會持續刷新,及時呈現最新的常見問題。具體的內容請訪問 https:/ 鴻蒙開發套件包含設計、開發、測試、運維套件以及 OS 開放能力集。通過鴻蒙開發套件,開發者可以高效開發鴻蒙生態應用、元服務。2727 圖 4-3:鴻蒙開發套件全景圖 設計套件 HarmonyOS Design 是面向萬物互聯的設計系統,為用戶帶來全新交互體驗。其秉承萬物歸一,和諧共生,衍生萬物的設計理念。設計套件涵蓋全面的全場景設計規范、豐富的設計資源,以及設計工具,幫助開發者提升設計和開發效率。開發套件 開發者在應用開發過程中使用到的產品集合,包含 HUAW
34、EI DevEco Studio 以及HUAWEI DevEco Studio 集成的性能調優、設備模擬、命令行工具和 SDK。2828 圖 4-4:開發套件全景圖 HUAWEI DevEco Studio:鴻蒙生態應用、元服務開發配套的集成開發環境(IDE),提供了工程管理、代碼編輯、界面預覽、編譯構建、代碼調試等基礎功能,同時還集成了性能調優工具、設備模擬工具、命令行工具等幫助開發者解決特定領域的問題。SDK:集成在 HUAWEI DevEco Studio 中,包含開發者可以使用的 API 定義以及調試編譯等基礎的工具鏈。請訪問 https:/ 獲取最新的HUAWEI DevEco St
35、udio 以及 SDK。測試套件 包括測試標準和測試工具兩部分。1.測試標準 覆蓋鴻蒙生態應用性能、功耗、穩定性、兼容性、UX、安全、分布式、游戲等測試規范,幫助開發者解決測什么的問題。2929 表 4-1:測試標準覆蓋范圍 測試標準名稱 測試標準覆蓋范圍說明 性能測試 任務啟動時間、界面刷新幀率、應用內存占用及 CPU 占用等。功耗測試 后臺長駐任務/托管任務場景功耗、后臺硬件器件資源/軟件系統資源占用場景功耗及分布式資源占用場景功耗。穩定性測試 長時間運行故障率(App Crash/App Freeze)、長時間運行內存泄漏及長時間運行踩內存等異常場景。兼容性測試 應用和 OS 兼容、應用
36、升級兼容、應用交互兼容及應用分布式兼容。UX 測試 應用 UX 規范一致性、控件截斷、文字截斷、布局變形、圖片模糊、黑邊及白塊等 UX 顯示異常。安全測試 基礎安全、用戶隱私、權限管理及跨設備安全。分布式測試 流轉交互一致性、跨端遷移功能及多端協同功能。游戲測試 游戲音效、消息免打擾、幀率、屏幕點時延、GPU 使用率及后殼溫度等。2.測試工具 提供鴻蒙生態應用開發、調試、單元測試、集成測試、上架測試等各開發階段所需的測試工具集,支持手機、折疊屏、平板、智慧屏、手表、音箱等 1+8+N 設備,幫助開發者全面高效測試。3030 圖 4-5:鴻蒙生態應用測試工具概覽 典型測試工具能力簡介見下表:表
37、4-2:典型測試工具能力簡介 測試能力名稱 簡介 專項測試套件 覆蓋性能、功耗、穩定性、兼容性、UX、安全共 6 項專項自動化測試用例,基于測試標準實現自動化,并以測試服務化方式提供。測試框架 包括單元測試框架和 UI 測試框架,并支持 ArkTS 語言,單元測試框架提供支撐用例運行的基礎能力,UI 測試框架提供 UI控件查找、點擊、檢視、按鍵注入等模擬用戶操作的 API。性能測試工具 應用性能能效調優和測試工具平臺;提供測試過程中實時采集FPS、RAM、CPU、GPU 等性能數據的采集能力,同時提供性能能效數據分析可視化分析等能力。穩定性測試工具 應用 UI 隨機壓測工具,提供 UI 隨機事
38、件注入、控件級事件順序或隨機注入、用戶操作錄制回放、異常日志捕獲、可視化報告生成等應用穩定性測試基礎能力。3131 測試能力名稱 簡介 分布式設備錄制回放 支持多設備多模輸入操作錄制,生成基于控件的腳本,開發者添加檢查點后形成自動化測試用例腳本,快速自動執行。應用與服務體檢 本地速測工具,支持兼容性、設計約束、性能等專項測試,無需編寫用例;集成于 HUAWEI DevEco Studio 一鍵式測試。云測平臺 云測平臺提供性能、功耗、穩定性、兼容性、UX、安全自動化測試能力,支持流轉、萬能卡片等鴻蒙系統關鍵特征自動化測試,支持華為 1+8+N 多設備運行。測試套件獲取途徑如下表:表 4-3:測
39、試套件獲取途徑 名稱 獲取途徑 測試套件 華為官網訪問路徑:https:/ 社區官網訪問路徑:https:/ 運維套件 主要包括由 HUAWEI AppGallery Connect 提供的上架分發測試和運維分析兩大能力。3232 1.上架分發測試能力 提供多種上架分發測試能力,滿足開發者在不同階段的上架分發測試訴求。具體如下表介紹:表 4-4:上架分發測試能力介紹 分發階段 簡介 云測試/調試 快速獲取目標機型,便捷遠程測試,零腳本、低成本,通過自動化測試快速發現應用的兼容性、性能、穩定性、功耗、安全等問題,出具詳細報告,復現與修復應用問題。開放式測試 可以讓開發者的應用在正式發布給所有用戶
40、前,面向特定用戶群組發布測試版本。參與測試的用戶可以向開發者反饋,幫助開發者及時發現技術問題或用戶體驗問題,以在應用/服務正式上架前完成改進,從而在此過程中最大限度地降低對用戶的影響。全網上架 開發者在開發測試驗證完成后,正式提交應用上架申請,審核人員審核通過后應用就會變為“已上架”狀態,用戶可在設備上搜索到該應用/服務。分階段發布 在當前上架版本為全網發布時,開發者可以采用分階段發布的方式進行升級。采用分階段發布,可以先向一定比例的用戶發布更新的版本,然后再逐步提升用戶比例,最終實現全網發布。通過小范圍的版本更新,可以快速獲取用戶對新版本的反饋意見,降低全網發布后版本出現問題的風險。3333
41、 2.運維分析 提供崩潰服務、性能管理及云服務監控,支撐開發者精準定位問題,同時支持多維度分析,智能診斷問題并給出解決方案。表 4-5:運維分析能力介紹 能力名稱 簡介 崩潰服務 幫助開發者快速發現、定位、解決應用崩潰(又稱閃退)問題。無需開發任何代碼,即可實時查看可視化數據報告并檢測到應用在每個設備上的運行狀態,及時快速發現或者定位、解決應用崩潰問題,從而確保應用穩定運行,避免崩潰給用戶帶來糟糕體驗。性能管理 性能管理(APM,App Performance Management)服務提供分鐘級應用性能監控能力,檢測應用在每個設備上的運行性能數據,幫助開發者快速發現、定位、解決應用性能問題。
42、云服務監控 云服務監控是面向云函數、云數據庫等云服務的質量監控解決方案,幫助開發者快速發現、定位、解決云服務的業務層性能問題。OS 開放能力集 OS 開放能力集通過 SDK 的形式對開發者呈現,提供應用開發所需的一系列系統開放能力,包括 UI 框架、Ability、分布式服務、安全、方舟編譯器、App Service、基礎軟件服務、硬件服務等。3434 1.ArkUI 框架 ArkUI 是一套聲明式開發框架,它具備簡潔自然的 UI 信息語法、豐富的 UI 組件、多維狀態管理,以及實時多維度預覽等能力,幫助開發者提升應用開發效率,并能在多種設備實現生動而流暢的用戶體驗。其基礎能力如下所示:開箱即
43、用的組件:提供豐富的系統預置組件,可以通過鏈式調用的方式設置組件的呈現效果。開發者可以組合預置組件為自定義組件,通過這種方式將頁面組件轉化為一個個獨立的 UI 單元,實現頁面不同單元的獨立創建、開發和復用。豐富的動效接口:提供多種繪制圖形能力,同時開放了豐富的動效接口,開發者可以通過封裝的物理模型或者調用動畫能力接口實現自定義動畫。多維度狀態與數據管理:狀態與數據管理作為聲明式開發范式的特色,不同的裝飾器給開發者提供了清晰的頁面更新渲染流程和管道。狀態管理包括組件和應用狀態管理,合理使用兩種狀態管理機制,可以在不同場景中僅通過改變數據,自動刷新UI。API 擴展機制:通過相應的擴展機制,封裝豐
44、富的系統能力接口,開發者可以通過相應的接口調用,實現高效的業務開發。2.Ability 應用所具備能力的抽象,是應用程序的基本組成部分,主要包括組件生命周期回調、系統環境變化通知、應用跳轉、萬能卡片開發等能力。具備如下核心的技術特征:基于 MVVM(Model-View-ViewModel)模型:充分結合 ArkUI 的聲明式 UI 特性,應用更易于實現界面與邏輯解耦。3535 原生分布式:自帶分布式接口,支持跨端遷移和多端協同。支持多設備:Ability 實體與窗口實體解耦,可擴展窗口形態,適應不同的設備形態。3.分布式服務 由于具體場景的差異,以及技術演進、生態構建等各種復雜因素的存在,多
45、設備之間的通信方式各不相同(比如WLAN、藍牙、ETH、PLC、NFC、USB、Zigbee、紅外、超聲波等),為了使開發者可以方便快捷地進行分布式開發,鴻蒙系統將跨設備交互涉及的關鍵能力統一封裝并開放給開發者。根據不同的使用場景,分布式服務具體可分為:分布式軟總線:支持多設備間協同實現異構組網,對開發者屏蔽不同通信介質和通信協議帶來的差異。分布式軟總線通過軟硬件協同,提供高吞吐、低時延、高可靠、安全可信的通信通道,克服無線通信不可靠、不穩定的挑戰,為開發者提供接近本地化訪問效果的通信能力。分布式文件:基于分布式軟總線,為應用跨設備文件相互訪問提供完整解決方案。分布式文件系統是一個直接構建在內
46、核態,無中心、高性能的文件系統。提供了標準的 POSIX 操作能力,使開發者可以像使用本地文件一樣訪問分布式文件系統。分布式數據庫:基于分布式軟總線實現數據的分布式管理。用戶數據不再與單一物理設備綁定,跨設備的數據處理如同本地數據處理一樣方便快捷,對外呈現一份全局唯一的數據視圖,讓開發者能夠輕松處理多設備下的數據存儲、共享和訪問。分布式硬件:打破單一設備的硬件邊界,是軟件定義各種新產品形態和體驗的“新硬件”所需的關鍵技術。分布式硬件能夠將硬件設備化整為零,形成“超級終端”3636 硬件資源池,供多個設備共享使用,真正達到軟件定義硬件、設備間實現系統級融合并靈活按需適應不同場景的目的。融合感知:
47、構筑在傳感器技術和多模感知技術上的系統開放能力,提供了對設備、環境、用戶等的各類狀態的感知能力,例如設備的擺放姿態、操作行為、多設備間的空間拓撲關系、用戶的移動狀態、位置信息,甚至是用戶的情緒等。融合感知目前提供了六種不同的感知能力:表 4-6:融合感知能力 分類 描述 空間感知 多設備空間感知模塊,基于綜合傳感處理平臺的空間感知原子算法能力,提供多設備間的空間感知結果,包括設備間距離、角度、方位關系等。移動狀態感知 移動感知模塊,通過加速度傳感器、陀螺儀、磁力計、氣壓計等傳感器及 Modem 基站信息,判斷用戶所處移動狀態:乘車、步行、乘坐直梯、自行車、走、跑、靜止、快步走、高鐵、步行、電梯
48、、相對靜止、手持步行、躺臥、智能飛行、飛機、車載(不包含地鐵、火車、高鐵等軌道交通和自行車之外的交通工具)、停留、地鐵。設備狀態感知 設備狀態服務,通過加速度傳感器、陀螺儀、接近光等傳感器及Modem 基站、Wi-Fi 掃描信息,判斷用戶手機狀態:高精度靜止、中精度靜止等。手勢感知 能夠感知操作手勢,比如拿起、翻轉、靠近耳朵、搖一搖、旋轉、口袋模式、拿離耳朵、落腕、抬腕、招一招。地理圍欄 地理圍欄服務,負責圍欄監控及圍欄進出事件上報。3737 分類 描述 時間線 時間線服務,根據移動感知的信息,區分家和公司的場景,保存一天內用戶停留和移動的行為,用于智慧畫像。4.安全 鴻蒙系統提供嚴格的隱私保
49、護和數據安全系統能力,保護消費者智能終端安全。具體的安全隱私能力包括:設備互信認證服務:為保證分布式系統的連接安全,實現用戶數據在分布式場景下各個設備之間的安全流轉,需要保證設備之間相互正確可信,即設備和設備之間建立信任關系,并能夠在驗證信任關系后搭建安全的連接通道,實現用戶數據的安全傳輸。設備之間的信任關系包括同帳號設備之間的可信關系,以及點對點綁定的設備可信關系。用戶身份認證:鴻蒙系統除提供數字密碼、圖形密碼的傳統身份認證方式,還提供指紋識別、人臉識別等生物認證手段。根據不同認證方式的安全能力和特點,可應用于相應的身份認證場景,如設備解鎖、應用鎖,移動支付等。同時,針對分布式業務場景,為提
50、升用戶認證的便捷性,鴻蒙系統提供分布式協同認證能力,使用戶可便捷地以近端設備為入口完成用戶身份認證。應用程序隔離和權限管理:權限訪問控制是基于 Access Token構建的應用權限管理能力,系統化地規范應用程序的行為準則與權限許可并強制執行。由于應用通過沙箱機制彼此隔離,默認情況下,應用只能訪問有限的系統資源。但應用為了擴展功 3838 能,需要訪問沙箱外的系統或其它應用的數據或能力,系統或應用也需要具備共享數據或能力。為了保證這些數據或能力不被不當或惡意使用,Access Token 權限管理機制提供了程序操作某種對象的許可,在應用層面,使用顯式定義且經用戶授權的權限控制機制。數據分級訪問
51、控制架構:為用戶數據提供了全生命周期的安全防護措施,確保在每一個階段,數據都能獲得與其個人數據敏感程度、系統數據重要程度和應用程序數據資產價值匹配的保護措施。數據創建時即指定數據分級標簽,基于標簽關聯全生命周期的訪問控制權限和策略。在數據存儲時,基于不同分級標簽,采取不同的加密措施。在數據傳輸時,高敏感等級的數據禁止向低安全能力的設備上傳遞,同時禁止低安全能力的設備發出指令控制高敏感等級的資源和外設。數據防泄露保護:數據生命周期范圍內,數據的存儲、訪問和傳輸過程中數據泄漏風險比較大。數據防泄漏保護服務保證數據跨設備傳輸到另一設備后,依然具有相應的訪問管控能力。5.方舟編譯器(ArkCompil
52、er)支持多種編程語言、多種芯片平臺聯合編譯、運行而設計的統一編譯運行時平臺。支持包括動態類型和靜態類型語言在內的多種編程語言,如 ArkTS、TS、JS。方舟編譯器是鴻蒙系統作為手機、平板、電視、車機和智能穿戴等多種設備統一操作系統的編譯運行時底座。主要分成兩個部分,編譯工具鏈與運行時。編譯工具鏈以ArkTS/TS/JS 源碼作為輸入,將其編譯生成為 ABC(ArkCompiler Bytecode,即方舟字節碼)文件。運行時直接運行字節碼文件,實現對應語言規范的語義邏輯。架構圖如下圖所示:3939 圖 4-6:方舟編譯器 方舟編譯器具備如下核心技術特點:原生支持類型:目前業界引擎執行 TS
53、 的方式是先把 TS 轉化為 JS,再運行 JS 源碼來完成對應的語義邏輯。方舟編譯器的編譯工具鏈編譯 TS 源碼時,會分析推導 TS的類型信息并將其傳遞給運行時。運行時直接使用類型信息在運行前預生成內聯緩存(Inline Cache)以加速字節碼執行。另外,TSAOT(Ahead-of-Time)Compiler,可以利用字節碼文件中的類型信息,直接編譯生成優化機器碼,使得應用可以直接運行優化機器碼,獲得高性能運行體驗。并發模型優化與并發 API:ECMAScript規范沒有提供并發語義表述,業界引擎,如瀏覽器或者 Node.js,通常會提供基于 Actor 并發模型的 Worker API
54、 來支持多線程開發。Actor 模型下執行體之間不共享任何數據對象,通過消息機制進行通信。因此 Web 引擎或者 Node.js 引擎的 Worker 都有啟動速度慢、內存占用高這些問題。針對這些問題,方舟編譯器運行時已經實現了 Actor 實例中的不可變或者不易變的對象(方法和字節碼)的共享,較大程度地優化了 Actor 的啟動性能和啟動內存。簡潔的并發 API:方舟編譯運行時不只提供了業界通用的 Worker API,還提供了TaskPool,作為并發 API 的增強。TaskPool 是一個支持優先級調度、工作線程自動擴縮容的任務池功能庫。開發者無需關心并發實例的生命周期,也無需關心任務
55、 4040 負載變化時需要創建或者銷毀并發實例,極大地簡化了高性能多線程鴻蒙應用的開發。安全:方舟編譯器前端編譯工具鏈將 ArkTS/TS/JS 程序預先靜態編譯為方舟字節碼,并且還提供了多重混淆能力的增強,有效地提升了開發者代碼資產的安全強度。同時出于安全的考慮,ArkCompiler 不支持 sloppy 模式的 JS 代碼,也不支持 eval 等運行動態字符串的功能。6.基礎軟件服務 鴻蒙系統為開發者提供了通用的基礎軟件服務,包括多媒體、通信、圖形、文件存儲、升級、無障礙等,下面介紹三個常用的服務。多媒體服務是指用戶聽覺、視覺信息的表達、存儲和還原的處理過程。多媒體服務確保在不同設備上運
56、行的性能和體驗,同時也為應用開發者提供統一的接口,讓開發者更多專注于業務開發,輕松使用多媒體資源。?相機服務:提供精確控制相機鏡頭,采集視覺信息的能力。?視頻服務:提供聽覺和視覺信息的解壓播放和壓縮錄制的能力。?音頻服務:提供音頻播放、音頻采集、音量管理和短音播放的能力。?圖片服務:提供單張圖片信息解壓還原和壓縮的能力。?數據服務:提供音頻文件、視頻文件、圖片文件等數據高效管理能力。4141 通信服務為各種各樣的終端設備提供多樣信息的傳遞,鴻蒙系統提供業界主流和常見的通信方式,涵蓋短距離的無線通信(NFC、藍牙和 WLAN 等)、長距離的蜂窩通信,以及有線的以太網通信等服務,并且為其提供網絡管
57、理服務。?WLAN 服務:提供 WLAN 基礎功能、P2P(peer-to-peer)功能和 WLAN消息通知的相應服務,讓應用可以通過 WLAN 和其他設備互聯互通。?傳統藍牙:提供藍牙版本 3.0 以下的傳統藍牙服務。?低功耗藍牙:提供藍牙版本 4.0 以上的低功耗藍牙服務。?NFC 服務:提供近距離的、非接觸式識別和互聯技術,讓移動設備、消費類電子產品、智能設備之間可以進行近距離無線通信。?電話服務:提供無線蜂窩網絡通信和 SIM 卡管理服務。?網絡管理服務:提供數據連接管理、流量統計和網絡協議棧服務。圖形服務提供圖形渲染與顯示輸出的功能,內部通過對系統硬件資源的合理利用,為系統提供流暢
58、高效的顯示體驗。圖形系統按功能維度分為渲染服務、繪制、動畫、效果、顯示與內存管理、2D 圖形庫和 3D 圖形引擎這幾個子模塊。?繪制:提供高性能的 2D 渲染服務。?動畫:提供輕量的、鏈式的、物理連續的動畫實現。?效果:提供高性能,基于物理的多類型的動效能力。4242?渲染服務:提供應用的界面顯示(包括控件、動效等 UI 元素),將不同應用渲染的圖層進行合成,送顯的過程。?顯示與內存管理:提供了硬件合成、送顯、Vsync 以及顯示設備、Surface、Bufferqueue 輪轉、本地平臺化窗口等能力。?2D 圖形庫:提供 2D 渲染庫 SKIA 和輕量并行渲染等能力。?3D 圖形引擎:提供
59、3D 圖形場景管理、渲染系統、插件平臺和物理引擎等能力。7.硬件服務 硬件服務通過屏蔽硬件廠家接口差異,為應用提供統一的接口規范,從而使開發者便捷地控制外設,其中包括電源、USB、泛 sensor 和位置服務等,下面介紹兩個常用的服務。泛 sensor 服務是應用訪問底層硬件傳感器的一種設備抽象概念。根據鴻蒙系統提供的 Sensor API 查詢設備上支持的傳感器類型,并訂閱指定傳感器的數據,通過定制相應的算法,開發各類應用,比如指南針、運動健康、游戲等。?訂閱:提供數據訂閱能力,系統將獲取到的傳感器數據上報給訂閱者。?控制:提供設置傳感器的數據采樣間隔和數據上報間隔等控制能力。?服務管理:提
60、供各類傳感器列表的查詢管理能力。?數據上報:提供數據接收、解析及分發的能力。4343?權限管控:提供傳感器權限管控能力。?維測:提供傳感器的調試和打點能力。位置服務(LBS,Location Based Services)又稱定位服務,是由移動通信網絡和衛星定位系統結合在一起提供的一種增值業務,通過一組定位技術獲得移動終端的位置信息(如經緯度坐標數據),提供給移動用戶本人或他人以及通信系統。?全球導航衛星系統定位:提供 GNSS 定位服務的全能力,包含 GNSS 定位請求管理、GNSS 芯片參數設置、GNSS 芯片參數上報訂閱、GNSS 緩存等功能。?網絡定位:提供基站、WLAN 和藍牙等網絡
61、定位框架能力。?地理編碼:提供地理編碼轉換服務框架能力。?被動定位:提供被動定位功能,允許應用進行被動定位,該種類型定位不會主動發起 GNSS 定位或者網絡定位,只有當其他應用有 GNSS 或者網絡定位請求時,被動定位的應用才會收到位置信息。?地理圍欄:提供地理圍欄的能力,支持圍欄添加和刪除、圍欄事件訂閱和取消、圍欄事件主動通知等功能。?區域管理:提供國家碼、城市碼、區域碼等信息的檢測能力,對外提供國家碼查詢接口,主動監聽國家碼等信息變化并通知給應用。4444 8.App Service 華為移動服務開放能力是為鴻蒙生態應用開發提供場景化服務的平臺。同時,依托華為云服務,App Service
62、 也為這些服務提供云端能力,用于各服務的開通、業務實現及運營。每個服務可單獨為開發者提供獨立且完善的產品能力,也可以多個服務相互組合,為多個領域提供行業解決方案。下面介紹一些常用的服務:帳號服務:支持用戶在手機、平板等設備上,使用華為帳號快速便捷地登錄應用。支持用戶信息授權、一鍵授權登錄、多帳號切換、家長管控、數字遺產繼承等。推送服務:多種推送樣式,支持大文本、Inbox 多行文本、帶按鈕等樣式,幫助開發者更好地提高消息對用戶的吸引力。提供精細化人群劃分的能力,可以根據用戶屬性、特定標簽、訂閱主題,將用戶群進行不同維度的細分,實現精細化運營。應用內支付服務:提供支付服務,讓開發者聚焦應用本身能
63、力,更關注于應用創新。大大降低支付渠道、全球化合規等開發引入和產品上線環節的投入,助力商業變現。分析服務:免費的跨平臺、多設備數據分析產品,清晰理解用戶行為方式,輕松實現數據驅動的精細化運營。廣告服務:開發者可以通過流量變現服務在應用內廣告中獲得更多收益;通過廣告標識服務,可以保護用戶隱私,也可以幫助廣告平臺和三方監測平臺合規地開展個性化廣告和轉化歸因。4545 3)三方庫 鴻蒙生態三方庫,是在鴻蒙系統上可重復使用的軟件庫,可幫助開發者重用技術資產,快速開發鴻蒙生態應用、元服務,提升開發效率。根據不同的開發語言分為兩種:ArkTS/TS/JS 語言的三方庫,可直接導入并使用。C/C+語言的三方
64、庫,在應用開發中通過 NAPI 的方式來使用。鴻蒙生態三方庫發布與使用完整的流程如下圖所示:圖 4-7:鴻蒙生態三方庫管理 鴻蒙生態中心倉聚合了豐富的鴻蒙生態開發三方庫,方便開發者一站式獲取。個人/組織貢獻者將開發好的三方庫通過 OHPM 發布到中心倉。開發者通過如下方式即可方便快捷的使用三方庫:1.應用開發者登錄鴻蒙生態中心倉,通過分類和關鍵字搜索需要的三方庫信息;2.應用開發者在應用開發時,通過 OHPM 包管理工具,將搜索到的三方庫引入到應用 4646 依賴清單中。4)開發者支持平臺 為了能更好地連接、服務開發者,開發者支持平臺向開發者提供了以下能力,幫助開發者快速成長并融入鴻蒙生態。開
65、發者社區:開發者技術交流平臺,幫助開發者探索開發實踐、交流心得經驗、獲悉業界動態、答疑解惑。開發者學堂:聚合官方鴻蒙生態課程,課程有慕課、微課、直播課、訓練營等多種形式,內容有入門、基礎、進階分級,面向開發者提供學、練、考、證一站式服務,滿足開發者不同階段的學習訴求。開發者成長計劃:設置校園開發者計劃(HSD)、布道師計劃(HDE)等開發者成長計劃,助力不同類型開發者提升技能,幫助開發者相互連接、共享能力、彼此啟發、協同激勵。開發者技術支持:針對開發者在開發實踐中的具體問題提供問題反饋平臺,其中智能客服提供 7*24 小時自助式智慧技術問答;工單系統由技術客服為開發者提供問題處理和在線技術支持
66、。4747 ChapterChapter 5 5 1 1 高效開發與測試高效開發與測試 -1)典型開發場景-2)設計-3)ArkTS 語言-4)ArkUI 框架-5)應用程序框架-6)SDK-7)集成開發環境-8)測試工具 4848 1)典型開發場景 基于鴻蒙系統原生開發框架,開發者可以根據自己實際的業務情況選擇:獨立開發一個應用 獨立開發一個元服務 同時開發應用和元服務 開發者可以選擇開發簡單、場景聚焦的元服務,漸進迭代演進,按需組合元服務成為一個復雜的應用。對于大型游戲類應用,可以直接開發鴻蒙生態應用,針對智慧屏、車機、手表等設備,可以考慮開發元服務并提供萬能卡片,讓信息更加直接的呈現給用
67、戶。2)設計 HarmonyOS Design 支持跨設備的超級終端一拖即連,萬能卡片輕輕一滑即可獲取所需信息,文件中轉站、智慧視覺等創新功能,帶來全場景智慧生活新體驗。HarmonyOS Design 涵蓋全面的全場景設計規范,豐富的設計資源,以及設計工具,幫助開發者提升開發效率:全面的全場景設計規范:包括設計理念、人因研究、應用架構、人機交互、視覺風格、動效、聲音、多態控件、界面用語、全球化、無障礙、隱私設計等。豐富的設計資源:提供上千種的圖標資源,媒體音效專項分類,快速開發調用;字體再升級,支持新版國標漢字完整覆蓋 GB 180302022 實現級別 2 的漢字。4949 高效的設計工具
68、:動態響應式布局,六種動態布局能力,控件元素自由組合,無縫適配多尺寸界面。首創自適應 UI 引擎,自動學習優化布局,提升開發效率與實現效果;提供支持手機、平板、折疊屏、智慧屏、智能座艙等多設備多品類的響應式布局模板,支撐快速設計開發。3)ArkTS 語言 ArkTS 是鴻蒙生態應用的開發語言,使用.ets 作為 ArkTS 語言源碼文件后綴。它在保持 TypeScript(簡稱 TS)基本語法風格的基礎上,對 TS 的動態類型特性施加更嚴格的約束,引入靜態類型。同時提供了聲明式 UI、狀態管理等相應的能力,讓開發者以更簡潔、更自然的方式開發高性能應用。ArkTS 最重要的特性之一是靜態類型。相
69、比于 TS 只在編譯時進行類型檢查,ArkTS 將編譯時所確定的類型應用到運行性能優化中。由于在編譯時就可以確定對象布局,對象屬性的訪問可以更加高效。面向未來,ArkTS 會結合應用開發以及運行時的需求持續演進,引入包括并行和并發能力增強、類型系統增強等方面的語言特性,進一步提升 ArkTS 應用的開發和運行體驗。鴻蒙生態應用開發者可以從官方開發者網站中獲取 ArkTS 語言介紹,快速入門 ArkTS語言。對于熟悉 TS語言的應用開發者,官方開發者網站也提供了從 TypeScript 到 ArkTS的遷移指導,幫助開發者快速將已有 TS 代碼重構為 ArkTS 代碼。5050 4)ArkUI
70、框架 ArkUI 是鴻蒙生態原生的 UI 開發框架。主體結構如下圖所示:圖 5-1:ArkUI 框架組成結構 ArkUI 框架提供給開發者兩種開發方式:基于 ArkTS 的聲明式開發范式和基于 JS 擴展的類 Web 開發范式。聲明式開發范式更加簡潔高效,類 Web 開發范式對 Web 及前端開發者更友好。5151 聲明式開發范式 在聲明式開發范式模式下,通過語言增強、渲染管線扁平化,最小化更新等手段,在功能和性能方面對比類 Web 開發范式有了全面提升。采用聲明式開發范式進行應用開發,相同場景下,對比類 Web 開發范式代碼更為精簡,并且在性能、內存方面進一步優化提升。另外 ArkUI 框架
71、還提供了 API 擴展機制,通過此種機制進行封裝風格統一的 JS 接口。下面針對重點功能進行分別介紹說明。1.狀態管理 聲明式開發范式的核心思想是數據驅動 UI 變化,通過提供的狀態進行數據管理,這里狀態管理指的是,管理數據發生變化時,UI 組件更新的范圍,如下狀態圖表達了 UI 框架的狀態管理手段。5252 圖 5-2:狀態管理 狀態管理從生效范圍的維度可以分為應用范圍和組件范圍。應用范圍的數據是以AppStorage 為中心進行管理,根據不同的使用場景分為提供系統環境數據管理的Environment,提供持久化存儲支持的 Persistent Storage。組件范圍的數據通過裝飾器的方式
72、提供管理機制,稱為狀態變量裝飾器:State:組件擁有的狀態屬性,當State 裝飾的變量更改時,組件會重新渲染更新 UI。Link:組件依賴于其父組件擁有的某些狀態屬性,當任何一個組件中的數據更新時,另一個組件的狀態都會更新,父子組件重新渲染。Prop:類似Link,但子組件所做的更改不會同步到父組件上,屬于單向傳遞。Provide:作為數據的提供方,可以更新其子孫節點的數據,并觸發頁面渲染。Consume:在感知到Provide 數據更新后,會觸發當前自定義組件的重新渲染。5353 同時為了使應用數據變化能夠觸發組件的更新,基于 AppStorage 還提供了兩個狀態變量裝飾器:Stora
73、geLink 裝飾器:組件通過使用StorageLink(key)裝飾的狀態變量,與AppStorage 建立雙向數據綁定,key 為 AppStorage 中的屬性鍵值。當創建包含StorageLink 的狀態變量的組件時,該狀態變量的值將使用 AppStorage 中的值進行初始化。在 UI 組件中對StorageLink 的狀態變量所做的更改將同步到AppStorage,并 從AppStorage同 步 到 任 何 其 他 綁 定 實 例 中,如PersistentStorage 或其他綁定的 UI 組件。StorageProp 裝飾器:組件通過使用StorageProp(key)裝飾的
74、狀態變量,將與AppStorage 建立單向數據綁定,key 標識 AppStorage 中的屬性鍵值。當創建包含StoageProp 的狀態變量的組件時,該狀態變量的值將使用 AppStorage 中的值進行初始化。AppStorage 中的屬性值的更改會導致綁定的 UI 組件進行狀態更新。2.布局 布局指用特定的組件或者屬性來管理用戶頁面所放置 UI 組件的大小和位置。在實際的開發過程中,需要遵守以下流程保證整體的布局效果:確定頁面的布局結構。分析頁面中的元素構成。選用適合的布局容器組件或屬性控制頁面中各個元素的位置和大小約束。ArkUI 框架支持多種布局方式,如彈性布局、列表、宮格、柵格
75、布局等。5454 3.組件化 組件是 ArkUI 框架中的基礎顯示單元,一切 UI 顯示的內容都是組件。ArkUI 框架提供多種開箱即用的 UI 組件,如文本顯示、圖片顯示、按鍵等,并提供了面向多種設備形態的多態 UI 能力。另外,ArkUI 框架還提供了組合式擴展相應 UI 組件的機制,由 ArkUI 框架直接提供的稱為預置組件,由開發者定義的稱為自定義組件,其具有以下特點:可組合:允許開發人員組合使用內置組件、其他組件、公共屬性和方法;可重用:自定義組件可以被其他組件重用,并作為不同的實例在不同的父組件或容器中使用;配置化生命周期回調:生命周期的回調方法可以在組件中配置,用于業務邏輯處理;
76、數據驅動更新:由狀態變量的數據驅動,實現 UI 自動更新。4.裝飾器 自定義組件的場景中,通常會遇到需要動態傳入不同的 UI 元素的情況,為了滿足該場景 ArkUI 框架同時提供了動態構建 UI 元素的能力。Builder:可通過 Builder 裝飾器進行描述,該裝飾器可以修飾一個函數,此函數可以在 build()函數之外聲明,并在 build()函數中或其他 Builder 修飾的函數中使用,在一個自定義組件內快速生成多個布局內容。Style:聲明式范式為了避免開發者對重復樣式的設置,通過Styles 裝飾器可以將多條樣式設置提煉成一個方法,直接在組件聲明的位置使用。Styles 裝飾器將
77、新的屬性函數添加到基本組件上,如 Text、Column、Button 等,當前Styles 僅 5555 支持通用屬性。通過Styles 裝飾器可以快速定義并復用組件的自定義樣式。Styles 可以定義在組件內或組件外,在組件外定義時需在方法前添加 function 關鍵字,組件內定義時不需要添加 function 關鍵字。Extend:為了滿足開發者拓展原生組件的訴求,提供了Extend 裝飾器,可以將新的屬性函數添加到內置組件上,如 Text、Column、Button 等。通過Extend裝飾器可以快速地擴展原生組件。5.動效 聲明式范式中一大特點體現在動效的使用上,與傳統開發方式不同
78、,聲明式的動畫是由數據變化驅動動畫啟動,而不再是直接控制動畫的播放。UI 框架根據開發者的配置,自動地進行動畫執行,根據動畫場景不同進行如下分類:屬性動畫:組件的某些通用屬性變化時,可以通過屬性動畫實現漸變效果,提升用戶體驗。顯式動畫:全局 animateTo 顯式動畫接口,指定由于閉包代碼導致的狀態變化插入過渡動效,開發者可以在事件回調中通過顯式動畫對指定數據變化增加動畫效果。轉場動畫:轉場動畫包括頁面間轉場、組件內過渡轉場和共享元素轉場三種,通過路由接口進行頁面路由時,會觸發動畫的執行。6.事件交互 ArkUI 框架提供了很多交互事件,這些事件提供了不同的信息用于處理相關程序交互邏輯,目前
79、提供了 UI 組件事件以下幾類事件:5656 UI 組件事件:由 UI 組件內置交互邏輯觸發,不同的 UI 組件有不同的 UI 組件事件,比如 TextInput 輸入框產生的 onEditChange 輸入文本變更事件,List 列表組件產生的 onScrollIndex 列表項滾動事件,這類事件屬于非冒泡事件(非冒泡事件指的是當一個組件上的事件被觸發后,該事件不會向父節點傳遞);掛載卸載事件,當UI 組件掛載到 UI 組件樹或者從 UI 組件樹上卸載時觸發,典型的場景比如通過 if 渲染語法控制 UI 組件的顯隱狀態,該事件屬于非冒泡事件。交互事件:點擊事件,拖拽事件,焦點事件,觸摸事件,
80、按鍵事件,鼠標事件,手勢事件等。7.繪制能力 ArkUI 框架提供兩種 2D 自定義繪制能力。一種是通過圖形組合的方式,利用布局、絕對定位和各種圖形進行組合實現;另一種是通過繪制 API 在 Canvas 畫布上進行繪制。8.混合開發 應用的場景是多樣的,部分場景直接采用 UI 組件組合無法滿足訴求,例如游戲、地圖這種需要依賴 C+SDK 進行獨立渲染,又或者開發相機、視頻播放器這種需要獨立紋理填充的場景,因此需要框架提供一種能夠在C+側進行自定義繪制的組件。ArkUI框架提供了XComponent 組件,支持加載應用動態庫、NAPI 跨語言調用,進行 C+繪制能力的開發。9.跨平臺 鴻蒙生態
81、構建了 ArkUI 跨平臺框架的核心設施,將相應的能力擴展到 iOS 和 Android平臺上,后續會進一步拓展到更多的平臺。開發者可以通過一份代碼,結合相應的工具鏈,5757 同時生成多個 OS 平臺的應用工程,并可編譯出相應的應用程序,在相應的平臺上高效的運行。類 Web 開發范式 使用 HML 標簽文件進行布局搭建,使用 CSS 文件進行樣式描述,使用 JS 文件進行邏輯處理。UI 組件與數據之間通過單向數據綁定的方式建立關聯,當數據發生變化時,UI 界面自動觸發更新。此種開發范式,對 Web 前端開發者更為友好。類 Web 范式的整體接口采用與傳統 Web 頁面開發相似的設計理念,采用
82、 HML、CSS與 JS 三種類型的文件進行頁面開發,開發者可以基于此范式方便地進行 UI 構建,同時提供數據綁定機制,支持通過 JS 進行數據更新,進而更新 UI。HML語法:是一套類HTML的標記語言,通過組件、事件構建出頁面的內容。頁面具備數據綁定、事件綁定、列表渲染、條件渲染和邏輯控制等高級能力。在 HML文件中不僅可以進行架構描述,也可以進行數據綁定,通過方式進行數據綁定后,也需要在 JS 文件中進行數據的定義,運行時將使用 JS 文件中提供的數據 content進行替換。CSS語法:CSS是描述HML頁面結構的樣式語言。所有組件均存在系統默認樣式,也可在頁面 CSS 樣式文件中對組
83、件、頁面自定義不同的樣式。ArkUI 開發框架提供標準 CSS 語法的核心功能集,滿足應用開發者的訴求。JS 語法:在類 Web 開發范式中,提供了一系列的全局方法與全局對象,進行數據操作與邏輯處理。5858 框架后端采用 C+開發語言實現,提升了框架的運行性能,使用方舟編譯器運行時作為 JS 引擎,具有更優的 JS 執行性能,同時還提供了一套完整的包含 UI 組件、布局機制、動畫能力的渲染框架,通過渲染引擎對 UI 元素進行繪制。類 Web 范式實現層面可以進一步部署到輕量化的設備上。通過輕量化設計的思路,將JS Framework 下沉到 C+層,以減小 JS 的內存占用,使用 C+進行更
84、為嚴格的內存分配管理,并采用更為輕量的 JS 引擎,UI 部分采用輕量的 UIKit 并結合輕量圖形引擎最終實現百 K 級別設備的支持,從而在輕量化設備上可執行的應用,也可以在硬件規格更高的設備上執行,而無需重新開發。這也就是采用類 Web 開發范式的優勢所在,采用統一的開發范式,開發者無需關心具體運行時的前端框架、JS 引擎與后端 UI 組件,系統會根據運行平臺不同,采用最佳的模塊,保障應用在不同平臺都可具有最佳的運行性能。具體的實現原理如下圖所示:5959 圖 5-3:類 Web 開發范式 可視可說 可視可說框架提供“系統級”和“應用級”兩種實現方式。其中,“系統級”無需應用適配自動支持標
85、準控件文本的語音操控功能;“應用級”接入方式允許開發者對控件場景、角標、別名、個性化播報等元素進行適配,從而提供最佳的用戶體驗。應用級和系統級兩種實現是互補關系,應用級優化用戶體驗,系統級保證覆蓋率。6060 圖 5-4:可視可說框架 1.系統級 應用使用標準控件開發,無需額外適配,自動識別標準控件界面文本和位置執行,天然支持界面文本可視可說基礎體驗。2.應用級 系統級基礎體驗無法滿足體驗目標時,應用可以按照業務特征進行靈活定制適配,以此獲得可視可說最佳體驗。3.語音交互生命周期 可視可說分為信息獲取和識別執行,信息獲取模塊基于界面變化用戶監聽界面變化獲取信息熱詞,識別執行模塊將信息熱詞傳遞到
86、語音系統進行 AI 識別。6161 圖 5-5:單次語音交互生命周期 語音喚醒:語音助手喚醒后,發送建立連接給前臺應用,應用收到請求后啟動可視可說初始化。信息獲取?分配角標(可選):應用反饋界面需要展示的角標數量給智慧語音。?更新角標(可選):界面變化時,自行管理展示角標刷新。?獲取信息:智慧語音獲取界面熱詞信息,包括文本,圖標和角標信息。識別執行?語音識別:智慧語音系統根據用戶語音和界面信息熱詞,識別出可視可說意圖和指令。?執行指令:收到可視可說意圖和指令觸發執行。隱藏角標:通知應用隱藏界面角標(隱藏角標動作也由適配應用自己完成)。6262 語音結束:語音助手釋放可視可說,發送解除綁定給前臺
87、應用,應用收到解除連接后停止可視可說相關動作(比如角標未隱藏則隱藏角標信息)。5)應用程序框架 應用程序框架定義了應用程序的模型與結構。鴻蒙系統上的應用模型稱之為“Stage 模型”。應用程序框架定義了應用的全生命周期。鴻蒙系統是一個支持1+8+N 多設備的統一操作系統,其生命周期的管理和定義就更為復雜且重要。Stage模型主要特點包括:規范化后臺進程管理:為了保障用戶體驗,鴻蒙系統上的運行環境對后臺進程進行了有序管理,當應用程序處于后臺狀態時,不應該處于高度活躍狀態。為此,系統定義了四類后臺任務:?短時任務:應用退到后臺之后,系統提供了一個短期的可運行時間,應用可以進行數據保存的操作。超過這
88、個時間,任務將被凍結。?長時任務:對于音樂播放,投屏,導航這類場景,系統提供了長時任務的能力。長時任務的類型是由系統定義的,應用應當根據實際需要來使用,不應當過度濫用。?延時任務:對于一些實時性要求不高的場景,系統提供了延時任務。這種情況下,會由系統統一周期,對齊多個應用的任務激活時間。?托管任務:這類任務是由系統完成,完成之后再通知到應用。例如,下載,提醒和定位這類場景。6363 原生支持分布式:鴻蒙系統的誕生很大程度上就是為了解決多設備時代的交互問題。鴻蒙系統的應用框架從設計之初就包含對于分布式的考慮。支持多設備的統一窗口管理:過去,面向不同的設備誕生了不同的操作系統。例如,面向PC設備的
89、操作系統,面向移動設備的操作系統,以及面向穿戴設備的操作系統等。由于這些系統誕生在不同的時代,面向不同的屏幕形態,因此其窗口系統存在很大的差異。為更好的管理這些差異性,鴻蒙系統設計了統一的窗口系統,給開發者提供統一的編程模型。組件共享及面向對象:多個應用組件在運行時共享同一個虛擬機引擎,從而減少復雜應用運行內存的占用。采用面向對象的開發方式,使得復雜應用代碼可讀性高、易維護好、可擴展性強。邏輯與界面解耦:窗口部分可單獨銷毀和重建,窗口與應用組件可跨設備運行,應用組件可在不啟動界面的情況下響應請求。靈活擴展機制:支持萬能卡片、輸入法、快捷開關、分享、壁紙、長時任務等應用開發。在鴻蒙系統中,Abi
90、lity 是應用程序框架中最基本的抽象單位,是能夠完成獨立功能的應用組件。在 Stage 模型中,Ability 分為兩大類:UIAbility:應用的主入口,對應桌面上的圖標。一個 UIAbility 實例對應一個任務。一個 UIAbility 中的通常包含多個 ArkUI 頁面。ExtensionAbility:ExtensionAbility 有多個具體的子類型,例如:FormExtension用 來 開 發 萬 能 卡 片,InputMethodExtensionAbility 用 來 開 發 輸 入 法 等。6464 ExtensionAbility 正如其名稱那樣,在鴻蒙新的版本,
91、面向不同的設備,可能會持續擴展和增加。下圖展示了 Stage 模型的主要結構:圖 5-6:Stage 模型相關概念 針對大型應用開發,從開發態到部署態,鴻蒙系統都提供模塊化解耦的方式,開發團隊都是以模塊化能夠便捷的構建出可以復用的軟件組件,也能夠輕松的完成彼此間的分工協作。開發者可以通過 HUAWEI DevEco Studio 工程中創建多個 Module,以 Module 為單位進行分工。每個 Module 既可以包含業務代碼,也可以包含資源文件。針對不同的部署態需求,模塊的編譯結果有三種目標形態:HAR(HarmonyOS Archive):這是一種中間編譯產物格式,它最終將被編譯合并到
92、 HSP 或 HAP 格式的包中。HSP(HarmonyOS Shared Package):這是一種新增的編譯產物。HSP使得模塊可以以運行態復用的形式共享。相較于 HAR,當有多個 HAP 包依賴與同一個 HSP時,最終的打包產物中,HSP 只會存在一份。6565 HAP(HarmonyOS Ability Package),HAP 包是鴻蒙應用可單獨安裝的容器包。借助鴻蒙統一開發框架的能力,同一個 HAP 包可以支持在多個設備上運行。但是當設備差異較大時(例如手機與手表),開發者可以為不同的設備設計不同的 HAP 包。在上架時,通過同一個 App 包來包含多個 HAP 包。這樣可以達到一
93、次開發上架,多端分發、部署的效果。6)SDK HarmonyOS SDK 包含了鴻蒙應用開發所需的 API 集合和基礎工具集。ArkTS API ArkTS 語言是鴻蒙系統主推的應用開發語言。因此鴻蒙系統提供給開發者的 API 絕大部分也是 ArkTS 語言的。鴻蒙系統提供的 API 范圍非常全面,包括應用服務、聲明式 UI、多媒體、圖形窗口、通訊、安全、Web 和 AI 等諸多能力。鴻蒙系統是分布式操作系統,一套 SDK 可適配多設備的開發。開發者在 IDE 中創建的工程適配哪些設備,在工程中就可以使用這些設備支持的 API,而不需要下載多個 SDK。對于某些設備不支持的 API 的情況,開
94、發者可通過 canIUse()函數判斷。隨著時間的推移,鴻蒙系統會發布新的版本,每個版本都會有配套的 API 更新。為了讓開發者更容易理解,在 API 的元信息上會標記該 API 可用的最低操作系統版本。有些 API 6666 會隨著版本的更新而廢棄,為了保證兼容性,廢棄的 API 會根據其重要程度繼續保留多個版本,給開發者留出時間進行應用升級和適配。鴻蒙應用開發者可以通過華為開發者大會、官方開發者網站等渠道了解鴻蒙系統的最新版本以及 API 的更新情況。推薦開發者使用最新版本的 SDK 進行開發。已經上架的應用也應當定期地進行 SDK 升級,使得應用程序獲得卓越用戶體驗。C API 鴻蒙生態
95、應用的主要開發語言是 ArkTS,同時也提供使用 Native 語言開發 ArkTS 模塊的擴展方式,鴻蒙系統中支持這種開發方式的 C 語言接口叫 C API。C API 也包含在鴻蒙SDK 中,方便開發者使用 C 或者 C+語言實現應用相應功能。C API 只覆蓋了部分鴻蒙基礎底層能力,如 libc,圖形庫,窗口系統,多媒體,壓縮庫等,并沒有完全提供類似于 ArkTS API 上的完整鴻蒙平臺能力,開發者可以使用 C API 開發支持鴻蒙應用框架的擴展動態庫,通過 import 語句導入到 ArkTS 環境中使用。建議使用 C API 的場景:應用性能敏感場景,如游戲,物理模擬等計算密集型場
96、景;復用已有的 C 或 C+庫場景;需要針對 CPU 特性進行專項定制場景,如 neon 加速等。C API 接口組成如下表所示:6767 表 5-1:C API 接口組成 接口分類 接口功能 標準 C 庫 以鴻蒙 C 庫為基礎提供的標準 C 庫接口,當前包含了 1500+的接口。標準 C+庫 C+運行時庫,應用使用 C+語言,需打包到應用中。hilog 日志打印接口。N-API 應用框架提供的,方便應用開發接入 ArkTS 語言環境的一組類Node 的 C 接口。XComponent 應用框架 XComponent 組件中的 surface 與觸屏事件接口,供開發者開發高性能圖形應用使用。l
97、ibuv 應用框架集成的三方的異步 IO 庫接口。libz zlib 庫,提供基本的壓縮,解壓接口。Drawing 系統提供的 2D 圖形庫,可以在 surface 上進行繪制。OpenGL 系統提供的 OpenGLv3 接口。Rawfile 應用資源訪問接口,可以讀取應用中打包的各種資源。OpenSLES 用于 2D,3D 音頻加速的接口庫。包管理 包服務接口,方便查詢應用包信息。Vulkan 業界標準的 2D 和 3D 繪圖應用程序接口。Purgeable memory 一種快速釋放與重建機制的內存管理機制,使用此接口標記的內存對象,可被系統自動回收,訪問前可通過對象重建方法重建。6868
98、 接口分類 接口功能 多媒體 多媒體接口,提供用戶視覺、聽覺信息的處理能力,如音視頻信息的采集、壓縮存儲、解壓播放等。數據管理 本地數據庫管理機制,提供一系列的增、刪、改、查等接口,也可直接運行用戶輸入的 SQL 語句。AI 提供 MindSpore Lite、Neural Network Runtime 兩類推理引擎接口。N-API 接口 N-API 接口提供了使用 C/C+封裝操作 ArkTS 對象的能力,使用類 Node 的 N-API 接口命名。開發者使用 C/C+開發業務,通過 N-API 接口實現跨語言調用,方便開發者使用高性能 C 語言能力。開發者開發一個 C/C+的 ArkTS
99、 擴展庫后,在 ArkTS 側可以通過import 引入這個擴展庫。方舟工具鏈 傳統的 JS 程序開發中,應用程序往往帶的是經過前端打包工具處理過的 JS bundle 文件,在程序運行階段進行解釋執行;這種運行方式需要設備有強大的計算能力。鴻蒙系統能夠支持的設備范圍廣泛,覆蓋從低端的 IoT 設備到高性能手機設備。采用傳統的方式,無法保證多類型設備的體驗一致性。在鴻蒙開發環境中,應用代碼是通過前端編譯器完成編譯的。前端編譯器按照語言規范解析源代碼,編譯成方舟運行時能夠理解的二進制字節碼格式(ABC,ArkCompiler 6969 ByteCode),最后打包到應用中。前端編譯器是鴻蒙應用框
100、架與其它 JS 應用框架最主要的差別之一。下圖展示了兩種編譯運行方式的差別,方舟前端工具鏈把解析源碼、編譯字節碼的過程從運行時遷移到編譯時,降低運行時的開銷。圖 5-7:普通 JS 運行時與方舟編譯運行時比對圖 前端流水線在發起編譯時,進行工程參數解析,依賴分析,語法校驗,語法轉換,代碼編譯等各個編譯動作的編排。前端編譯器負責編譯流水線中源代碼編譯,提供對應的觸發接口給編譯流水線。下圖為鴻蒙生態應用的編譯流水線流程:圖 5-8:編譯流水線 配置解析:解析 IDE 工程中的配置文件,解析程序組件,入口組件,組件包名,代碼位置等信息。依賴分析:根據代碼中的 import 等語句,進行各個代碼的依賴
101、關系分析。UI 語法轉換:對 UI 中的各種語法糖進行轉換。7070 代碼編譯:輸入轉換后代碼,解析編譯,輸出 ABC 字節碼文件。應用打包:獲取應用的資源,ABC 字節碼文件,應用配置文件等,使用用戶簽名進行應用打包,輸出應用包。前端編譯器負責將 ArkTS 代碼編譯成方舟字節碼 ABC,鴻蒙生態應用編譯流程中,分為兩種編譯模式。分別是 bundle 和 esmodule 編譯模式。兩者的區別主要在源碼文件的處理上,bundle 編譯把各個有依賴關系的源代碼通過打包方式打成一個 bundle 文件,然后通過前端編譯器編譯成 ABC 字節碼文件;而 esmodule 編譯是保持用戶寫的 Ark
102、TS 模塊不變,通過前端編譯器編譯成 ABC 字節碼文件,字節碼文件內保留各個模塊的代碼段,依賴關系等信息;當前推薦開發者使用 esmodule 模式,保持模塊語義。前端編譯器架構 前端編譯器是根據輸入的 ArkTS源碼,進行詞法,語法解析、轉換、編譯、輸出字節碼文件;在這個過程中會提取代碼中標注的類型信息,進行類型檢查,類型綁定,最終作為元數據生成到字節碼 ABC 文件中。圖 5-9:前端編譯器架構 解析:前端編譯器讀取 ArkTS 源碼,進行詞法,語法解析,輸出抽象語法樹(AST)轉換:前端編譯器識別語法糖,轉換成基礎語法 編譯:根據抽象語法樹,生成對應的中間表示(IR)7171 輸出:收
103、集 IR,字符資源,常量,等各種元素,按照 ABC 文件格式生成字節碼文件 優化:讀取 ABC 文件中的字節碼信息,生成 IR 表示,進行優化處理,重新生成更優的字節碼文件。7)集成開發環境 HUAWEI DevEco Studio 是面向鴻蒙生態的集成開發環境,提供了一站式的鴻蒙生態應用、元服務開發能力,詳細能力如圖所示。圖 5-10:HUAWEI DevEco Studio 集成開發環境 工程管理 提供基礎的工程管理能力,包括工程向導,工程模板,鴻蒙視圖,SDK 管理,樣例導入等,并提供模板市場,支持擴展豐富的模板。開發者可以方便地安裝和更新鴻蒙 SDK,利用模板創建鴻蒙生態應用、元服務,
104、使用鴻蒙視圖聚焦到關鍵文件及配置,也能導入樣例快速學習了解鴻蒙 API 的用法:7272 工程向導:開發者基于模板,方便地創建出工程(Project),應用模塊(Module),庫模塊(Library),Ability,萬能卡片(Service Widget)等開發態元素,快速得到鴻蒙生態應用開發所需的項目結構。鴻蒙視圖:通過鴻蒙視圖,可以過濾掉應用開發中無需特別關注的文件,如工具自動生成的文件,聚焦鴻蒙開發的代碼文件及配置文件。SDK管理:開發者可以在HUAWEI DevEco Studio和命令行工具上管理鴻蒙SDK,包括安裝,更新,卸載等。開發的時候,如果 SDK 缺失,編譯構建也能自動
105、檢測缺少的 SDK 并下載。模板市場:模板市場提供了豐富的工程模板,支持模板的發布及更新,HUAWEI DevEco Studio 可以檢測到新版本并更新。開發者也可以通過模板市場分享自己開發的工程模板,供其他開發者下載使用。樣例導入:樣例提供了常用鴻蒙 API 的使用指導,開發者可以將樣例工程導入到HUAWEI DevEco Studio,學習常用 API 的使用,也可以基于樣例工程快速開始開發。代碼編輯 針對 ArkTS 語言及 ArkUI 框架,HUAWEI DevEco Studio 提供了代碼補全、跳轉、校驗、重構、高亮、折疊、格式化等一系列編輯功能,輔助開發者便捷地閱讀代碼,高效地
106、編寫代碼,實時地糾正代碼錯誤。相較于傳統的代碼編輯,HUAWEI DevEco Studio 還結合了人工智能技術,根據待補全位置的上下文代碼特征進行預測和推薦,使補全項更精準,推薦內容更完整,開發人員可以更快速地完成鴻蒙生態應用、元服務開發。同時,HUAWEI 7373 DevEco Studio 內置鴻蒙生態應用、元服務開發最佳編程規范校驗功能,實時提示代碼錯誤,支持快速糾錯,可高效地將建議修復結果應用于代碼中。界面預覽 在開發過程中,開發者需頻繁修改界面代碼,查看對應的呈現效果,確保開發與實現目標一致。傳統的開發模式下,開發者每次修改代碼后,執行編譯構建,并推送應用到設備上重新運行,才能
107、查看到界面的呈現效果,整個過程冗長,產生極大的時間浪費。HUAWEI DevEco Studio 提供了界面預覽能力,使開發者更方便快速地調測應用界面,大幅提升界面開發效率。圖 5-11:界面預覽全景 頁面預覽:可快速查看應用/服務中 UI 代碼的呈現效果??ㄆA覽:可查看多種卡片規格、多種卡片尺寸(最小/標準/最大)的呈現效果。7474 組件預覽:可獨立查看組件的呈現效果,支持開發者注入組件參數,靈活查看組件在不同上下文中的預覽效果。自定義預覽 profile:預覽 profile 是設備顯示能力的抽象定義,典型的 profile 信息有設備名稱、設備類型、屏幕分辨率、屏幕密度、語言、亮暗模
108、式、橫豎屏狀態等。通過自定義預覽profile,開發者能自由組合設備顯示能力,查看UI代碼在不同設備上的呈現效果。雙向定位:支持 UI 代碼和預覽效果的雙向定位修改。極速預覽:對于組件屬性的調整,無需保存和編譯,極速呈現預覽效果。實時預覽:開發者修改 UI 代碼,保存后可秒級刷新預覽界面,界面調測效率倍增。動態預覽:在預覽界面中提供點擊、滑動、鍵盤輸入等交互能力,操作體驗與真機設備一致。編譯構建 HUAWEI DevEco Hvigor 是一款華為自研輕量級編譯構建工具,將編譯操作進行任務化管理,為開發者提供自動化的構建服務。其具備強大的構建能力,支持多種語言(ArkTS、C/C+等)、多種文
109、件(低代碼描述文件、資源文件等)的快速編譯,最終生成 HAP/App 包。此外,Hvigor 還具備以下特點:高效編譯:充分利用系統資源,并行執行編譯請求,提升編譯效率;綜合歷史信息,精確增量檢查,高度復用往次構建產物,縮短編譯時長;最優化編排任務序列,異步化執行編譯操作,減小等待間隙,加速構建流程。7575 差異構建:內置多目標構建機制,允許開發者靈活選擇源碼文件、資源信息、部署設備等應用要素,形成多種組合。通過簡易配置,匹配自定義構建目標,一鍵打包生成不同產物,實現“一套代碼,多種產物”。靈活擴展:支持開發者自定義編寫構建任務,匹配自身業務需求,擴展編譯構建流程。獨立運行:擁有完善的命令行
110、工具,兼備良好的跨平臺能力,可以脫離 HUAWEI DevEco Studio,獨立運行在 Windows、Mac、Linux 等操作系統上,支持不同環境下的流水線搭建??梢暬治觯禾峁嫿ㄈ鞒倘蝿蘸臅r數據展示能力,展示任務時長、任務線程、日志、歷史記錄等。點擊任務即可以可視化的形式展示構建過程,幫助開發者進行構建瓶頸優化。代碼調試 在開發過程中,代碼調試是使用頻率最高的功能之一,開發者可以使用斷點跟蹤或日志分析,快速定位代碼缺陷。HUAWEI DevEco Studio 提供了常用的代碼調試功能,如設置斷 點(普 通 斷 點、條 件 斷 點、異 常 斷 點、符 號 斷 點 等)、斷 點 跳
111、 轉(Step Over/Into/Out)、變量值查詢、表達式計算、調試堆棧、命令行工具等。此外,基于鴻蒙系統的特點,還提供了以下功能,進一步提升效率:分布式調試:分布式調試用于定位跨設備交互場景下的代碼缺陷。使用跨設備的斷點調試,可以使斷點在不同設備的代碼間跳轉,自動尋找目標設備并建立調試會話。7676 通過查看跨設備的調試堆棧,可以快速準確地跟蹤設備交互的詳細情況,包括每次流轉的起點(設備、函數棧)、終點(設備、函數棧)和詳細交互數據??缯Z言調試:支持 ArkTS 和 C/C+兩種語言同時調試,并支持斷點從 ArkTS 語言跳轉到被調用的 C/C+語言;提供統一的調試堆棧,便于快速查閱兩
112、種語言代碼的調用層次關系,整體操作體驗與單一語言調試一致。Hot Reload:修改代碼后,無需重新創建調試會話和啟動鴻蒙生態應用、元服務,即時生效,大幅縮短調試時間。多維日志:查看系統消息日志時,可根據設備、進程、日志級別以及自定義的規則靈活過濾,快速篩選,協助定位代碼缺陷。在分布式場景下,可以同時查看多個設備的系統消息日志。其中特別重要的異常日志在獨立的窗口呈現,避免淹沒在大量系統消息日志中。ArkUI Inspector:支持顯示視圖的布局及組件關系,查看組件屬性列表,過濾組件及屬性,用于定位真機上的 UI 顯示問題。反向調試:支持通過反向單步,反向 continue 等操作,查看歷史快
113、照,線程,棧幀,變量等信息。通過反向時間線界面,查看多線程場景下的快照時序,用于定位偶現問題以及多線程并發的資源競爭等問題。性能調優 應用的運行性能至關重要,一旦出現卡頓、發熱、電量消耗過快等問題,便會導致體驗急速下降,造成用戶流失。性能調優是鴻蒙生態應用開發階段中非常重要的一環,然而性能優化過程充滿挑戰,需要開發者了解應用程序框架、系統、硬件各方面知識,并對多維度性 7777 能數據進行綜合分析。為了降低性能調優技術難度,HUAWEI DevEco Studio 推出了場景化調優工具 DevEco Profiler,提供以下關鍵能力:場景化調優模板:針對各類典型場景的性能問題,提煉出對應的場
114、景化調優模板,自動采集相應維度性能數據。常用場景化調優模板如表 5-2 所示。模板自動推薦:根據實時監控觀測到的性能異常事件,自動推薦對應的場景化模板。高效數據分析:關聯分析不同維度性能數據,結合同一時刻的代碼調用棧,快速分析代碼和性能問題之間的因果關系。一鍵定位代碼行:分析結果中代碼堆棧并一鍵跳轉至編輯器中的對應代碼行。表 5-2:常用場景化調優模板 模板名稱 用途 Time Insight 耗時分析模板:通過周期性采集調用棧,識別 CPU 耗時高的熱點代碼段,用于分析卡頓、CPU 占用高、運行速度慢等問題。Allocations Insight 內存分析模板:錄制和分析內存分配記錄,用于分
115、析內存峰值高,內存泄漏,內存不足導致應用被強殺等問題。CPU Insight CPU 分析模板:錄制 CPU 調度事件、線程運行狀態、CPU 核頻率、Trace 等數據,可用于分析卡頓、運行速度慢、應用無響應等問題。Energy Insight 能耗分析模板:錄制和分析能耗異常事件、硬件資源使用記錄、功耗關聯的系統狀態,可用于分析電量消耗過快的問題。Launch Insight 啟動分析模板:錄制和還原從點擊應用圖標,到顯示首幀過程中的CPU、內存等資源使用情況,用于分析啟動耗時長的問題。7878 模板名稱 用途 Frame Insight 卡頓丟幀分析模板:錄制卡頓過程中的關鍵數據,標注出應
116、用側、RenderService 側卡頓幀,用于分析應用卡頓、丟幀的問題。Snapshot Insight 快照分析模板:錄制和分析應用程序中 ArkTS 對象的分布,通過快照方式對比 ArkTS 對象分布區別,用于分析內存泄漏問題。設備模擬 HUAWEI DevEco Studio 提供了設備模擬的能力,解決鴻蒙生態應用、元服務開發過程中遇到的真機設備不足、無分布式應用調試環境等問題,為開發者提供低成本、易獲取的調測驗證環境。超級終端模擬:支持對手機、智慧屏、手表等多種終端進行模擬,針對不同模擬終端提供了差異化的交互界面,方便開發者快速在多個模擬終端上開發調試應用。此外,開發者可以一鍵配置分
117、布式組網,組成模擬超級終端,支持對分布式應用進行調試。未來還將支持模擬器與真機組合成超級終端。豐富的器件模擬:提供了多終端常用器件、外設、傳感器的模擬,包括電池、WLAN、移動網絡、GPS、Camera、陀螺儀、心率等,支持開發者調用模擬器件的能力,進行特定功能的開發。場景化數據注入:通過場景化的數據注入能力,開發者能快速模擬一些常見的設備使用場景,方便調試應用在特定場景下的功能。包括低電量、弱網絡信號、搖一搖、GPS 導航、戶外跑步運動等場景。7979 統一設備管理:支持對模擬設備、超級終端、本地真機設備、遠程真機設備的統一管理,方便開發者快速切換調試設備,一鍵配置超級終端。命令行工具 HU
118、AWEI DevEco Studio 提供了一系列命令行工具,輔助開發者更高效的管理 SDK、設備,提升調試、調優的效率。目前提供以下工具供開發者使用:sdkmgr:查看、安裝和卸載 HarmonyOS SDK。hdc:管理設備、本地和設備之間傳輸文件、安裝和卸載應用、啟動和終止應用。bytrace:對內核 ftrace 進行了封裝和擴展,配合應用打點,追蹤進程軌跡,分析應用性能。端云一體化開發 HUAWEI DevEco Studio 在傳統的“端開發”基礎上新增了“云開發”能力,支持開發鴻蒙生態應用、元服務的云側服務,提供端云一體的開發體驗。8080 圖 5-12:端云一體化開發全景圖 端
119、云一體化開發:支持端側代碼和云側代碼的協同開發,統一管理端側和云側代碼目錄,進行端云代碼的端到端開發、調試和部署。端云一體化組件:內置完整的云側邏輯,開發者在集成 UI 組件的同時即可自動實現云側邏輯,快速實現特定場景的功能。Serverless:為鴻蒙生態應用、元服務的云側服務提供 Serverless 化托管服務,具有開箱即用、一鍵部署、自動彈性伸縮、免運維等特點,開發者可聚焦業務邏輯本身,降本增效。8)測試工具 鴻蒙生態應用、元服務的測試分層模型分為:單元測試、集成測試、專項測試。8181 圖 5-13:鴻蒙生態應用、元服務分層測試模型 單元測試 單元測試是函數級別的驗證。函數是產品開發
120、實現的最基本單位,單元測試通過驗證產品代碼的函數輸入輸出,最終保證整個產品的質量。DevEco Testing Hypium 單元測試框架可以在真機或者模擬器上運行。單元測試框架采用插件化機制開發,具備空間占用最小化、功能可定制、語法兼容特點。測試框架的整體結構如下圖所示:8282 圖 5-14:單元測試框架 測試框架由核心模塊和擴展模塊組成。其中核心模塊是測試框架的最小集,包含執行必備核心接口和邏輯。擴展模塊是在核心模塊的基礎上增加一些常用能力,例如用例超時控制、用例篩選、數據驅動、壓力測試、隨試執行等。核心模塊采用插件化機制,提供接入能力和運行時上下文,擴展模塊通過插件的方式接入。DevE
121、co Testing hypium 單元測試框架具備以下特點:語法統一:使用聲明式或者類 Web 范式,針對不同的開發范式,單元測試框架提供統一的測試接口??啥ㄖ疲簲U展模塊即插即用,開發者根據不同的場景動態組合定制測試框架能力。輕量化:核心模塊代碼量少,打包編譯之后小于 10KB,支持 ROM 資源有限的設備靈活部署。8383 集成測試 集成測試分為模塊測試和特性測試。模塊測試把若干個單元組裝,發現模塊缺陷;特性測試把若干個模塊集成,發現特性缺陷。鴻蒙生態為開發者提供多種集成測試的能力,方便開發者針對不同的集成測試場景,快速便捷的進行測試。1.UI 測試框架 通過簡潔易用的 API 提供查找和
122、操作界面控件能力,支持開發者編寫基于界面操作的自動化測試腳本。UI 測試框架的整體結構圖如下圖:圖 5-15:UI 測試框架 整個測試框架組主要分為兩個部分,一部分是 uitest-api,用來提供接口,封裝 UI 測試場景的 API,另外一部分是 uitest-deamon,是 UI 測試核心模塊,對接系統服務,提供控 8484 件樹獲取、解析、查找、操作能力。uitest-api提供核心接口類Driver、On和Component,具體功能如下表:表 5-3:uitest-api 核心類功能列表 類名 功能 Driver UI 測試能力入口類,實現與設備交互,提供頁面控件查找、檢查存在性及
123、注入按鍵能力。On 頁面元素查找條件,用于描述目標控件特性(文本、id、類型等),UiDriver 根據 On 描述控件特征查找控件。Component 頁面元素實體類,返回查找的控件對象,提供控件屬性查詢,滑動查找等觸控和檢視能力。2.性能測試工具 DevEco Testing SmartPerf 提供一套完整的應用測試和調優工具,為應用開發者提供方便快捷的應用性能測試手段。主要包括以下部件:8585 圖 5-16:SmartPerf 主要結構 SmartPerf-Host:可視化展示設備側抓取的性能數據,幫助開發者快速發現和分析系統性能瓶頸。SmartPerf-Device:支持設備側 F
124、PS、功耗、熱、Soc 信息的實時采集、實時展示和數據報告生成。預置或安裝在設備中使用,針對帶屏設備,測試過程中在設備懸浮窗實時展示測試過程中的性能數據;對于無屏設備,通過命令行獲取測試過程中生成的性能數據。SmartPerf-Editor:獨立的 PC 客戶端,支持用戶操作錄制回放,定點采集性能,trace 自動抓取與報告展示,用戶自定義采集場景及采集指標等功能。具體的功能點,請參考下表:8686 表 5-4:SmartPerf 功能介紹 部件名 功能點 功能描述 SmartPerf-Host CPU 分析 CPU 線程運行時狀態分析。CPU 調用棧信息分析。內存分析 Native memo
125、ry 申請和調用棧分析。IO 分析 FileSystem 流量和調用棧分析,BIO 申請空間與調用棧分析。自定義 trace 抓取 用戶自定義抓取的數據結構和展示方式。查詢 SQL 語句查詢。SmartPerf-Device 基礎能力采集 CPU、GPU、DDR、Temperature、Power、應用 RAM、FPS 等數據采集。UI 可視化操作 可操作采集任務開始、暫停、繼續、停止。懸浮框 實時監控采集數據的數值變化,通過折線圖查看數據走勢。報告展示 查看 csv 報告,報告頁查看圖形化展示。性能數據采集 通過采集的 trace 分析冷熱啟動,點擊完成時延、點擊響應時延,滑動幀率、滑動響應
126、時延的數據。SmartPerf-Editor 自動化性能測試 應用啟動完成時延、響應時延、點擊滑動響應時延、界面滑動幀率等自動化測試。自定義錄制回放測試 用戶操作腳本的錄制、回放、采集點設置。8787 部件名 功能點 功能描述 報告展示和數據拉取 性能采集數據結果的報告呈現及數據異常的Trace 自動拉取。多輪測試 性能測試頁支持冷啟動多輪測試功能。數據管理和查詢 歷史測試報告查詢功能,支持根據 TaskID 模糊查詢和測試類型分類查詢。3.穩定性測試工具 DevEco Testing wukong 是 UI 自動化穩定性壓測工具,用于幫助開發者快速發現應用穩定性問題。支持隨機壓測、控件順序遍
127、歷、事件錄制回放等測試能力,wukong 主要功能模塊如下圖所示:8888 圖 5-17:wukong 功能全景圖 命令行解析:支持命令行獲取參數并解析命令行參數。運行環境管理:根據命令行初始化 wukong 整體運行環境。系統接口管理:檢查并獲取指定的 mgr,注冊 controller 和 dfx 的 faultlog 的回調函數。隨機事件生成:通過 random 函數生成指定種子數的隨機序列,生成事件。事件注入:根據支持的事件類型向系統注入事件,依賴窗口、多模、安全等子系統。異常捕獲處理:通過 DFX 子系統獲取運行中的異常信息。報告生成:保存運行時的異常信息并記錄執行日志,生成報告。H
128、DC 命令行:依賴 hdc 將命令下發至設備端,支持 exec 和 special 兩類命令集。8989 4.分布式設備錄制回放 提供基于開發者對設備操作序列的監聽,識別所操作的控件,轉換生成測試腳本的能力,支持多設備分布式場景自動化腳本錄制,基本架構原理如圖所示:圖 5-18:分布式錄制架構原理 事件監聽:監控設備操作狀態,抓取設備操作事件流,同步到主控 PC。事件識別&智能定位:多個設備通過 USB 同步時鐘,按時間順序處理監聽到的設備事件,根據事件的坐標等信息結合當前設備顯示頁面的結構智能識別還原真實的操作,生成對應的 DSL 操作描述。生成腳本:解析 DSL 描述,生成對應腳本,通過自
129、主編輯增加檢查點,就形成了完整的腳本。9090 專項測試 專項測試是應用/服務的多維度測試,包括全方位的質量體檢,同時也提供性能、功耗、穩定性、兼容性、UX、安全等專項自動化測試。1.應用與服務體檢 應用與服務體檢用于檢測并評價應用與服務的質量,提供評估結果和改進建議,幫助開發者提升產品質量。通過 HUAWEI DevEco Studio 連接本地設備或模擬器,自主遍歷應用或者服務。檢測維度目前包含:設計約束、兼容性、性能、穩定性。設計約束:代碼實現需要遵循的設計約束和規范,比如:App 中必須明確支持的設備類型。兼容性:在設備上是否可以正常的安裝、啟動、卸載。性能:在設備上啟動時間、滑動幀率
130、、前臺內存占用。穩定性:運行時出現崩潰、Crash、凍屏。最終的檢測報告中按照測試維度進行分層展示,根據每條規則的權重,綜合算出應用/服務的評分。2.專項測試云測平臺 DevEco Testing 專項測試服務以云端服務的方式提供了多維度的專項測試能力,無需人工干預,自動完成應用/服務的測試。專項測試報告可以幫助開發者提前識別和定位問題,為消費者帶來更佳的使用體驗。9191 云端的 DevEco Testing 專項測試服務提供了多設備環境,可用于“一次開發,多端部署”測試,降低開發者獲取測試設備的門檻,并提供自動化的測試能力。云端測試包含設計約束、安全漏洞檢測、隱私合規檢測、兼容性測試、穩定
131、性測試、性能測試、功耗測試、UX 測試??蓹z測應用或服務從安裝、啟動、運行、卸載全生命周期的問題,如應用崩潰、凍屏、啟動響應耗時長、前后臺內存/CPU 占用高、啟動/卸載異常等。9292 ChapterChapter 6 6 統一上架與多端分發統一上架與多端分發 -1)快速上架-2)應用分發-3)服務分發 9393 HUAWEI AppGallery Connect 為開發者提供全球化、全場景一站式應用分發能力,并為開發者提供質量、安全、工程管理等領域的能力,大幅降低應用開發與運維難度,提升版本質量,幫助開發者獲得用戶并實現收入的規模增長。圖 6-1:一站式分發能力 1)快速上架 HUAWEI
132、 AppGallery Connect 作為開發者統一提交入口,集成證書管理、項目管理、版本管理等功能,支持鴻蒙生態應用、元服務的快速上架與分發。9494 證書頒發 提供統一的證書頒發入口,支持軟件證書和 Provision Profile 管理,保障開發者合法性與應用合法性。圖 6-2:簽名方案 開發者生成自己的公私鑰對(Key Store),并且使用 IDE 生成軟件證書請求文件(CSR)。開發者上傳軟件證書請求文件,生成軟件發布證書,選擇對應的證書可以創建應用的 Provision Profile。開發者使用 Provision Profile 和開發者私鑰完成應用的本地簽名,打包應用并
133、提交。只有經過 HUAWEI AppGallery Connect 合法性檢測、擁有開發者所屬軟件證書簽名的應用才允許提交。經過合法驗簽之后,使用 HUAWEI AppGallery Connect 的秘鑰對應用進行重簽名。9595 允許通過以上步驟的應用安裝到搭載鴻蒙系統的設備上。統一上架 開發者開發完成之后,上傳包體、描述信息、素材等,提交上架審核。也可委托 SaaS廠商為其代理完成開發上架。圖 6-3:統一上架能力 應用管理:提供應用的基本信息管理,支持配置全球化名稱,管理圖標、截圖、描述、應用分類、開發者服務信息等內容。版本管理:維護應用的版本信息,支持配置發布區域、發布范圍、應用資費
134、、內容分級、隱私聲明、版權信息等內容。上架檢測:支持對應用進行基礎信息檢測,包括 API、包名、簽名、資源等,以及對 SDK 接入情況進行檢查。9696 上架審核 為了給用戶提供更安全且出色的體驗,HUAWEI AppGallery Connect 對開發者提交的鴻蒙生態應用、元服務進行嚴格的審核與測試。開發者需了解并遵循華為應用市場審核指南。了解更多詳細信息請訪問:https:/ 完成實名認證才能享受開發者聯盟開放的各類能力和服務。表 6-1:開發者檢測 檢測 簡介 實名認證 只有實名認證過的開發者,才允許進行應用上架分發;應用市場支持個人開發者和企業開發者認證,認證方式多樣化。個人開發者:
135、銀行卡認證、身份證認證、華為云授權認證;企業開發者:對公銀行認證、企業資料認證、華為云授權認證 開發者需提供資質文件以證明其內容符合法律、法規或政策的要求,同時為保障軟件在設備上具備良好的使用體驗,會對其兼容性、安全性、穩定性、隱私、性能、功耗等進行全方位檢測。9797 表 6-2:應用/服務檢測 檢測 簡介 行業資質檢測 支持全行業資質自動化檢測,包括游戲版號、計劃及軟件著作權證書、支付業務許可證等。公司資質檢測 對公司的合法性進行檢測,包括合同、協議、授權書、免責函、安全評估報告等資質的自動化檢測。安全檢測 進行安全風險問題檢測,包括病毒木馬、惡意行為、代碼安全、逃逸對抗等。隱私檢測 通過
136、動/靜態檢測,識別是否存在隱私風險,比如違規收集個人信息、超范圍收集個人信息、違規使用個人信息、強制/頻繁/過渡索取權限、強制用戶使用定向推送等問題。兼容性檢測 通過真機檢測,保障分發設備的兼容性,支持檢測是否存在崩潰、無響應、運行錯誤、功能異常、界面異常等問題。合規檢測 通過 AI 技術,識別圖片、描述、文本等信息,自動檢測內容是否存在色情、暴恐違禁、賭博、毒品、政敏、低俗、禁播等違規行為。2)應用分發 HUAWEI AppGallery Connect 提供了靈活的分發能力,支持按階段、維度、場景等多種形式,高效、精準地分發到用戶設備上。9898 圖 6-4:應用分發全景圖 分發階段 開發
137、者可以在應用的不同成熟階段采用不同的分發手段,結合應用的運行數據與用戶聲音,不斷改進應用質量,持續提供優質服務。9999 圖 6-5:分發階段 分發維度 開發者可以通過多種維度靈活分發應用:設備維度:設備類型、PCID、屏幕類型等。OS 維度:API Level 等。區域維度:發布國家區域、漫游分發等。應用屬性維度:年齡等級、應用分類、軟件版本等。分發場景 開發者上架應用之后,HUAWEI AppGallery 會根據不同的分發場景,選擇最優的分發方式,從而實現高效分發,提升用戶體驗。100100 按需分發:開發者可以將應用進行合理拆分,將非核心的功能做成動態特性;用戶首次下載應用時,只下載基
138、本功能模塊,僅在執行到動態特性時才按需下載,既滿足了業務功能,也減少了存儲空間的占用,消耗更少的網絡流量,提升下載轉換率??焖傩迯停寒旈_發者發現代碼 bug 或者關鍵漏洞時,HUAWEI AppGallery 提供代碼方法級的快速修復方案,支持快速解決問題。智慧分發 HUAWEI AppGallery 構建了搜索、推薦、推廣三大引擎,從海量數據中構建豐富的畫像和知識圖譜,基于 AI 能力實現精準送達。表 6-3:引擎介紹 能力 簡介 搜索引擎 基于精準的用戶意圖識別與豐富的鴻蒙生態應用、元服務標簽體系,構建以用戶體驗為中心的多場景、多模態、全球化搜索引擎,高效連接鴻蒙生態和全球消費者。推薦引擎
139、 基于海量用戶數據,使用機器學習和深度學習算法,提供千人千面的個性化推薦服務,精準觸達目標用戶。推廣引擎 面向合作伙伴提供精準、優質、高效的推廣服務,支持面向安裝、激活、次留、付費等目標的投放,助力合作伙伴快速精準獲量,實現商業成功。101101 3)服務分發 鴻蒙系統作為萬物互聯時代泛終端服務的載體,面向跨設備多終端環境,實現“服務隨身”的跨設備無縫體驗,元服務與 AI 算法深度配合,實現多入口、場景化分發。多入口分發包括設備入口、系統入口、應用入口,場景化分發是系統在理解用戶的基礎上,結合用戶旅程的一種多服務組合分發,從用戶場景出發,圍繞用戶旅程的場景化閉環。例如用戶想去旅游,出行前要查看
140、天氣、預定機票酒店、購買門票,旅途中要去機場、打車、結束后要照片分享,發表感受等,在整個用戶旅程中,都需要用戶自己規劃,自己尋找服務完成對應的操作。多服務的場景化分發是在理解用戶意圖后,將用戶旅程中需要用到的服務組合起來,在用戶需要的時候分發給用戶,比如查看天氣、預定機票酒店、購買門票、打車、航班提醒、分享感受等服務,讓用戶在旅程中感受到智慧便捷,實現場景的閉環。入口豐富 1.協同配合 鴻蒙系統的多入口不僅體現在數量多,層次多,并且體現在用戶場景上的協同配合。如用戶自駕去某景點,先使用手機導航選定路線,進入車后,導航從手機流轉到車機上,并基于用戶意圖途中語音介紹景點,接近景點時,啟動購票服務。
141、2.流量矩陣 流量矩陣是入口流量的有機組合,能實現服務的觸達、留存、召回全生命周期管理。102102 觸達:系統根據用戶偏好和所處的時間、地點等場景,識別用戶意圖,匹配用戶所需內容主動推薦服務,使用戶能發現所需服務。留存:系統提供優質元服務和內容,吸引用戶將服務留存在桌面,并為用戶提供統一的元服務查看、搜索、收藏和管理功能。召回:通過系統能力再次推薦優先匹配服務,喚醒用戶再次使用,召回用戶。智能分發 元服務數量的持續增加給用戶帶來查找服務不方便、選擇困難等問題,若無法提供精準快捷的服務觸發,用戶將面臨信息過載和獲取服務時間成本過大的困擾。AI 的“感知”、“理解”、“推理&決策”等能力,能有效
142、解決用戶查找服務不方便及選擇困難問題。智慧分發核心能力分為感知、知識與理解、推理三層:感知層:精確感知用戶場景,是服務智能分發的基礎。根據多個終端的硬件傳感信號和軟件感知能力,感知層可以感知時間、空間、動作等信息進一步支撐對場景的理解。結合用戶偏好,輔以知識圖譜提供的結構化數據,系統實現了場景的精準融合感知。隨著用戶使用時長和次數的增加,場景的感知能力也將更加精準,推薦的服務將更加貼心,更好地滿足用戶的需求。場景感知分為如下幾類:?基于時間的場景感知:工作日、節假日、首次亮屏、午休、睡前時光等。?基于地點的場景感知:家、公司、公共交通、商城、旅游景點等。?基于設備的場景感知:音頻播放狀態、網絡
143、連接能力、運動狀態等。?基于人物的場景感知:性別,年齡,應用使用偏好等。103103?基于事件的場景感知;快遞物流,異常天氣,訂單狀態、未接來電等。?特別說明,以上場景感知信息均在用戶知情同意的前提下收集。知識與理解層:知識與理解層是智能分發決策的重要依據,圍繞核心場景,持續構建、學習、豐富知識,并基于全面感知與知識增強,精準理解用戶意圖。感知數據結合用戶的行為習慣,輔以知識圖譜提供的結構化數據作為輸入,通過對用戶、場景建模以及 NLU 等技術,實現了用戶此刻的意圖理解。同時在元服務上架的過程中,開發者可以選擇服務分類和標簽,通過服務分類、標簽和智能理解,系統可以將元服務與統一全局意圖進行關聯
144、。推理&決策層:依托豐富的服務生態,完備的知識儲備,學習型 AI 模型實現精準推理。通過基于規則的召回、熱度召回、協同召回、深度學習模型召回等多路召回方式,為每個用戶召回與其意圖、興趣相關的元服務,同時通過端云融合排序模型將召回的服務進行排序,并將 top 服務展示給用戶。開發者可以按照服務分發接口規范接入數據,使用戶意圖和服務數據更精準匹配,從而顯著提升元服務的使用。104104 圖 6-6:基于場景感知的 AI 分發元服務 數據接入接口按照垂域進行細分,例如附近優惠券,附近服務,熱詞排行,音樂內容等。開發者可以根據自己的服務具體使用場景,有選擇的通過這些接口接入數據。105105 隨著個人
145、設備數量越來越多,跨多個設備間的交 ChapterChapter 7 7 自由流轉與分自由流轉與分 布式運行環境布式運行環境 -1)價值與架構定義-2)跨端遷移-3)多端協同 106106 隨著個人設備數量越來越多,跨多個設備間的交互將成為常態?;趥鹘y OS 開發跨設備交互的應用程序時,需要解決設備發現、設備認證、設備連接、數據同步等技術難題,不但開發成本高,還存在安全隱私、兼容性、性能等諸多問題。為了適應萬物互聯時代的環境變化,鴻蒙系統構建了基于分布式運行環境所需要的基礎設施,為開發者提供了基礎的分布式框架能力,使開發者可以更方便的實現跨設備的業務開發,向用戶提供多設備的交互體驗?;谌藱C
146、交互研究發現,多設備的交互場景按照時間的串、并行,分為以下兩種類型:串行交互:指用戶相繼使用多個設備。此類交互場景要求具備較高的連續性、一致性。連續性:當用戶從一個設備轉向另外一個設備的時候,最新的操作狀態應當是繼續保留的、未被中斷的。一致性:當用戶在使用手表、手機、大屏等不同設備時,交互方式與基礎視覺元素應當是一致的,例如多指手勢,控件樣式等。這里的“一致”并不等于與“相同”,由于設備的屏幕尺寸、形態的不同,視覺元素可以進行適配調整。并行交互:指用戶同時使用多個設備。此類交互場景要求具備較高的協作性、互補性。協作性:多個設備彼此交互協調,完成一項任務?;パa性:利用設備的本身形態差異,完成一項
147、任務。例如,當用戶在家里找不到電視遙控器的時候,手機可以變身為遙控器,這就是一種設備能力的互補。對于并行交互與串行交互兩者典型場景,鴻蒙系統分布式運行環境分別提供了與之對應的基礎能力,即跨端遷移和多端協同,兩者統稱為“自由流轉”。107107 圖 7-1:自由流轉的兩種形態 1)價值與架構定義 價值 自由流轉的價值體現在以下幾個方面:自由流轉提供了應用跨設備流轉的能力。應用開發只需遵循框架并適配指定的 API,就能實現設備之間的跨端遷移和多端協同。自由流轉框架實現了流轉過程,包括流轉任務發布、應用免安裝、數據序列化、兼容性判斷等。應用開發只需關注在業務數據本身的同步與恢復,簡化了應用的處理邏輯
148、,降低了應用開發跨端特性的復雜度。自由流轉將徹底改變應用分發模式。鴻蒙生態應用不再與傳統應用那樣,只能局限在單一設備上。108108 架構定義 自由流轉依賴于鴻蒙系統提供的分布式運行環境,該環境從下而上可以分為四層:核心基礎服務:為提供自由流轉設備互聯的核心基礎服務,主要包括如下模塊。?設備管理服務:提供設備管理相關的能力。設備管理服務在系統中的定位是提供應用開發接口的核心服務實現。?分布式軟總線:主要提供基于近場通信技術的通信網絡,實現分布式設備之間的有序通信,使得設備之間的傳輸變得安全可靠、通信 QoS(Quality of Service)可管理、業務質量可預期。?設備畫像(Device
149、 Profile):是設備硬件能力和系統軟件特征的管理器。典型的設備 Profile 信息包括設備類型、設備名稱、存儲容量、是否折疊屏、有無屏幕、分辨率、設備安全等級、設備 OS 類型、OS 版本號等。設備畫像可用于支持智能決策服務進行設備篩選、排序,也可用于支持設備信息的查詢。?智能決策服務:提供智能化的設備篩選能力、設備排序能力。設備篩選能力主要的數據來源基于設備畫像。?HiChain:是設備互信認證部件,提供了設備間互信關系建立、管理、認證、解除的全生命周期管理能力,支撐設備間搭建安全的數據傳輸通道,是鴻蒙系統設備分布式可信互聯的安全基礎能力。109109?身份認證服務:提供端側統一的用
150、戶身份管理、身份認證和訪問控制判斷能力。支持多用戶操作系統,支持多種用戶身份認證方式(包含 PIN、指紋、人臉等)。分布式平臺服務:負責拉通多個物理設備上的運行狀態,同時提供跨設備間的資源訪問和控制能力。核心業務框架:對分布式平臺服務層和核心基礎服務層所提供能力進行調用,完成相應的業務功能,給應用提供更簡單友好的使用接口。開發接口層:所有的應用通過這一層來使用系統提供的能力。圖 7-2:分布式運行環境 110110 2)跨端遷移 跨端遷移是指將一個軟件實體從一臺設備轉移到另外一臺設備上運行。借助跨端遷移能力,鴻蒙生態應用可以自由地在多個設備之間流轉,為用戶帶來無縫的用戶體驗,也會為開發者帶來更
151、多的入口和流量??缍诉w移應用場景 用戶使用應用的情境發生變化時(例如從室內走到戶外、從辦公室到車上等),之前使用的設備可能已經不適合繼續當前的任務,或者周圍有更合適的設備,此時,可以選擇使用新的設備來繼續當前的任務。圖 7-3:跨端遷移示意圖 跨端遷移的應用場景舉例:在外時手機上編輯郵件,到家后遷移到平板上繼續編輯。在外時手機玩游戲,到家后遷移到平板上繼續玩。111111 在家里智慧屏上看視頻,出門時遷移到手機上繼續觀看。手機視頻通話遷移到智慧屏,更沉浸地視頻聊天。3)多端協同 多端協同是指運行在多個物理設備上的軟件彼此協作完成一項任務。通過充分發揮每種設備的優勢能力(例如智慧屏顯示能力、手機
152、輸入輸出能力等),為用戶提供更好的體驗。根據協同能力的不同,例如顯示能力、交互能力等,可以創造出豐富的協同模式。下面以顯示協同、交互協同兩種模式為例展開介紹。開發者可以根據應用的實際特點基于鴻蒙系統提供的分布式開放能力,選擇合適的模式進行體驗設計,或者展開更多探索、創造出新的協同模式。顯示協同 場景舉例:文檔編輯應用的文檔內容和周邊工具菜單可以分別顯示在智慧屏和手機上,在手機上快速操作編輯菜單,在智慧屏上更清晰地查看編輯的效果。圖 7-4:顯示協同示意圖 112112 交互協同 場景舉例:在智慧屏上進行搜索時,在手機上進行文本輸入。通過智慧屏上網課時,在手機上進行手寫答題或繪畫。圖 7-5:交
153、互協同示意圖 算力協同 場景舉例:分布式游戲,在手機/大屏上玩游戲時,利用周邊設備(手機、平板、筆記本等)協助完成游戲應用的計算任務(AI 計算、圖像渲染),提升游戲幀率、畫質。圖 7-6:算力協同示意圖 113113 ChapterChapter 8 8 全方位運維分析全方位運維分析 114114 HUAWEI AppGallery Connect 提供低門檻、高效率、多場景的大數據能力,包括質量分析、性能調優、故障定位、行業風向等。同時支持多維度數據分析,智能診斷問題并給出解決方案,為開發者明確質量優化方向,提升用戶體驗。圖 8-1:運維監控架構圖 崩潰服務 崩潰服務幫助開發者快速發現、定
154、位、解決應用崩潰(又稱閃退)問題,使用時無需開發任何代碼即可實現可視化數據報告的實時查看。也能檢測到在每個設備上的運行狀態,并提供實時數據報告,讓開發者不錯過任何一個崩潰問題。同時,崩潰服務智能匯聚崩潰問題,提供每個問題發生時的環境信息、堆棧等分析數據,讓開發者輕松識別問題優先級,快速解決問題。115115 表 8-1:崩潰服務功能 主要功能 功能描述 可視化實時報告 零代碼集成,自動生成包含堆棧及其他相關信息的可視化數據報告,實時跟蹤應用穩定性??勺远x報告 提供了用戶標識符、鍵值對和日志三種機制增強報告。智能分類 大量崩潰會按照異常類型、代碼位置自動分類,開發者可以根據對用戶的影響程度對崩
155、潰進行排序,確定優先級別。實時監測和提醒 分鐘級實時報告讓您可以實時跟蹤應用穩定性,當發生重大崩潰時,系統能及時提醒開發者。性能管理 性能管理(APM,App Performance Management)服務提供分鐘級應用性能監控能力,檢測應用在每個設備上的運行性能數據,幫助開發者快速發現、定位、解決應用性能問題(包括:應用啟動慢、頁面加載慢、應用無響應、網絡請求慢等),確保應用運行平滑流暢,持續提升應用的用戶體驗。表 8-2:性能管理功能 主要功能 功能描述 可視化實時報告 零代碼集成,自動生成多維度(國家/地區、運營商、網絡等)可視化數據報告。116116 主要功能 功能描述 自動采集應
156、用性能數據 自動采集應用關鍵性能數據、應用無響應數據、應用體驗分析數據、應用啟動性能數據、應用屏幕性能數據、HTTP/HTTPS 網絡性能數據、前臺和后臺活動性能數據等。自定義場景跟蹤 創建自定義跟蹤記錄來監控應用在自定義場景(如用戶登錄場景)下的性能,為自定義跟蹤記錄添加指標(如登錄耗時)和屬性(如帳號類型)。云服務監控 云服務監控是面向云函數、云數據庫等云服務的質量監控解決方案,幫助開發者快速發現、定位、解決云服務的業務層性能問題。支持云服務日志分析、自定義日志、調用鏈路分析等,幫助開發者從調用全鏈路角度分析性能瓶頸,保障用戶體驗。表 8-3:云服務監控功能 主要功能 功能描述 指標看板
157、呈現云服務相關關鍵指標。日志服務 支持各云服務日志查詢、統計、上下文查看等。自定義場景跟蹤 分析業務請求在云服務間的調用鏈路,節點耗時等。告警服務 基于指標設置自定義告警,支持短信、郵件、互動中心、webhook 等多種告警方式。117117 故障監控和預防 如果應用程序一段時間內無法響應用戶的交互,系統則會向用戶提供一個可快速恢復的方法,在系統界面顯示一個對話框,用戶可以選擇等待程序繼續運行,也可以選擇強制關閉程序,這種情況被定義為應用無響應。其主要的技術監控指標包括:發生次數、影響用戶數、用戶 ANR 率、現場信息、主線程堆棧、其他線程堆棧、系統日志等。118118 ChapterChap
158、ter 9 9 全場景案例參考全場景案例參考 119119 影音娛樂 1.場景描述 用戶通過手機拍攝短視頻/直播時,邊拍攝邊控制手機非常不方便,且無法做到多視角拍攝。在一些多人場景下如果能支持多機位、多視角拍攝,短視頻或者直播的效果會更加出色。例如:樂隊直播音樂表演時,智慧屏拍攝整個樂隊,多臺手機單獨拍攝主唱和其他伴奏成員,最后通過一個平板或者手機整體控制切換不同的拍攝視角,完成整個直播的拍攝工作。這樣拍攝出來的視頻,既可以看到樂隊的整體,又可以看到每個樂隊成員的細節,體驗更佳。圖 9-1:多機位直播場景示意圖 2.鴻蒙系統開放能力“多端協同”“分布式硬件(攝像頭、麥克風)”等能力。12012
159、0 運動健康 1.場景描述 用戶通過智慧屏上的健身課程視頻健身,單設備的智慧屏設備無法獲取用戶在健身過程中的健康數據(例如:心率、消耗熱量等),進而無法根據運動數據給出更加科學的健身建議,可能會導致用戶出現運動量過大或者不足等問題?;邙櫭上到y提供的分布式能力,可以通過手表獲取用戶實時的心率數據,并把數據同步顯示在智慧屏上,幫助用戶了解健康狀態。圖 9-2:分布式健身場景示意圖 2.鴻蒙系統開放能力“多端協同”和“分布式硬件(sensor)”等能力。121121 智慧出行 1.場景描述 用戶外出旅行或者出差,到達機場之后需要用手機打車到目的地,當用戶手上拿了行李時,用手機查看出租車的實時狀態非
160、常不方便。通過鴻蒙系統提供的分布式能力可以很輕松的解決這個問題,只需要把出租車信息從手機流轉到手表,用戶抬腕就可以輕松查看出租車的最新狀態。圖 9-3:分布式打車場景示意圖 2.鴻蒙系統開放能力 “跨端遷移”等能力。122122 智慧辦公 1.場景描述 用戶在上班路上通過手機編輯文檔,到公司之后需要通過 PC 繼續編輯時,傳統的文檔編輯應用需要借助云同步才能實現該需求。從用戶體驗看,借助“云”同步文件,如果文件很大,同步速度慢并且需要用戶多次操作才能完成文檔的接續編輯。從開發者投入成本看,“云”同步文件,需要服務器資源和云文件同步功能的開發,開發者在傳統的單設備操作系統上開發“一多”應用也會有
161、很多端側重復適配工作,大大增加開發成本。通過鴻蒙系統提供的分布式能力,開發者只需要花費很小的成本便可實現用戶的跨設備文檔同步并接續編輯的需求。用戶只需要在手機編輯文檔的頁面點擊流轉按鈕,選擇需要流轉的 PC,手機的文檔就會同步到 PC,同步完之后自動打開文檔進入編輯頁面,用戶就可以接著在 PC 上繼續編輯這個文檔了。圖 9-4:分布式辦公場景示意圖 2.鴻蒙系統開放能力“一次開發,多端部署”、“跨端遷移”和“分布式文件”等能力。123123 智能家居 1.場景描述 親子游戲用于活躍家庭氣氛,增進親子關系。但是一般的多人游戲需要多個游戲手柄才能進入游戲,居家生活中,經常會出現找不到手柄的狀況。通
162、過鴻蒙提供的分布式能力,只需要把手機作為游戲手柄,隨時可接入游戲。圖 9-5:分布式游戲場景示意圖 2.鴻蒙系統開放能力“多端協同”和“分布式硬件(sensor)”等能力。124124 ChapterChapter 1010 附錄:術語附錄:術語 125125 A Ability:應用的基本組成部分,是應用所具備能力的抽象。Ability 是系統調度應用的最小單元,是能夠完成一個獨立功能的組件,一個應用可以包含一個或多個Ability。Application sandbox(應用沙盒):通過自主訪問控制(Discretionary Access Control,DAC)、強制訪問控制(Mand
163、atory Access Control,MAC)等訪問控制機制,隔離系統資源,用于保護應用自身和系統免受惡意應用的攻擊。App Pack:HarmonyOS 應用程序的打包形態,后綴為.app,每個 App Pack 可以包含 1 個或多個 HAP 包。ArkCompiler:方舟編譯器,是鴻蒙系統內置的組件化、可配置的多語言編譯和運行平臺。ArkCompiler Bytecode:即方舟字節碼,ArkCompiler 編譯工具鏈負責將 ArkTS/TS/JS 源碼編譯成字節碼,作為運行時的輸入,實現對應的語言的語義邏輯。該類字節碼文件的后綴縮寫為.abc。ArkUI:鴻蒙系統的原生 UI
164、開發框架,支撐開發者高效地構建跨設備應用 UI 界面。ArkTS:鴻蒙生態的應用開發語言。在保持 TypeScript(簡稱 TS)基本語法風格的基礎上,對 TS 的動態類型特性施加更嚴格的約束,引入靜態類型。同時,提供了聲明式 UI、狀態管理等相應的能力,讓開發者可以以更簡潔、更自然的方式開發高性能應用。126126 Atomic Service(元服務):鴻蒙系統提供的一種全新的應用形態,具有獨立入口,用戶可通過點擊、碰一碰、掃一掃等方式直接觸發,無需顯式安裝,由程序框架后臺靜默安裝后即可使用,可為用戶提供便捷服務。C C API:鴻蒙 SDK 提供的 Native 開發接口。H HAP:
165、HarmonyOS Ability Package,一個 HAP 文件包含應用的所有內容,包括代碼、資源、三方庫及應用配置文件,其文件后綴名為.hap。HarmonyOS 平臺開放能力:通過 HarmonyOS SDK API 提供,跟隨 HarmonyOS版本節奏發布,開發者通過調用 API 的方式進行使用;M Module:在開發態,專門指IDE中工程管理的一種由開發者決定的功能相對聚合的功能單元。一個 IDE 工程可以包含多個 Module。Module 可以被編譯打包成一個HAP,用于在設備上安裝運行。MSDP(Mobile Sensing Development Platform):
166、MSDP 子系統提供兩類核心能力:分布式融合感知和分布式設備虛擬化兩大部分。?分布式融合感知:借助鴻蒙分布式能力,將各設備感知源進行匯總融合,對用戶的空間狀態、移動狀態、手勢、健康狀態等進行精準感知,構建全場景泛在基礎感知能力,支撐智慧生活新體驗。127127?分布式器件虛擬化:借助鴻蒙分布式能力,構筑器件虛擬化平臺,將外部設備的各類器件(如 Camera、顯示器、SPK/MIC 等)虛擬化為本地設備的器件延伸使用。同時具備將自身器件共享給其他設備使用的能力。O OHPM:鴻蒙生態三方庫中心倉。S Super virtual device(超級終端):通過分布式技術將多個終端的能力進行整合,存放在一個虛擬的硬件資源池里,系統可以根據業務需要統一管理和調度終端能力,來對外提供服務。SystemCapability:簡稱 SysCap,即系統能力,指操作系統中每一個相對獨立的特性,如藍牙,WLAN,NFC,攝像頭等,都是系統能力之一。每個系統能力對應多個 API,這些 API 綁定在一起,隨著目標設備是否支持該系統能力共同存在或消失,也會隨著 IDE 一起提供給開發者做聯想。T TSAOT:方舟編譯運行時利用 TS 攜帶的類型信息,直接將 TS 語言編譯成端側機器碼,使得 TS 運行階段能獲得更高的性能。X XComponent:ArkUI 提供的組件接口,滿足開發者自渲染的需求。