9 月 30 日消息,开源鸿蒙 OpenHarmony 5.0.0 Release 版本于昨日发布,相比 OpenHarmony 5.0 Beta1,Release 版本做出了如下特性新增或增强:

  • 应用框架新增更多生命周期管理能力、提供子进程相关能力

  • ArkUI 进一步开放自定义节点的渲染能力

  • 应用包管理提升了应用打包效率,丰富终端用户使用应用可操作场景(如创建应用分身创建桌面快捷方式等)

  • 分布式数据管理能力进一步增强,在保证数据合理共享的前提下增强安全性

  • 文件管理进一步完善 Picker 的能力,对文件资源做到合理管控权限和合理使用

  • 媒体在音视频播放、录制方面能力进一步增强,新增支持多个音视频、图片的编码格式,支持更细节的播控操作

开源鸿蒙 OpenHarmony 5.0.0 Release 发布:ArkUI 开放自定义节点渲染能力、终端用户可创建应用分身等-风君雪科技博客

附 OpenHarmony 5.0.0 Release 更新日志如下:

应用框架

  • 支持创建 JS / Native 子进程,开发者可以把耗时操作放到子进程中执行。

  • Ability 生命周期监听支持 onNewWant 等更多生命周期。

  • 支持 Ability 在不主动销毁自己的情况下,将 AbilityResult 结果返回给调用方。

  • Context 支持 Sendable 对象转换,用于多线程传递 Context。

  • 支持应用级别的字体设置。

ArkUI

  • 进一步增强了组件自定义能力,新增组件 modifier、ContentModifier 和 DrawModifier,支持基于已有组件新增属性、自定义组件内容和完全自绘制。

  • 开放了自定义节点和 Native 的渲染节点。自定义节点是指具备底层实体节点的部分基础能力的节点对象,这些节点能够通过自定义占位节点与原生组件进行混合显示。自定义节点可以具备单个节点的测算布局、设置基础属性、设置事件监听、自定义绘制渲染内容的自定义能力。包括 FrameNode、RenderNode、BuilderNode 三类对象。详细如下:

    • BuilderNode:提供能够挂载原生组件的自定义节点 BuilderNode。

    • FrameNode:提供自定义节点 FrameNode,表示组件树的实体节点。NodeController 可通过 BuilderNode 持有的 FrameNode 将其挂载到 NodeContainer 上,也可通过 FrameNode 获取 RenderNode,挂载到其他 FrameNode 上。

    • RenderNode:提供自绘制渲染节点 RenderNode,支持在 Native 侧完成自定义绘制需求。

    • NodeController:提供 NodeController 用于实现自定义节点的创建、显示、更新等操作,并负责将自定义节点挂载到 NodeContainer 上。

  • 适用于三方框架的组件 NDK 能力增强,涵盖组件创建、属性设置、事件注册、自定义能力、组件树构建。

  • Navigation 组件能力增强,包括单双栏切换动效、转场懂行的打断和接续,以及页面生命周期的监听能力。

  • 控件视觉、动效和交互刷新,以及支持适老化、镜像语言和屏幕朗读。

  • 菜单和弹窗类组件支持开发者组定义颜色、形状、圆角、大小、位置和阴影。

应用包管理

  • 支持应用分身的接入和管理,应用可以通过简单的配置即可接入应用分身。

  • 支持桌面快捷方式,用户可以动态添加快捷方式到桌面。

  • 支持系统级 HSP 和 ArkWeb 独立升级能力,支持独立更新预置的应用。

  • 支持 OTA 升级异常中断后恢复机制,OTA 升级流程中出现断电、服务 crash,重启时恢复 OTA 流程,继续安装、更新应用;

  • 提供 cache 目录自动清理能力,支持存储管理在设备空间不足时自动清理 cache 目录。

  • 支持 Native 软件包,提供 Native 软件包的打包、安装和卸载能力。

  • 打包工具打包 App 时,对 App 包整体压缩,减少上架 App 的包大小。

分布式软总线

  • IPC 提供 CAPI 基础接口能力,包括序列化 / 反序列化、消息收发处理接口等。

分布式数据管理

  • RelationalStore&Preferences 支持共沙箱数据的访问方式。

  • RDB 支持只读方式打开。

  • UDMF 支持 UTD 与 MIME Type 的兼容性查询。

  • 迁移场景数据资产同步优化

  • 支持 E 类加密的分布式数据管理。

  • 倒排索引构建场景,支持应用指定外挂分词器。

  • 基于 NDK 的 C API 支持 UDMF 数据跨设备拖拽能力。

