未來已來,OpenHarmony 3.2 Release釋出,邁入發展新階段

OpenHarmony開發者發表於2023-04-13

2023年4月9日,在社群開發者的期盼中,在春風送暖萬物更新的季節裡,我們迎來了OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)3.2 Release新版本的釋出。相比一年前的OpenHarmony 3.1 Release版本,新版本的系統能力、系統整體效能、穩定性和安全性都進一步得到提升和完善;OpenHarmony 3.2 Release版本為應用開發而生,在系統能力、開發工具和API、硬體調測等將為開發者帶來全新體驗!

OpenHarmony開源兩年多以來,吸引了130多傢伙伴、超過5100名開發者參與共建和貢獻,產出超一億行程式碼。超260款軟硬體產品透過相容性測評,廣泛覆蓋了能源、金融、交通、教育、政務、家居等很多行業。感謝各位夥伴和開發者的貢獻,是大家的支援和貢獻,加速了OpenHarmony生態的繁榮發展。隨著OpenHarmony 3.2 Release版本的釋出,OpenHarmony社群邁入新的發展階段。

OpenHarmony 3.2 Release版本帶來了眾多的新特性,支援採用ArkTS語言+Stage應用模型進行大型應用、原子化服務開發;ArkCompiler的最佳化、Taskpool機制提升應用執行效能;ArkUI元件能力增強,強化圖形渲染能力和系統安全能力,豐富分散式業務開發;引入AI框架,同時,媒體、電話、通訊、Web、安全、調測能力進一步提升;外設模型進一步豐富。新版本還提供了API Level 9穩定介面。下文描述新版本的部分新特性,請您前往OpenHarmony 3.2 Release Note瞭解所有新功能的詳細資訊。

立即檢視所有新功能
https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v3.2-release.md

OpenHarmony 3.2 Release為開發者帶來了什麼

ArkUI
元件能力增強

●支援XComponent控制元件,可用於EGL/OpenGL ES和媒體資料寫入,並在XComponent元件顯示;透過XComponent元件,配合NDK能力,構建C++/ArkTS混合開發能力,支援遊戲、媒體應用開發。
●支援AbilityComponent控制元件,支援嵌入其他應用作為控制元件(Component)顯示。
●增加基礎的ArkTS卡片開發能力:支援卡片互動、能動態更新內容;統一卡片和頁面的開發正規化,頁面的佈局可以直接複用到卡片佈局中,提升卡片開發體驗和開發效率。
● 系統預設支援純文字、純圖片複製、貼上、拖拽,無需開發者處理複製、貼上、拖拽事件。
● 支援多級選單和分組選單。
● 支援切換深色模式/淺色模式,僅系統應用支援。

UI介面開發支援一次開發適配多螢幕規格
● 互動歸一能力增強,互動歸一事件對接TP、滑鼠、鍵盤、觸控板、手寫筆,ArkUI原生元件支援歸一化的操作方式。
● 響應式佈局能力最佳化,增強了媒體查詢能力,柵格系統重構且對接自由視窗。
● 走焦能力增強,支援Tab鍵和方向鍵走焦,支援配置元件是否可獲焦。
● 支援增強分欄與側邊欄元件能力,支援拖拽自動隱藏等能力。

應用框架
● Stage模型,OpenHarmony API 9新增模型,提供了應用程式必備的元件和執行機制。開發者可以基於該模型進行復雜應用開發,使應用開發更簡單、高效。
○ 以類形式提供元件開發,方便開發者基於類擴充套件。
○ 程式內共享虛擬機器例項,減少應用記憶體佔用。
○ 支援在程式內共享資料物件,方便開發者在多模組間共享狀態。
○ Ability生命週期和視窗顯示/焦點事件分離,統一了多裝置形態下元件的生命週期,有利於多裝置應用開發。
○ Ability與UI職責分離且具備RPC呼叫能力,原生支援元件級的跨裝置遷移與協同,有利於分散式應用開發。

● 提供Extension機制,藉助Extension,應用在與其他應用或系統進行互動時向他們提供自定義功能和內容,例如:應用可以作為卡片顯示在系統桌面或者系統閒時執行後臺任務等。當前支援的常用Extenson有:FormExtensionAbility、WorkSchedulerExtensionAbility、InputMethodExtensionAbility、AccessibilityExtensionAbility等。
● 原子化服務支援分包預載入,提升服務首次載入效能。
● 支援HSP(Harmony Shared Package)動態共享包,支援應用內程式碼和資源的共享。

