OpenHarmony 4.0 Release 版本发布,新增 4000+ API
近日,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 官方网站,欢迎开发者踊跃使用并提出宝贵意见,开放开源共建,共同打造下一代智能终端的根社区和万物互联的数字底座。
评论