分布式硬件

  • 提供 ACL 精细化管理:根据业务的设备、用户、账号、包名对 ACL 进行精细的增、删、改、查操作。

  • 质量加固,提高功能稳定性和可靠性。

分布式 DeviceProfile

  • 设备数据分级重构,提高对数据增删改查的执行效率。

  • 质量加固,后台建立链接功能优化,提高稳定性和可靠性。

文件管理

  • 支持文件增量备份的能力

  • 提供备份应用获取备份数据量详情的接口,允许应用上报待备份数据记录数(如:短信条数),支持备份恢复过程中的异常事件上报。

  • 新增支持 SA 接入备份恢复框架

  • 增强 Picker 能力:提供 Audio Picker 一次多选的能力;新增 Download Picker,应用可直接将文件保存到“Download / 包名级”目录下,且后续对该目录的访问无需申请权限,补齐浏览器等应用的下载体验。

  • 支持应用通过申请权限等方式获取公共目录(Download、Desktop、Document)的访问权限(部分设备支持,需通过 syscap 判断),未申请权限无法直接访问。

  • 支持应用通过 FilePicker 的方式选择文件或目录并获取对该目录或文件的临时访问权限,并支持持久化访问能力,未持久化的文件或目录,在应用退出后无法再继续访问。

  • 新增 CreateStream、fdopenStream 等流式的文件访问接口

  • 新增设置和获取扩展属性的接口。

图形图像及窗口

图形图像

  • 基于 NDK 的 C API 的 NativeImage 模块新增支持 NativeWindowBuffer。

  • 基于 NDK 的 C API 新增支持 NativeVsync,支持单帧多次回调能力。

  • 基于 NDK 的 C API 新增支持可变帧率的能力。

  • ColorSpaceManager 支持 sendable 能力。

  • 字体引擎支持文字阴影能力,支持下划线对齐。

  • 图形绘制接口完善绘制相关能力。

窗口

  • 提供 display.getDisplayByIdSync 接口配合多屏特性使用,支持应用通过 id 同步获取 Ability 所在屏幕信息。

  • 支持获取屏幕可用区信息

  • 支持在 ArkUI 中根据页面颜色设置状态栏文本颜色。

媒体

音频

  • 音频焦点增强:支持焦点会话,允许应用设置与其他应用的并发播放策略,允许应用静音播放时不打断后台播放中的音频。

  • 新增支持 DP、USB 耳机等更多的音频发声设备,支持切换默认发声设备功能(听筒和扬声器)。

  • 新增视频通话的音频流类型,优化该场景下的音频流播放体验。

  • 新增统一音量组件,方便使用、降低开发复杂度。

  • 支持应用内投播组件样式的自定义

  • 支持铃音列表查询和自定义铃音设置。

播放

  • 播放器起播、Seek 性能优化,降低时延

  • 新增多种播放协议或格式:支持 DASH 流媒体协议播放支持 AMR、APE、WAV PCM-MULAW 格式音频播放

  • 新增多种播放控制的能力:支持多音轨视频播放、播放视频过程更换输出 Surface、静音播放、精准 Seek、设置播放区间、字幕

  • 支持配置流媒体缓冲大小;支持音频 Offload 模式。

  • 流媒体播放能力增强:优化流媒体缓存策略,减少卡顿。

录制

  • 音频录制能力增强:支持 mp3 、WAV PCM -MULAW 格式音频录制。

录屏

  • 支持对应用自身隐私窗口豁免录屏保护,提供隐私确认窗口和录屏状态提示。

  • 支持录屏时排除指定窗口的画面。

  • 支持配置屏幕旋转并可动态调整旋转参数。

  • 支持麦克风和系统音同时录制。

音视频编解码

  • 新增 AVTranscoder 转码接口,支持降低码率,输出视频编码 AVC、音频编码 AAC、封装格式 MP4 的视频文件,减少传输 / 存储数据量。

DRM

  • AVPlayer / AVCodec 支持 DASH 协议节目的 DRM 信息解析、支持 TS 封装的 H265 视频格式的解密、支持音频解密。

  • AVCodec DRM 适配增加解密参数设置。

相机

  • 新增模式化能力,包括:延时摄影、全景、流光快门、大光圈录像、荧光摄影

  • 新增相机 PerConfig 一键配置机制,确保相机效果一致,降低开发复杂度。

  • 优化分段式流程,提升拍照 / 录像的性能与质量。

  • 对标 ArkTS API 能力,补齐相关 C API。

  • 增强相机使用体验,包括:镜像、变焦、防抖、连拍、相机状态通知等