應用包管理
● 支援選擇預設應用,例如使用者使用應用程式開啟檔案或url地址時選擇了預設程式,後續將自動開啟該應用程式操作檔案。
● 支援對部分預置應用如Launcher、SystemUI、Settings等,系統事先授予許可權(如定位、電話聯絡人等許可權)、簡化裝置開箱後的授權過程,提升使用者體驗。
● 支援預置應用配置是否可常駐、是否可以多程式,是否允許使用Service型別的ExtensionAbility等能力,加強對預置應用的許可權管控。
● 支援動態修改和更新應用程式的程式碼,提供快速修復程式包便於應用快速響應需求和修復問題(此能力依賴裝置廠商構建應用市場並提供分發能力)。
● 支援so基於hap包的隔離,方便開發者在不同的模組中部署so檔案,避免了不同模組so重名的問題。

分散式技術
支援元服務和卡片跨裝置流轉,包括:跨裝置查詢、新增、重新整理、刪除等。

分散式軟匯流排
● 提供基於藍芽鏈路的檔案傳輸能力,藍芽資料傳輸通道相比OpenHarmony 3.1版本效能提升約10%。
● 透過為每個程式分別建立Message和Byte高低優先順序佇列,確保在Message和Byte併發的情況下,優先保障訊息佇列的資料傳送,同時也能保障Byte得到有效傳輸,解決了在位元組資料擁塞的情況下,訊息資料不能及時傳輸的問題。
● 在支援RAW流的基礎上,新增COMMON流傳輸能力,將未加密音影片流交由軟匯流排進行加解密,呼叫者只需要把原始的音影片流資料傳遞給軟匯流排,軟匯流排保障資料的安全傳輸。
● 支援傳輸鏈路(WLAN/WiFi P2P/藍芽BR)動態選擇。根據雙端裝置支援的傳輸鏈路以及業務呼叫軟匯流排傳輸介面(SendFile、SendSteam、SendMessage、SendBytes)進行鏈路選擇。例如當需要傳輸流資料時,優先選擇WLAN(5G頻段)進行傳輸,如果WLAN不可用,則選擇其它鏈路(例如WiFi P2P)進行傳輸。

分散式硬體
● 分散式相機拍照支援設定拍攝地理位置資訊和照片質量級別(影響照片的壓縮比和畫質清晰度)。
● 分散式相機支援錄影功能。
● 裝置管理支援將帳號認證資訊匯入到裝置安全認證系統中,相同帳號的裝置可以自動完成裝置認證和組網。

分散式資料管理
跨應用資料訪問、本地資料庫、資料同步能力進行了最佳化和增強。
● 透過代理方式實現同裝置內跨應用資料訪問,避免頻繁拉起資料來源應用。
● 支援同裝置內關係型資料庫、鍵值型資料庫的跨應用資料訪問。
● 支援鍵值型資料庫和關係型資料庫。
● 支援對資料庫檔案的加密儲存。
● 支援資料庫的異常損壞檢測以及異常重建。
● 支援應用透過客戶端進行備份和恢復資料庫。
● 支援自動備份鍵值型資料庫。
● 支援同應用跨裝置對關係型資料庫遠端查詢。
● 支援後設資料庫異常損壞檢測和自動重建。
● 鍵值型資料庫從統一的系統沙箱切換到各應用沙箱,縮小應用資料的訪問許可權,提升了應用資料的安全性。

媒體
音訊
● 提供選擇藍芽裝置進行音訊播放和通話的能力。
● 支援生成DTMF撥號音並進行播放。
● 支援OpenSL ES基礎錄音介面。
● 支援應用查詢當前可用的音訊裝置列表,並攜帶具體裝置資訊,比如裝置取樣率、通道數、通道掩碼。
● 支援查詢系統中已建立的播放流和錄音流資訊。

播放
● 媒體播放支援fd格式輸入的本地播放、支援HTTPS、HLS協議網路點播功能。媒體播放支援基於HDI的H264硬解播放能力。
● 提供音影片編解碼能力,基於HDI codec介面的影片硬編碼/硬解碼能力。

相機
● 支援相機拍照配置:格式、解析度、質量(影響照片的壓縮比和畫質清晰度)、地理位置等。支援錄影和錄影中抓拍。
● 支援相機精準隱私保護策略,僅允許前臺使用(包含相機懸浮窗場景);支援系統服務後臺使用相機,不允許第三方APP後臺靜默使用相機。提供系統介面,供相機全域性開關開啟、禁用呼叫。

圖片
增加支援raw、Webp圖片格式。

