今天小編分享的科技經驗:開源鴻蒙OpenHarmony 5.1.0(API 18)正式上線:進一步增強ArkUI,歡迎閱讀。
IT 之家 5 月 4 日消息,開源鴻蒙 OpenHarmony 是由開放原子開源基金會孵化及運營的開源項目,目标是面向全場景、全連接、全智能時代,搭建一個智能終端設備作業系統的框架和平台,促進萬物互聯產業的繁榮發展。
OpenHarmony 5.1.0 Release 正式版已于 4 月 30 日發布并上線 Gitee 平台,更新 API 18。
相比前一個 Release 版本(OpenHarmony 5.0.3,即 API 15),OpenHarmony 5.1.0 Release 重點做出了如下特性新增或增強:
進一步增強 ArkUI,提供更豐富的組件屬性設定,支持更多精致動效,持續補充組件通過 C API 調用的能力;進一步增強媒體能力,提供更豐富的編解碼能力、播控能力、媒體會話管理能力;進一步豐富了應用啟動的細節設定能力;進一步增強分布式數據管理的 UDMF、RDB 的數據處理能力;進一步完善了标準 Web 能力等等。
IT 之家附官方發行說明如下,将按照 API 版本順序分别進行列舉:
應用框架新增支持根據指定的數據加密級别創建應用上下文,以獲取相應的路徑。新增支持同步獲取當前進程的進程名(processName)。新增支持獲取應用被拉起原因(LAUNCH_REASON_MESSAGE)。啟動框架新增支持 HAR / HSP 和 so 檔案。新增支持啟動 Ability 時指定主視窗顯示的最大寬高(maxWindowWidth / maxWindowHeight)和最小寬高(minWindowWidth / minWindowHeight)。新增支持獲取應用上一次退出的詳細原因。新增支持設定 UIAbility 的顏色模式。新增支持通過 startAbility 的屬性 startOptions 來指定創建新視窗的大小(minWindowWidth、minWindowHeight、maxWindowWidth、maxWindowHeight)。C API 新增支持啟動 Ability 時傳遞 startOptions。C API 新增支持設定啟動 Ability 時視窗和 dock 欄圖示的顯示模式。新增一批 C API 函數,用于獲取應用級别沙箱内檔案目錄。應用包管理
配置檔案 module.json5 新增重定向配置:通過 abilitySrcEntryDelegator 标識當前 Module 需要重定向到的 UIAbility 的名稱,通過 abilityStageSrcEntryDelegator 标識當前 Module 需要重定向到的 UIAbility 對應的 Module 名稱(不可為當前 Module 名稱),兩者組合使用,共同指定重定向的目标對象。
ArkUI 文本與輸入組件能力增強。包括:文本組件支持通過 NODE_IMMUTABLE_FONT_WEIGHT 屬性,設定文字粗細不會跟随系統字體粗細而變化。文本組件支持對選中的文本提供分享服務、支持按音節連字元換行。文本組件新增支持設定文本選擇菜單顯示在獨立視窗。富文本(RichEditor)組件支持設定最大行數。TextInput 組件支持設定文本省略位置。TextInput / TextArea / Search / RichEditor 組件支持将文本行間距平分至行的頂部與底部。TextInput / TextArea 組件擴展自動填充類型,包含:車牌号、護照号等。富文本(RichEditor)組件在長按預覽菜單時支持振動效果。基礎類型定義新增支持清除當前的預上屏文本内容。新增适配圓形螢幕的能力。包括:新增旋轉表冠事件,組件獲焦後扭動表冠可獲取時間戳、旋轉角速度、旋轉角度和表冠動作信息。新增弧形列表組件 ArcList 和 ArcListItem,可呈現連續、多行的同類數據。新增弧形索引條組件 ArcAlphabetIndexer,可按字母順排序進行快速定位。新增弧形滾動條組件 ArcScrollBar,可為弧形列表添加外置滾動條。新增弧形按鈕組件 ArcButton,可提供強調、普通、警告等樣式按鈕。通用拖拽能力增強。包括:支持封裝自定義落位動效。支持自定義控制在拖拽至可滾動組件邊緣時是否觸發自動滾屏。彈窗能力增強。包括:支持通過設定 levelOrder 來管理彈出框的顯示順序,确保層級較高的彈出框覆蓋在層級較低的彈出框之上。支持在自定義内容中,創建和關閉對應的自定義彈窗。Popup 組件支持通過 maxWidth 設定最大寬度。半模态 Popup 樣式彈窗,支持通過 placement 設定相對于目标的顯示位置,通過 placementOnTarget 設定彈窗能否覆蓋在目标節點上。Menu 和 Dialog 支持通過 backgroundBlurStyleOptions 和 backgroundEffect 設定自定義背景模糊。模态轉場和 MenuItem 支持 !! 雙向綁定變量。自定義彈窗支持避讓鍵盤後,通過 keyboardAvoidDistance 設定彈窗和鍵盤之間的最小距離。支持通過 showInSubWindow 設定半模态是否在子窗中顯示、支持通過 effectEdge 設定半模态面板邊緣滾動的效果。菜單(Menu)在彈出時支持振動效果。表單選擇類組件能力增強。包括:新增 SegmentButtonV2 組件,可創建頁籤型、單選或多選的膠囊型分段按鈕。TextPicker / TimePicker 支持選項進入選中區網域時觸發事件回調。TimePicker / CalendarPicker 支持通過 start 和 end 配置開始時間和結束時間。TimePicker 支持通過 enableCascade 設定 12 小時制時上午下午跟随時間聯動。滾動與滑動組件能力增強。包括:Swiper / Tabs 組件增加頁面選中元素改變時觸發的回調,返回當前選中或将要隐藏的元素的索引值。Swiper 組件增加控制手指或者滑鼠等按下螢幕時子組件是否停止自動播放的能力。Swiper 組件 CAPI 能力增強,可設定緩存節點是否顯示、數字導航點和導航箭頭的樣式。List 組件支持設定布局樣式和滾動效果(NODE_LIST_SCROLL_TO_INDEX_IN_GROUP、 NODE_LIST_LANES、NODE_LIST_SCROLL_SNAP_ALIGN、NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION)。新增 C API,支持可配置用戶自定義數據的手勢中斷事件回調函數。新增 C API,支持獲取事件命中組件的寬高和坐标信息。支持設定組件的自定義焦點走焦邏輯。支持動态獲取手勢配置參數,可返回連續點擊次數阈值。支持手勢取消時觸發的 onActionCancel 回調中返回手勢事件信息。無障礙支持自定義焦點順序、支持控制組件的螢幕朗讀方式、支持設定螢幕朗讀滾動操作。支持設定 EmbeddedComponent 或 UIExtensionComponent 組件的占用事件,指定手勢事件的響應方式。支持将當前 FrameNode 移動到目标 FrameNode 的指定位置,實現跨實例節點遷移。NodeController 新增節點上下樹和綁定解綁前後的生命周期回調接口(onAttach、onDetach、onWillBind、onWillUnbind、onBind、onUnbind)。支持對 ComponentContent 構建的 UI 組件進行截圖。新增滑鼠軸事件相關接口。NavDestination 新增 OnActive 和 OnInActive 生命周期。C API 的事件能力增強,新增支持獲取事件命中的組件的寬度、高度、X 坐标、Y 坐标等能力。UIContext 新增支持創建不依賴視窗的 UI 實例。組件可見區網域變化事件新增支持設定事件的回調參數,限制它的執行間隔。ImageAnimator 組件支持設定是否通過系統 onVisibleAreaChange 的可見性來判斷組件的暫停和播放。視窗管理新增軟鍵盤彈出動畫完成的監聽回調。畫中畫視窗支持通過創建參數 LocalStorage 實現頁面級别的 UI 狀态存儲單元,多實例下可用來跟蹤主窗實例。視窗管理新增支持創建虛拟螢幕。圖形影像
新增一批 C API 函數和枚舉,用于支持直接繪制到螢幕 buffer 的 gpu 渲染能力。
分布式數據管理 RelationalStore 新增 rootDir 配置,支持打開非 database 目錄下的數據庫。ArkData RDB 向量數據管理新增提供向量數據存近似查詢解決方案。關系型數據庫新增支持根據指定的列索引或列名稱獲取列數據類型。UDMF 新增支持将傳入的 data 轉換成多樣式數據結構的能力。若原 data 使用多個 record 去承載同一份數據的不同樣式,則可以使用此接口将原 data 轉換為多樣式數據結構。媒體
音頻
新增支持 Float32 格式音頻輸出。新增支持空間音頻管理的能力。
音視頻編解碼
視頻解碼新增支持 MPEG2、MPEG4、H.263。
播放控制
播放器支持向應用透傳 SEI 資料欄數據,适用于 HTTP-FLV 直播。調用媒體播放器 AVPlayer 設定播放策略時,新增支持 Prepare 之後顯示視頻起播首幀(showFirstFrameOnPrepare)、起播緩衝水線(preferredBufferDurationForPlaying)等播放策略。播放器新增支持播放預下載的視頻數據。調用媒體播放器 AVPlayer 設定播放策略時,新增支持智能追幀水線(thresholdForAutoQuickPlay)。能力增強:支持應用創建多個 SoundPool 實例。調用媒體播放器 AVPlayer 設定播放策略時,新增支持 Prepare 之後顯示視頻起播首幀(showFirstFrameOnPrepare)。新增支持通過 AV 會話命令傳遞設定目标循環模式(setTargetLoopMode)的能力,并提供對設定動作的事件監聽回調。音頻會話新增支持單句 / 單條歌詞展示的屬性 singleLyricText。
圖片
新增 C API 支持獲取圖片的可編輯标志。
錄制
新增螢幕錄制時視頻填充模式的枚舉。音視頻錄制配置檔案新增支持配置穩定錄制模式 enableStableQualityMode18。語言編譯器運行時 TaskPool 支持指定任務執行并發度和指定任務的排隊策略。TaskPool 支持通過任務 ID 取消任務池中的任務。collections(ArkTS 容器集)在 API 18 新增支持以下方法: Array:from、isArray、of、copyWithin、lastIndexOf、some、reduceRight、reverse、toString、every、toLocaleString
TypedArray:toString、toLocaleString、lastIndexOf、reduceRight
Sendable 支持在緩存空間不夠的時候,将近期最少使用的數據替換為新數據。Worker 支持創建任務時指定任務的優先級。安全
新增基于群組的關鍵資產訪問控制。通過設定群組屬性,同一開發者開發的多個應用可以共享數據。
DFX
新增支持為當前線程轉儲虛拟機的原始堆快照。
企業定制可禁用 / 啟用的特性限制新增 MTP(mtpClient / mtpServer)和恢復出廠設定(resetFactory)。新增支持按系統賬戶安裝用戶證書。新增支持訂閱賬号的新增、删除、切換系統事件。基礎通信新增在藍牙 socket server 端可以獲取對端藍牙設備虛拟 MAC 地址的功能新增獲取對端藍牙設備原始名字的功能。新增連接對端藍牙設備可用 profile 的功能,如 A2DP、HFP、HID 等協定 profile。新增持久化存儲對端藍牙設備虛拟 MAC 地址的功能。新增藍牙 BLE 掃描圍欄模式,可實現首次掃描到 BLE 廣播報文時上報進入圍欄,掃描不到 BLE 廣播報文時上報離開圍欄,并攜帶 BLE 廣播報文信息。完善藍牙搜索到的設備信息,新增獲取設備 RSSI(信号強度)、名稱和類别信息。新增異步讀取和發送藍牙 socket 數據的功能,如果鏈路斷開,會上報 IO 異常。位置服務
新增支持訂閱藍牙掃描信息上報事件用于輔助定位。
網絡管理
新增支持獲取 TLSSocket 的檔案描述符。
剪貼板
剪貼板支持獲取剪貼板的内容變化的次數。
輸入法
輸入法框架新增支持設定顯示預覽文本時的回調,支持訂閱輸入法應用操作文本預覽内容的事件。
Web 支持獲取上一次被點擊區網域的元素信息。支持設定 Web 組件是否開啟字重跟随系統設定變化。支持 Web 内音視頻可對接到播控中心。對接 W3C 規範,支持通過 accept 指定上傳的檔案類型。提供靜态方法,清除應用中的資源緩存檔案。新增支持以固定寬高設定同層渲染的元素。多模輸入
新增支持設定處于前台的應用操作指定按鍵的回調。
上傳下載上傳下載支持應用緩存下載能力,支持應用提前緩存檔案到沙箱目錄或内存中。上傳下載 agent 接口支持設定任務最高限速,支持設定待上傳檔案在表單中的 content-type 資料欄。資源調度新增後台子進程管理模塊,提供應用對子進程進行壓制、解壓制的能力,避免子進程過多占用系統資源,導致系統使用卡頓。新增長時任務車鑰匙子類型 CAR_KEY。新增長時任務車鑰匙子類型 CAR_KEY。後台代理提醒中提醒标題、提醒内容等資料欄支持設定資源 ID,用于全球化适配。全球化新增支持獲取用戶偏好溫度部門和周起始日的能力。新增支持時間日期 / 數字精細化格式化的能力,便于更靈活的使用格式化能力。新增支持返回富文本的數字格式化能力。新增支持路徑本地化顯示的能力,可以根據輸入語言判斷路徑是否需要鏡像顯示。測試框架新增支持按照模糊匹配 / 正則匹配方式查找符合條件的控件 id、type 的能力。新增支持獲取控件提示文本,并根據控件提示文本查找控件。新增支持橫向縱向查找控件,僅适用于支持滑動的控件。