9 月 30 日消息,开源鸿蒙 OpenHarmony 5.0.0 Release 版本于昨日发布,相比 OpenHarmony 5.0 Beta1,Release 版本做出了如下特性新增或增强:
-
应用框架新增更多生命周期管理能力、提供子进程相关能力
-
ArkUI 进一步开放自定义节点的渲染能力
-
应用包管理提升了应用打包效率,丰富终端用户使用应用可操作场景(如创建应用分身、创建桌面快捷方式等)
-
分布式数据管理能力进一步增强,在保证数据合理共享的前提下增强安全性
-
文件管理进一步完善 Picker 的能力,对文件资源做到合理管控权限和合理使用
-
媒体在音视频播放、录制方面能力进一步增强,新增支持多个音视频、图片的编码格式,支持更细节的播控操作
附 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。
最新评论