程式訪問控制
● 實現應用和系統程式的許可權管理框架,提供如下應用許可權的操作介面:
○提供許可權的校驗、許可權的授予、許可權的撤銷功能。
○提供許可權的授權變化監聽功能。
○提供拉起許可權彈窗的介面,應用可以透過該介面拉起彈窗,向使用者申請授權。
● 提供許可權彈窗應用以及Setting應用的隱私許可權管理功能。
● 提供隱私報告功能,支援新增/查詢許可權訪問記錄、監聽許可權使用狀態變化介面。
● 提供隱私保護增強特性,提升使用者的隱私保護體驗,包括:
○相機使用提醒,在相機使用時,通知systemUI在右上角顯示小圓點,提示使用者。
○一鍵開關功能,提供使用者一鍵開關,管控裝置麥克風/相機敏感資源的使用。
● 提供SELinux功能的permissive模式。

ArkCompiler
語言特性增強
● 支援嚴格模式的Ecma2021規範。編譯器執行時功能
● 提供es2abc編譯器,最佳化位元組碼編譯效能、縮短編譯時間。
● 提供彙編直譯器提升應用高階語言執行效能。
● 提供基於PGO配置檔案的Host AOT最佳化編譯器,提升應用高階語言高負載效能。
● 支援模組化能力,更好、更規範的支援複雜應用工程開發。
● 支援熱補丁機制,提供應用熱修復執行時技術底座。
● 除錯增強,支援多例項除錯、熱過載除錯,提升開發者開發效率。
● 支援基於CDP協議的CPU Profiler/Heap Profiler調優能力,提供應用效能調優和記憶體調優能力。

語言基礎庫
● utils功能增強,支援uuid提供通用統一識別符號功能,支援Buffer提供緩衝區讀寫比較查詢功能。
● Concurrent併發庫增加併發API TaskPool基礎版,提供併發任務介面。任務池(Taskpool)作用是為應用程式提供一個多執行緒的執行環境,降低整體資源的消耗、提高系統的整體效能。C/C++工具鏈
● 工具鏈升級:LLVM升級到12.0.0,支援MIPS架構、RISC-V架構。
● 功能增強:支援stack pageguard保護,地址隨機化,namespace隔離,CFI功能,Fortify功能,時區資料更新等,提升C/C++庫安全。
● 效能最佳化:實現高頻函式效能最佳化提升c庫基礎效能,實現linker最佳化提升庫載入效能。
● 支援locale提供時區設定重新整理功能。

驅動
HDF驅動框架能力
● 支援核心態驅動動態載入、外接裝置即插即用事件上報、驅動安全策略配置,為開發者提供更穩定、安全的驅動平臺底座。
● HDI介面支援IPC呼叫和直通呼叫兩種通路模式,開發者可根據實際業務靈活使用,提升業務效能。
● 支援HDI服務化程式碼自動生成能力、模板化驅動程式碼生成能力、HCS宏式解析及配置視覺化編輯等能力,降低驅動開發門檻,提高開發效率。
● Platform平臺驅動支援使用者態中斷、新增CAN匯流排HDF驅動框架、MMC驅動實現最佳化等。

外設驅動模型能力
● Camera驅動模型支援自拍映象、鏡頭控制、JPEG位置資訊新增、Sensor捕獲角查詢、人臉識別Meta流支援,簡化相機驅動開發難度。
● Audio的ADM模型增加耳機接入、聽筒和喇叭切換控制、通話音量設定、通話靜音等關鍵控制能力,支撐音訊硬體生態擴充。
● Display驅動模型支援多屏管理、軟體Vsync機制、相容FrameBuffer架構,支援不同顯示架構高效接入。
● 支援標準系統的Codec硬體編解碼驅動模型、提供Codec HDI 2.0介面及參考實現,支援更完備的硬體編解碼能力。
● 支援馬達驅動模型,包括馬達振動啟停、基礎馬達效果控制,為使用者提供豐富的振感體驗。
● 支援手勢驅動模型,包括狀態事件、裝置狀態事件上報;支援手勢啟停、功能狀態配置。
● USB驅動模型支援裝置模式和主機模式,新增支援裝置模式下RNDIS網路驅動等DDK能力。
● 支援WLAN驅動能力抗干擾能力,提供最優P2P通道選擇能力,持續提升WLAN訊號質量。

