千家信息网

OpenHarmony 4.0 Release 版本发布,应用开发能力更丰富

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,近日,OpenHarmony 4.0 Release 版本如期发布,开发套件同步升级到 API 10。相比 3.2 Release 版本,OpenHarmony 4.0 Release 版本新增 40
千家信息网最后更新 2025年02月07日OpenHarmony 4.0 Release 版本发布,应用开发能力更丰富

近日,OpenHarmony 4.0 Release 版本如期发布,开发套件同步升级到 API 10。相比 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 用例,丰富执行用例范围。

支持稳定性测试能力,支持测试用例乱序执行。

支持覆盖率统计能力,支持开发者本地一键式生成代码覆盖率数据。

性能调试开发工具 SmartPerf Host

支持 Frame timeline 抓取和展示能力,开发者可以抓取和展示卡顿丢帧检测的数据。

支持 Scheduling analysis 抓取和展示能力,开发者可以抓取和展示 CPU 调度分析,线程调度分析相关数据。

支持调用栈可视化和不同库函数调用占比展示能力,开发者可以抓取并通过饼图的方式展示调用栈及不同库函数的占比

性能数据采集 SmartPerf Device

支持应用冷热启、页面内切换、滑动帧率测试能力,开发者可以测试应用冷热启动时延、页面切换时延、滑动帧率测试能力。

支持端侧测试数据对接云端看板能力,开发者可以将端侧测试报告上传云端查看或下载云端数据到本地。

该版本的完整信息可以访问 OpenHarmony 官方网站,欢迎开发者踊跃使用并提出宝贵意见,开放开源共建,共同打造下一代智能终端的根社区和万物互联的数字底座。

0