图片

  • EXIF 读写能力增强,支持 EXIF 批量读写,GIF 支持获取播放次数信息。

  • 支持 HDR 能力:HDR 双层编解码、HDR 与 SDR 互转。

  • 编解码格式增强,支持 HEIF 编解码,DNG 解码。

  • 编创框架基于 NDK 的 C API 补齐,包括:效果器基类、滤镜基类、自定义算法。

事件通知

  • CEM 工具新增支持发布自定义公共事件。

  • Emitter 新增泛型接口,可以用来直接传递 Sendable 对象。

  • 支持同步查询通知的使能状态。

基础通信

  • 支持三方应用通过网络管理连接热点

网络管理

网络管理能力

  • 支持通过创建 NetConnection 对象连接目标指定 Wi-Fi 热点。

  • 提供网络管理状态监听、应用级代理监听等能力的基于 NDK 的 C API。

网络协议栈能力

  • 支持将 TCP Socket 升级成 TLS Socket,提升通信安全性。

  • TLS Socket 支持跳过证书校验,避免特殊情况下无法校验证书的场景。

  • 所有 Socket 均支持获取本地 IP 与端口。

  • HTTP 支持配置证书锁定信息。

  • HTTP 支持 brotli 压缩算法。

电源

  • 支持获取当前充电电流,三方应用可以通过 nowCurrent 获取当前设备电流。

  • 支持飞行模式的温度管控动作,开发者可定制温控策略控制设备进入飞行模式。

  • 支持根据 WorkSource 代理运行锁辅助资源调度模块进行功耗控制。

  • 支持低电量时从 S3 睡眠状态唤醒后自动进入 S4 休眠,实现超长待机特性。

  • 支持系统启动后读取并广播设备壳 / 套的在位信息,电池信息内核节点和是否发广播等支持开发者配置。

USB

  • USB DEVICE 配置管理安全访问控制增强。

  • USB 标准数据传输模式 (中断传输、Bulk 传输) 功能增强。

  • 支持标准类型 USB 外设安全管控。

启动恢复

  • 支持 Native 软件包打包、安装、运行和卸载,搭建 Native 软件包开发和发布系统,有助于生产力软件生态能力的快速构建,也有助于系统开发者提升开发效率。

  • 提供可重置的开发者匿名设备标识符 ODID,代替 UDID 以及其他的硬件标识符。

  • 支持运行 bftpd 命令,支持 user 模式下调试应用沙箱数据访问。

全球化

  • 提供 C API 支持 ICU4C 标准的国际化能力。

  • 国际化的格式化处理能力支持屏幕大小自适应。

  • 全面支持伪本地化测试。

  • 提供 C API 支持资源文件管理能力。

  • 字符串资源支持可翻译性的标记。

  • 提供小语种字库能力。

安全

加解密算法库框架

  • 对标部分常用加解密算法能力的 ArkTS API,提供对应的 C API。

  • 支持 SM4-GCM 算法接口。

证书管理

  • 提供拉起证书管理界面的 API。

  • 提供获取应用私有证书列表的 API。

程序访问控制

  • 地理位置权限支持单次授权选项。

  • 支持拉起设置页面的权限管理应用界面。

用户 IAM

  • 支持口令有效期检查。

  • 支持恢复密钥。

账号

  • 支持注销本地账号

  • 支持创建本地账号时,指定账号短名称(用作个人文件夹名称)。

  • 支持查询本地账号名称。

  • 新增隐私账号类型。

  • 新增解锁认证意图。

  • 新增图形、四位 PIN 凭据类型。

ArkCompiler

ArkTS 前端编译器

  • 语法增强,编译目标从 es2017 切换到 es2021,支持编译带有 es2018~es2021 语法特性的源码文件。

  • 混淆能力增强,支持异常堆栈还原的能力、文件粒度不混淆的功能、HAP 与 HSP 模块文件名混淆功能、白名单通配符功能。

ArkTS 运行时

  • 支持模块懒加载,在变量被真正使用时再同步加载执行文件,提升应用启动性能。

  • 并发能力增强,提供 Sendable 对象共享机制,优化对象跨线程通信性能;TaskPool 提供任务队列、长时任务、周期任务等功能。

  • 调试功能增强,支持反向调试、Smart Stepinto 等功能。

  • 调优功能增强,支持 hiperf / profiler 混合回栈、多实例 HeapDump 功能。

ArkTS 基础库

  • 支持高精度浮点运算功能,提供 StringDecoder 字符流解码能力、stream 数据流处理能力,支持位向量。

JSVM

  • 提供系统 JS 引擎,支持高性能运行 JS 和 WASM 的能力。

综合传感处理平台

拖拽框架

  • 支持随着窗口旋转,旋转拖拽窗口。

  • 支持三设备之间进行拖拽。

  • 支持应用自定义配置拖拽过程中不显示数量角标。

  • 支持数据接收方自定义剪切与复制行为。