工具提升
DevEco Studio程式碼開發
● 支援應用/服務開發環境的診斷功能,能夠檢測開發環境是否完備,確保開發者擁有良好的開發體驗。若檢查結果中存在不滿足的檢查項,建議您根據修復建議進行調整。
● 提供基礎模板和卡片模板,支援Stage工程下建立ArkTS服務卡片,幫助開發者快速開發應用和服務。
● 支援OpenHarmony工程新增Extension Ability模板,具體請參考在模組中新增Ability。
● 支援按照ArkUI新語法和新規範,檢查程式碼提示錯誤;新增Code Linter程式碼檢查功能,支援配置檢查規則,修復檢查結果。
● 支援C++程式碼Quick Fix基礎能力,具體請參考程式碼Quick Fix快速修復。
● 提供全新的OHPM CLI(OpenHarmony Package Manager Command-line Interface) 生態三方庫包管理工具,支援OpenHarmony共享包釋出、安裝和依賴管理。支援API 9的歷史工程遷移為OHPM工程,詳細參考歷史工程手動遷移。
● 支援構建閉源HAR,並支援配置HAR的混淆能力。
● 支援AOT編譯模式,提供高負載TS效能選擇和構建能力,提升應用執行效能,具體請參考開啟AOT編譯模式。
● API 9的Stage工程預設開啟模組化編譯,可有效縮短增量編譯時間、減小編譯後的包體積。
● 支援併發編譯提升編譯速度。

DevEco Studio應用除錯調優
● 支援ArkTS/JS與C/C++跨語言除錯特性,在C/C++工程中,採用ArkTS/JS與C/C++進行混合開發,能夠在ArkTS或JS呼叫C/C++方法處,直接進入C/C++程式碼中進行除錯,方便開發者快速發現並解決跨語言呼叫相關程式碼問題。具體請參考ArkTS/JS與C/C++工程跨語言除錯。
● 支援Hot Reload熱過載,支援儲存程式碼後在真機上使用最新的程式碼而無需重啟應用。
● 支援OpenHarmony多包推送和多例項除錯功能。
● 支援OpenHarmony API 9 C/C++工程的記憶體錯誤檢測。
● OpenHarmony日誌功能支援列印FaultLog,便於應用開發者快速查詢、定位、匯出應用故障資訊。
● 測試框架能力增強,針對JS/ArkTS API Version 8和9的工程,測試框架的執行效率顯著提升;同時最佳化了測試框架模板,提升模板程式碼的可讀性。

測試能力
● 新增測試用例篩選執行能力,支援在用例中配置指定欄位如用例型別、級別等引數,透過命令執行篩選後的用例,幫助開發者提升測試執行效率。
● 新增測試用例驅動執行能力,可將相似測試邏輯的不同輸入輸出資料配置到輔助檔案中使用,幫助開發者減少測試程式碼量。
● 新增多視窗、雙指捏合、拋滑等UI場景模擬操作能力,提升UI自動化支援範圍。
● 新增OpenHarmony應用質量要求相容性測試規範,涵蓋UX、效能、功耗、穩定性、相容性和安全六大方面,規範OpenHarmony應用基礎質量要求。
● SmartPerf-Host效能功耗除錯調優工具,為開發者提供一套效能調優平臺,支援GUI(圖形使用者介面)操作進行詳細資料分析。3.2版本新增:
○支援功耗分析能力,展示應用各子類別功耗佔比資訊、資源申請使用記錄、功耗異常事件、功耗與系統狀態關聯資訊。
○支援Web端抓取trace。
○支援SQL查詢和Metrics說明。
○支援核心記憶體事件分析。
● wukong軟體穩定性工具能力增強:
○支援注入滑動、滑鼠、字元、系統按鍵、控制元件事件,模擬使用者多樣化隨機操作,覆蓋真實使用者操作場景,挖掘更多穩定性問題。
○支援設定執行總時長、應用黑白名單,實現個性化測試。
○支援控制元件順序遍歷測試,測試過程中支援介面截圖;支援休眠喚醒測試。

獲取OpenHarmony 3.2 Release原始碼進行體驗

OpenHarmony 3.2 Release版本依照慣例,繼續提供版本原始碼和現成映象的方式,支援社群開發者進行體驗、使用。

方式一
OpenHarmony 3.2 Release Note中提供了版本程式碼的下載方式。您可以從版本分支獲取該版本分支的最新原始碼,包括版本釋出後在該分支的合入。同步程式碼的命令如下:

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

方式二
OpenHarmony 3.2 Release Note中還提供映象站點,可以直接獲取映象進行體驗,支援全量程式碼、各種解決方案、適用各種平臺的標準系統Public SDK包。

加入社群共建,持續貢獻

當前,已有數以千計的開發者參與到OpenHarmony的貢獻和共建中來。同時,也已累計有上百傢伙伴單位參與到OpenHarmony的開發和實踐中。未來,也期待更多的共建單位和開發者攜手齊心,共同打造使能千行百業的數字底座。

圖片

相關文章