OpenHarmony 是由开放原子开源基金会孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
OpenHarmony 5.1.0 Release 正式版已发布并上线 Gitee 平台,升级 API 18。
相比前一个 Release 版本(OpenHarmony 5.0.3,即 API 15),OpenHarmony 5.1.0 Release 重点做出了如下特性新增或增强:
-
进一步增强 ArkUI,提供更丰富的组件属性设置,支持更多精致动效,持续补充组件通过 C API 调用的能力;
-
进一步增强媒体能力,提供更丰富的编解码能力、播控能力、媒体会话管理能力;
-
进一步丰富了应用启动的细节设置能力;
-
进一步增强分布式数据管理的 UDMF、RDB 的数据处理能力;
-
进一步完善了标准 Web 能力等等。
更详细的特性新增与增强的说明如下,将按照API版本顺序分别进行列举:
应用框架
-
新增支持根据指定的数据加密级别创建应用上下文,以获取相应的路径。(API参考)
-
新增支持同步获取当前进程的进程名(processName)。(API参考)
-
新增支持获取应用被拉起原因(LAUNCH_REASON_MESSAGE)。(API参考)
-
启动框架新增支持HAR/HSP和so文件。(指南、API参考)
-
新增支持启动Ability时指定主窗口显示的最大宽高(maxWindowWidth/maxWindowHeight)和最小宽高(minWindowWidth/minWindowHeight)。(API参考)
-
新增支持获取应用上一次退出的详细原因。(指南、API参考)
-
新增支持设置UIAbility的颜色模式。(API参考)
-
新增支持通过startAbility的属性startOptions来指定创建新窗口的大小(minWindowWidth、minWindowHeight、maxWindowWidth、maxWindowHeight)。(API参考)
-
C API新增支持启动Ability时传递startOptions。(API参考)
-
C API新增支持设置启动Ability时窗口和dock栏图标的显示模式。(API参考)
-
新增一批C API函数,用于获取应用级别沙箱内文件目录。(API参考)
应用包管理
配置文件module.json5新增重定向配置:通过abilitySrcEntryDelegator标识当前Module需要重定向到的UIAbility的名称,通过abilityStageSrcEntryDelegator标识当前Module需要重定向到的UIAbility对应的Module名称(不可为当前Module名称),两者组合使用,共同指定重定向的目标对象。 (指南)
ArkUI
-
文本与输入组件能力增强。包括:
- 文本组件支持通过NODE_IMMUTABLE_FONT_WEIGHT属性,设置文字粗细不会跟随系统字体粗细而变化。(API参考-C API)
- 文本组件支持对选中的文本提供分享服务(API参考)、支持按音节连字符换行(API参考)。
- 文本组件新增支持设置文本选择菜单显示在独立窗口。(API参考)
- 富文本(RichEditor)组件支持设置最大行数。(API参考)
- TextInput组件支持设置文本省略位置。(API参考)
- TextInput/TextArea/Search/RichEditor组件支持将文本行间距平分至行的顶部与底部。(API参考-TextInput、API参考-TextArea、API参考-Search、API参考-RichEditor)
- TextInput/TextArea组件扩展自动填充类型,包含:车牌号、护照号等。(API参考-ArkTS、API参考-C)
- 富文本(RichEditor)组件在长按预览菜单时支持振动效果。(API参考)
- 基础类型定义新增支持清除当前的预上屏文本内容。(API参考)
-
通用拖拽能力增强。包括:
-
支持封装自定义落位动效。(API参考,API参考)
-
支持自定义控制在拖拽至可滚动组件边缘时是否触发自动滚屏。(API参考)
-
-
弹窗能力增强。包括:
- 支持通过设置levelOrder来管理弹出框的显示顺序,确保层级较高的弹出框覆盖在层级较低的弹出框之上。(API参考、指南)
- 支持在自定义内容中,创建和关闭对应的自定义弹窗。(API参考)
- Popup组件支持通过maxWidth设置最大宽度。(API参考)
- 半模态Popup样式弹窗,支持通过placement设置相对于目标的显示位置,通过placementOnTarget设置弹窗能否覆盖在目标节点上。(API参考)
- Menu和Dialog支持通过backgroundBlurStyleOptions和backgroundEffect设置自定义背景模糊。(API参考-Menu、API参考-Dialog)
- 模态转场和MenuItem支持!!双向绑定变量。(API参考-半模态转场、API参考-全屏模态转场、API参考-MenuItem)
- 自定义弹窗支持避让键盘后,通过keyboardAvoidDistance设置弹窗和键盘之间的最小距离。(API参考、API参考-C)
- 支持通过showInSubWindow设置半模态是否在子窗中显示、支持通过effectEdge设置半模态面板边缘滚动的效果。(API参考)
- 菜单(Menu)在弹出时支持振动效果。(API参考)
-
表单选择类组件能力增强。包括:
- 新增SegmentButtonV2组件,可创建页签型、单选或多选的胶囊型分段按钮。(API参考)
- TextPicker/TimePicker支持选项进入选中区域时触发事件回调。(API参考-TextPicker、API参考-TimePicker)
- TimePicker/CalendarPicker支持通过start和end配置开始时间和结束时间(API参考-TimePicker、API参考-CalendarPicker)。
- TimePicker支持通过enableCascade设置12小时制时上午下午跟随时间联动。(API参考)
-
滚动与滑动组件能力增强。包括:
- Swiper/Tabs组件增加页面选中元素改变时触发的回调,返回当前选中或将要隐藏的元素的索引值。(API参考-Swiper、API参考-Tabs)
- Swiper组件增加控制手指或者鼠标等按下屏幕时子组件是否停止自动播放的能力。(API参考-Swiper)
- Swiper组件CAPI能力增强,可设置缓存节点是否显示、数字导航点和导航箭头的样式。(API参考-CAPI)
- List组件支持设置布局样式和滚动效果(NODE_LIST_SCROLL_TO_INDEX_IN_GROUP、 NODE_LIST_LANES、NODE_LIST_SCROLL_SNAP_ALIGN、NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION)(API参考-CAPI)。
-
新增C API,支持可配置用户自定义数据的手势中断事件回调函数。(API参考)
-
新增C API,支持获取事件命中组件的宽高和坐标信息。(API参考-CAPI)
-
支持设置组件的自定义焦点走焦逻辑。(API参考、API参考-CAPI)
-
支持动态获取手势配置参数,可返回连续点击次数阈值。(API参考)
-
支持手势取消时触发的onActionCancel回调中返回手势事件信息。(API参考-LongPressGesture、API参考-PanGesture、API参考-PinchGesture、API参考-RotationGesture)
-
无障碍支持自定义焦点顺序(API参考)、支持控制组件的屏幕朗读方式(API参考)、支持设置屏幕朗读滚动操作(API参考)。
-
支持设置EmbeddedComponent或UIExtensionComponent组件的占用事件,指定手势事件的响应方式。(API参考)
-
支持将当前FrameNode移动到目标FrameNode的指定位置,实现跨实例节点迁移。(API参考、API参考-CAPI)
-
NodeController新增节点上下树和绑定解绑前后的生命周期回调接口(onAttach、onDetach、onWillBind、onWillUnbind、onBind、onUnbind)。(API参考)
-
支持对ComponentContent构建的UI组件进行截图。(API参考)
-
新增鼠标轴事件相关接口。(API参考-ArkTS、API参考-C API)
-
NavDestination新增OnActive和OnInActive生命周期。(API参考)
-
C API的事件能力增强,新增支持获取事件命中的组件的宽度、高度、X坐标、Y坐标等能力。(API参考)
-
UIContext新增支持创建不依赖窗口的UI实例。(API参考)
-
组件可见区域变化事件新增支持设置事件的回调参数,限制它的执行间隔。(API参考-ArkTS、API参考-C API)
-
ImageAnimator组件支持设置是否通过系统onVisibleAreaChange的可见性来判断组件的暂停和播放。(API参考)
窗口管理
-
新增软键盘弹出动画完成的监听回调。(API参考)
-
画中画窗口支持通过创建参数LocalStorage实现页面级别的UI状态存储单元,多实例下可用来跟踪主窗实例。(API参考)
-
窗口管理新增支持创建虚拟屏幕。(API参考)
图形图像
新增一批C API函数和枚举,用于支持直接绘制到屏幕buffer的gpu渲染能力。(API参考)
分布式数据管理
-
RelationalStore新增rootDir配置,支持打开非database目录下的数据库。(API参考)
-
关系型数据库新增支持根据指定的列索引或列名称获取列数据类型。(API参考)
-
UDMF新增支持将传入的data转换成多样式数据结构的能力。若原data使用多个record去承载同一份数据的不同样式,则可以使用此接口将原data转换为多样式数据结构。(API参考)
媒体
音频
-
新增支持Float32格式音频输出。(API参考)
-
新增支持空间音频管理的能力。(指南、API参考)
音视频编解码
- 视频解码新增支持MPEG2、MPEG4、H.263。(指南)
播放控制
-
播放器支持向应用透传SEI字段数据,适用于HTTP-FLV直播。(API参考)
-
调用媒体播放器AVPlayer设置播放策略时,新增支持Prepare之后显示视频起播首帧(showFirstFrameOnPrepare)、起播缓冲水线(preferredBufferDurationForPlaying)等播放策略。(API参考)
-
播放器新增支持播放预下载的视频数据。(API参考)
-
调用媒体播放器AVPlayer设置播放策略时,新增支持智能追帧水线(thresholdForAutoQuickPlay)。(API参考)
-
能力增强:支持应用创建多个SoundPool实例。(API参考)
-
调用媒体播放器AVPlayer设置播放策略时,新增支持Prepare之后显示视频起播首帧(showFirstFrameOnPrepare)。(API参考)
-
新增支持通过AV会话命令传递设置目标循环模式(setTargetLoopMode)的能力(API参考),并提供对设置动作的事件监听回调(API参考)。
-
音频会话新增支持单句/单条歌词展示的属性singleLyricText。(API参考)
图片
- 新增C API支持获取图片的可编辑标志。(API参考)
录制
-
新增屏幕录制时视频填充模式的枚举。(API参考)
-
音视频录制配置文件新增支持配置稳定录制模式enableStableQualityMode18。(API参考)
语言编译器运行时
-
TaskPool支持指定任务执行并发度和指定任务的排队策略。(API参考)
-
TaskPool支持通过任务ID取消任务池中的任务。(API参考)
-
collections(ArkTS容器集)在API 18新增支持以下方法(API参考): Array:from、isArray、of、copyWithin、lastIndexOf、some、reduceRight、reverse、toString、every、toLocaleString
TypedArray:toString、toLocaleString、lastIndexOf、reduceRight
-
Sendable支持在缓存空间不够的时候,将近期最少使用的数据替换为新数据。(API参考)
-
Worker支持创建任务时指定任务的优先级。(API参考)
安全
新增基于群组的关键资产访问控制。通过设置群组属性,同一开发者开发的多个应用可以共享数据。(指南)
DFX
新增支持为当前线程转储虚拟机的原始堆快照。(API参考)
企业定制
-
可禁用/启用的特性限制新增MTP(mtpClient/mtpServer)和恢复出厂设置(resetFactory)。(API参考)
-
新增支持按系统账户安装用户证书。(API参考)
-
新增支持订阅账号的新增、删除、切换系统事件。(API参考)
基础通信
-
新增在蓝牙socket server端可以获取对端蓝牙设备虚拟MAC地址的功能(API参考)
-
新增获取对端蓝牙设备原始名字的功能。(API参考)
-
新增连接对端蓝牙设备可用profile的功能,如A2DP、HFP、HID等协议profile。(API参考)
-
新增持久化存储对端蓝牙设备虚拟MAC地址的功能。(API参考)
-
新增蓝牙BLE扫描围栏模式,可实现首次扫描到BLE广播报文时上报进入围栏,扫描不到BLE广播报文时上报离开围栏,并携带BLE广播报文信息。(API参考)
-
完善蓝牙搜索到的设备信息,新增获取设备RSSI(信号强度)、名称和类别信息。(API参考)
-
新增异步读取和发送蓝牙socket数据的功能,如果链路断开,会上报IO异常。(API参考)
位置服务
新增支持订阅蓝牙扫描信息上报事件用于辅助定位。(API参考)
网络管理
新增支持获取TLSSocket的文件描述符。(API参考)
剪贴板
剪贴板支持获取剪贴板的内容变化的次数。(API参考-ArkTS API、API参考-C API)
输入法
输入法框架新增支持设置显示预览文本时的回调(API参考),支持订阅输入法应用操作文本预览内容的事件(API参考)。
Web
-
支持获取上一次被点击区域的元素信息。(API参考)
-
支持设置Web组件是否开启字重跟随系统设置变化。(API参考)
-
支持Web内音视频可对接到播控中心。(API参考)
-
对接W3C规范,支持通过accept指定上传的文件类型。(API参考)
-
提供静态方法,清除应用中的资源缓存文件。(API参考)
-
新增支持以固定宽高设置同层渲染的元素。(API参考)
多模输入
新增支持设置处于前台的应用操作指定按键的回调。(API参考)
上传下载
-
上传下载支持应用缓存下载能力,支持应用提前缓存文件到沙箱目录或内存中。(API参考)
-
上传下载agent接口支持设置任务最高限速(API参考),支持设置待上传文件在表单中的content-type字段(API参考)。
资源调度
-
新增后台子进程管理模块,提供应用对子进程进行压制、解压制的能力,避免子进程过多占用系统资源,导致系统使用卡顿。(API参考)
-
后台代理提醒中提醒标题、提醒内容等字段支持设置资源ID,用于全球化适配。(API参考)
全球化
-
新增支持获取用户偏好温度单位和周起始日的能力。(API参考)
-
新增支持时间日期/数字精细化格式化的能力,便于更灵活的使用格式化能力。(API参考)
-
新增支持返回富文本的数字格式化能力。(API参考)
-
新增支持路径本地化显示的能力,可以根据输入语言判断路径是否需要镜像显示。(API参考)
测试框架
-
新增支持按照模糊匹配/正则匹配方式查找符合条件的控件id、type的能力。(API参考:id、type)
-
新增支持获取控件提示文本(API参考),并根据控件提示文本查找控件(API参考)。
-
新增支持横向纵向查找控件,仅适用于支持滑动的控件。(API参考)
完整更新说明:OpenHarmony-v5.1.0-release