键鼠穿越

  • 管控双端同时发起 activate 接口调用。

  • 键鼠穿越时序问题优化,减少系统依赖,消除多进程间时序问题

  • 提高穿越管理性能,提高成功率,降低穿越时延。

多模输入

  • 提供 C API 支持设备信息查询等相关能力。

泛 Sensor

vibrator

  • 部分异步查询接口提供同步版本 API。

  • 系统可以根据不同的器件能力等级更好的使用马达器件触发振感。

sensor

  • 部分异步查询接口提供同步版本 API。

  • 提供 C API 支持线性加速度、游戏旋转向量传感器。

无障碍服务

  • 放大手势,支持通过手势对屏幕内容进行放大显示操作。

  • 主动播报能力,应用适配屏幕朗读时,在一些动态变化的场景下,可支持通过无障碍进行变化信息的主动播报。

  • 主动聚焦能力,应用适配屏幕朗读时,在某些场景下,可对组件请求主动聚焦。

资源调度

后台任务

  • 应用申请长时任务类型,支持同时申请多种类型的长时任务。

  • 应用申请 DATA_TRANSFER 下载类长时任务,支持返回下载通知给应用进行进度更新。

性能功耗热融合管控

  • 根据当前温度、负载以及是否处于高负载场景等信息决策出系统负载融合档位,应用注册系统负载回调后,可根据系统负载融合档位的不同等级,自适应降级自身业务负载,从而降低整机负载。

代理提醒

  • 应用申请重复类型的日历提醒时,支持指定剔除日,在剔除日内不进行提醒。

  • 应用申请提醒时,wantAgent 支持传递 parameters 参数,在点击提醒后跳转到目标 UIAbility 时,携带 parameters 参数。

  • 应用查询已发布的提醒时,查询结果中返回对应的 reminderId 。

测试框架

  • 支持跨平台接口的兼容性测试。

DFX

  • 提供判断 HDC 调试器是否连接的 API。

  • 支持在开发者模式打开 trace 功能。

  • 开放主线程超时事件的感知。

  • errorManager 支持 TaskPool 和 Worker 监听未处理的 Reject 事件。

内核

  • 提供基于用户交互关系的线程 QoS 等级标注和调度。

上传下载

  • request.agent.Fault 细化了错误类型,便于开发者快速定位接口使用问题。

  • request.agent.Config 新增 proxy 成员,支持设置任务的网络代理地址。

  • request.agent.Task.start 支持重新启动已经失败 停止的任务,便于开发者快速恢复失败任务。

  • request.agent.Task 支持使用 network.json 配置文件配置 TLS 证书锁定指纹。

  • request.agent.FileSpec 支持指定应用沙箱 base 目录下的所有文件路径,便于开发者管理沙箱文件;同时支持前台上传公共文件,例如图库文件、相册文件等,减少额外拷贝带来的开销。

输入法框架

  • 基于 NDK 的 C API 新增支持自绘 UI 组件使用输入法,包括拉起、退出输入法,处理文字上屏请求等操作。

  • 优化拉起键盘时回调时序,输入法应用可根据输入框属性及时调整键盘显示内容。

时间时区

  • 提供 NTP 时间强制刷新和获取当前 NTP 时间的系统 API。

  • 基于 NDK 的 C API 提供获取时区的能力。

剪贴板

  • 基于 NDK 的 C API 支持剪贴板的能力。

  • 提供跨设备剪贴板开关

  • 在应用升级到 API 12 及以后,对读取剪贴板接口增加读权限校验。

Web

  • 网络接管特性增强,支持获取请求的 FrameUrl,支持获取被拦截请求的 ResourceType。

  • 支持 Web 场景输入法预上屏能力。

  • 支持 Web 组件键盘托管能力。

  • 支持 Web 组件与 ArkUI 原生组件同步绘制能力。

  • 支持设置 File 协议可跨域访问的白名单目录。

  • 支持应用可指定渲染子进程。

  • Web 组件支持加速度陀螺仪。

  • Web 组件支持 H5 页面智能填充。

  • Web 组件支持 BFCache 能力。

  • 完善 Web 组件软键盘避让机制,支持 Resize 和 Offset 模式。

主题框架

  • 支持通过文件夹目录使能主题,相比压缩包使能,提升使能主题的性能。

  • 支持卡片资源的管理,支持被添加主题卡片的增删改查能力。

  • 为外屏设备做特性化功能,支持使能外屏主题。

  • 主题使能支持不切换当前“active”目录。

编译构建

  • 编译构建依赖的 CMake 版本从 3.16.5 升级到 3.28.2。