近日,版本OpenHarmony4.0 Release版本如期發布,發布開發套件同步升級到API10。新增相比3.2 Release版本,版本OpenHarmony 4.0 Release版本新增4000+個API,發布應用開發能力更加豐富;HDF新增200+個HDI接口,新增硬件適配更加便捷;持續優化圖形框架、版本方舟編譯器(ArkCompiler)、發布ArkUI組件定制化能力和組件動效能力,新增用戶交互體驗得到進一步提升;分布式硬件支持的版本范圍擴大到音頻和輸入領域;分布式數據為開發者數據分享帶來了全新的統一數據管理框架。另外,發布該版本在媒體、新增安全和隱私保護等方面也得到了進一步增強。版本以下為部分特性更新:
圖形框架及窗口
圖形
穩定流暢:
對統一渲染模式進行了性能優化,發布包含基于共享內存的新增IPC性能優化、基于遮擋剔除和緩存等技術的渲染性能優化、基于硬件合成器能力的能效提升等。
圖形處理依賴的渲染庫升級至Skia 0310新版本,提升了渲染性能。
極致動效:
支持組件自繪制內容的屬性動畫。支持組件設置出現和消失的轉場動畫。
支持取色能力,支持漸變模糊,支持邊緣像素擴展,支持漸亮效果,支持多種模糊材質能力。
圖片能力增強:
圖片編解碼能力增強:支持SVG格式圖片解碼,ico格式圖片解碼,GIF增量解碼,jpeg_IDCT縮放解碼,png圖片編碼,圖片exif信息拓展。
圖片接口能力增強:支持Pixelmap JS側的序列化反序列化,提供ImageReceiver和圖片解碼NDK接口。
窗口
支持監聽窗口的獲焦狀態,可以監聽單個窗口的獲焦、失焦和顯示隱藏狀態。
支持應用將子窗口z軸順序調整到當前應用窗口中的頂層。
支持查詢屏幕的顯示模式(鏡像、擴展),提供停止鏡像和停止擴展API。
優化了display模塊的參數值獲取方式,從原先軟件方式優化為從硬件直接獲取真實值。
支持通過窗口設置將屏幕亮度恢復默認值。
重構沉浸式實現方式,優化應用打開、退出、跳轉下的動畫效果。
ArkCompiler
高級語言調試調優:
熱重載性能優化,支持多hap等場景。
支持多實例調優。
高級語言并發增強:
TaskPool支持任務中斷和取消,支持定義任務組(TaskGroup),支持對任務的狀態和調度信息進行打點,支持超長等待的任務進行識別和恢復。
TaskPool支持優先級設置及自動擴縮容算法。
高級語言優化編譯:
正式定義ArkTS語法規則并新增ArkTS語法檢查,在使用DevEco Studio進行代碼編譯時會對不符合ArkTS語法規則的代碼進行告警。
AOT優化編譯支持端側閑時編譯,增強編譯優化進一步提升性能。
PGO支持采集運行期的類型和函數熱點信息,支持AOT優化編譯JS代碼,提升動態JS代碼的運行性能。
應用框架
Stage模型新增6類Extension,并完善了以下特性:
新增Extension能力最小化管理,支持各類Extension滿足業務場景需要。
新增UIExtension機制,用于實現有界面的Extension,UIExtension的界面可以通過UIExtension組件的方式嵌入到調用方應用的窗口上顯示。
支持原生默認的Extension界面展示,方便開發者快速實現Extension功能,同時也提供界面定制能力。
提供自定義操作業務的ActionExtension、分享業務的ShareExtension、備份恢復業務的BackupExtension、驅動業務的DriverExtension、打印業務的PrintExtension。
ArkTS卡片能力增強,支持靜態卡片配置、靜態圖展示,有效降低卡片內存資源占用,支持通過數據代理的方式刷新內容,有效降低卡片功耗。
支持元服務的分享,應用開發者可以使用UIAbility組件提供的UIAbility.onShare()生命周期方法,設置要分享的數據。用戶可以通過分享框把元服務和卡片分享到另外一臺終端設備。
跨端遷移能力增強,支持調用接口來動態打開和關閉遷移能力。應用可動態選擇遷移成功后是否遷移頁面棧,以及源端是否退出。
ArkUI
基礎組件增加或增強:
新增UIExtension組件,用于將一個應用通過UIExtensionAblity的方式,嵌入顯示到另一個應用內。
繪制組件Rect/Circle/Ellipse/Line/Polyline/Polygon/Path/Rect/Shape支持偏移、裁剪、遮罩等通用屬性,增強繪制組件基礎功能。
自定義彈框支持蒙層顏色及彈出動畫自定義,如允許設置彈出動畫效果的相關參數,增強彈框的開發者自定義功能。
ColumnSplit分隔線支持可拖動,增強組件基礎功能。
Refresh組件支持自定義下拉刷新能力,允許設置下拉刷新時的顯示內容,增強組件基礎能力。
支持文本組件中返回輸入字符串的寬高,用于字符串折疊顯示時,鼠標懸浮可彈出字符串完整提示框,增強文本組件基礎功能。
ArkTS/JS卡片支持UI渲染完成的回調,方便獲取渲染完成的狀態并進行下一步處理。
基礎組件特性增強,提升終端用戶的體驗,包括彈框支持通過鍵盤ESC鍵逐層退出、ListItem支持長距離左滑刪除手勢、ContextMenu支持分段顯示能力等。
半模態組件支持設置高度自適應。
動畫效果增加或增強:
支持組件屬性變化的過渡動效,如組件的尺寸、背景色、透明度等屬性發生變化時通過過渡動效銜接變化前后的狀態,提升組件屬性變化時的動畫體驗。
支持給組件設置球面高階屬性、下邊緣像素擴展、取色模糊、G2圓角、陰影、漸變等高階圖形屬性,豐富高階動畫效果。
布局屬性、背景圖片大小位置屬性、顯隱屬性支持隱式動效。
List新增支持scrollToIndex動效、Tasb模糊動效、Popup出現/消失動效。
支持自定義動畫,滿足多種多樣的動畫訴求。
分布式數據管理
DataShare客戶端提供按URI前綴訂閱DataShareExtension數據變化的能力,被訂閱的URI前綴下任何DataShareExtension數據發生變化都會通知DataShare客戶端。
新增統一數據管理框架(Unified Data Management Framework, UDMF),支持數據標準化模型、設備內數據拖拽、UDMF數據存儲適配、權限管理、生命周期管理。UDMF框架下支持應用的跨設備拖拽,在此過程中允許對分布式目錄中的文件臨時授權。
提供RDBstore NDK接口 :包含增/刪/改/查/事務、數據加密、數據分級保護、備份/恢復能力。
Key-Value和分布式數據對象支持根據數據量自動選擇數據同步的通道。系統會根據數據量大小自動選擇藍牙通道或基于Wi-Fi的P2P通道進行數據的同步。
文件管理
支持文件分類視圖管理能力,圖庫等應用以相冊方式管理媒體文件(圖片、視頻無需關注具體存儲位置),相冊內添加、移除文件等功能不涉及具體的File IO行為。支持三方應用通過PhotoAccessHelper接口獲取相冊列表,訪問相冊內圖片、視頻等文件。
提供增強的FileIO訪問能力,支持randomAccessFile、moveDir、copyDir能力。
提供基于URI的文件臨時授權訪問及取消授權能力,支持文件的跨應用本地授權或跨設備授權。
支持公共圖片文件在設備端和云端進行同步(設備登錄的帳號需開通云端服務),支持通過picker選擇云端的圖片。
應用包管理
支持應用安裝包免解壓特性,優化系統啟動性能和應用安裝性能。
支持應用、元服務數據共享,在應用安裝時,解析證書文件中的data-group-ids列表,建立映射關系,創建數據共享路徑,實現應用與元服務數據共享。
支持應用安裝時設置分發類型和附加信息,提供ArkTS接口實現應用分發類型和附加信息的設置和查詢。
支持企業應用,提供企業MDM應用和企業normal應用的安裝,以及對企業應用的管理和吊銷。
支持overlay能力,針對不同產品的顯示風格,開發者可以在不重新編譯打包情況下,新增資源文件overlay包,實現應用界面風格變換。
支持so文件不解壓使用,即不解壓so文件到單獨目錄,運行期直接從包中讀取加載so文件,提升安裝速度和減少占用的ROM空間。
WebView
W3C能力補充完善:補充Web camere能力,以及bindContextMenu、Select、date類型input等H5標簽能力。
支持多渲染進程的進程拆分。
支持文字、圖片基礎拖拽能力。
支持WebRTC的視頻會議能力(不含攝像頭共享)。
支持渲染進程獨立SELinux標簽,增強安全基礎能力。
支持識別Web組件渲染進程、顯示線程和場景信息,并通知系統資源調度進行CPU管控。
測試
測試框架arkxtest
支持自動化腳本測試套嵌套定義能力,提升開發者腳本設計靈活性。
支持對象級斷言能力,提升測試腳本斷言能力。
支持模擬中文輸入、模擬鼠標操作、區域截圖的能力。
自測試執行框架developer_test
支持測試任務管理能力,開發者通過任務ID執行歷史任務,提升開發者自測試效率。
支持精準測試能力,支持子系統、部件、測試套、測試用例級測試用例篩選執行能力,提升開發者自測試效率。
支持對接執行hats用例,豐富執行用例范圍。
支持穩定性測試能力,支持測試用例亂序執行。
支持覆蓋率統計能力,支持開發者本地一鍵式生成代碼覆蓋率數據。
性能調試開發工具SmartPerfHost
支持Frame timeline抓取和展示能力,開發者可以抓取和展示卡頓丟幀檢測的數據。
支持Scheduling analysis抓取和展示能力,開發者可以抓取和展示CPU調度分析,線程調度分析相關數據。
支持調用棧可視化和不同庫函數調用占比展示能力,開發者可以抓取并通過餅圖的方式展示調用棧及不同庫函數的占比
性能數據采集SmartPerf Device
支持應用冷熱啟、頁面內切換、滑動幀率測試能力,開發者可以測試應用冷熱啟動時延、頁面切換時延、滑動幀率測試能力。
支持端側測試數據對接云端看板能力,開發者可以將端側測試報告上傳云端查看或下載云端數據到本地。
該版本的完整信息可以訪問OpenHarmony官方網站,歡迎開發者踴躍使用并提出寶貴意見,開放開源共建,共同打造下一代智能終端的根社區和萬物互聯的數字底座。
審核編輯 黃宇