版本概述
OpenHarmony 4.0版本标准系统能力持续完善:ArkUI进一步增强基础组件能力,应用框架支持ArkTS卡片代理刷新,应用包支持应用、支持原子化服务数据共享、支持企业应用的安装管理,分布式软总线支持会话级的传输能力协商,分布式数据管理UDMF(统一数据管理框架)支持跨设备拖拽场景下对分布式目录的文件临时授权、文件管理支持公共图片文件在设备端和云端进行同步,媒体进一步增强音频/媒体播放/音视频编解码能力,图形渲染库升级至Skia 0310新版本,窗口控件化能力继续增强,事件通知支持选定通知并批量删除通知,安全基础提供DSA数字签名算法能力,ArkCompiler方舟运行时支持JSContext功能、支持动态PGO功能,DFX提供统一的采集框架能力,方便开发者对应用的调试调测。
特性说明
应用框架
-
更新ArkTS卡片刷新方式,支持通过数据代理的方式刷新内容。
-
ArkTS卡片支持静态卡片配置、静态图展示。
ArkUI
-
Xcomponent组件支持Texture模式绘制、popup支持位置自定义、弹框支持通过键盘ESC键逐层退出、ListItem支持长距离左滑删除手势、ArkTS/JS卡片支持渲染完成回调、Image/Text组件支持隐私遮罩、ContextMenu支持分段显示能力。
-
动画效果增强,包括:布局属性、背景图片大小位置属性、显隐属性支持隐式动效,list支持scrollToIndex动效、Tabs模糊动效、popup出现/消失动效,支持自定义动画,满足开发者多种多样动画诉求。
-
开发效率增强:支持命名路由的能力,借助此能力可针对不同页面设置不同的切换动效;轻量级ArkUI框架支持定义全局数据对象,可进行应用内页面间的数据共享。
-
全局API支持Stage模型多实例场景。
应用包管理
-
支持对应用分发类型和附件信息的设置和查询。
-
支持通过文件扩展名列出支持打开该文件的应用列表,实现了文件扩展名与应用的匹配关系。
-
支持企业应用的安装管理,对于证书类型为“enterprise”的应用,安装需要申请“ohos.permission.INSTALL_ENTERPRISE_BUNDLE”。
分布式数据管理
-
UDMF(统一数据管理框架)支持跨设备拖拽场景下对分布式目录的文件临时授权。
-
提供RDBstore NDK接口 :包含增/删/改/查/事务、数据加密、数据分级保护、备份/恢复能力。
-
Key-Value和分布式数据对象支持根据数据量自动选择数据同步的通道。系统会根据数据量大小自动选择蓝牙通道或基于WiFi的P2P通道进行数据的同步。
分布式软总线
-
支持对基于软总线连接的link信息进行管理。
-
支持会话级的传输能力协商,可通过协商确定设备间传输的能力。
分布式硬件
-
分布式场景下的音频录制时延性能得到优化。
-
分布式文件系统支持在以蓝牙引导的P2P连接环境下进行文件互访。
-
支持组网设备名称变化的监听。
文件管理
-
支持公共图片文件在设备端和云端进行同步(设备登录的帐号需开通云端服务),支持通过picker选择云端的图片。
-
支持应用定制备份恢复的目录。
-
支持公共图片的分类管理,用户可以在图库中通过相册对用户图片进行组织分类。
-
支持应用监听沙箱内的文件的增改删。
-
支持应用跨设备分享沙箱内的文件。
图形显示及窗口
图形
-
支持对选定区域取色,可选定区域后获得该区域的主色值、平均色值等参数并按需使用。
-
支持设置旋转中心在Z轴锚点的偏移,允许在旋转过程中修改渲染的锚点。
-
图形处理依赖的渲染库升级至Skia 0310新版本,提升了显示性能。
窗口
-
优化了display模块的参数值获取方式,从原先软件方式优化为从硬件直接获取真实值。
-
窗口控件化能力增强:窗口以控件化的方式支持窗口属性、子窗口、模态窗口、窗口效果、窗口装饰、亮灭屏流程、截屏录屏。
媒体
音频
-
支持音效框架:设备厂商可配置音效策略和加载自定义音效;应用可查询音频输出的音效模式,切换或关闭音效模式。
-
支持系统内录音能力:可根据音频场景属性筛选,录制系统内播放的音频数据。
-
支持获取音频设备显示名:播放对象详细信息内可获取当前播放输出归属的设备名。
媒体播放
支持音效参数配置,可以在音频框架支持音效的能力基础上进一步配置音效。
音视频编解码
-
支持通过Native API查询系统的音视频编解码能力。
-
支持通过Native API完成音视频封装,即将音频、视频等编码后的媒体数据,按一定的格式存储到文件里。
-
支持通过Native API完成音视频解封装,即从比特流数据中取出音频、视频等媒体帧数据。
事件通知
-
支持选定通知并批量删除通知。
-
emitter支持取消按条件指定订阅回调能力。
基础通信
-
WiFi支持后台扫描的能力。
-
WiFi支持STA模式下的随机MAC能力。
网络与通信
-
支持与服务器端通过TCP Socket进行通信。
-
支持用户将数据传送到远程服务器。
-
支持HTTPS证书的管理适配。
-
支持网卡代理。
系统服务管理
-
支持系统服务按需启动,例如外部调用、事件触发,同时支持在设备空闲时自动退出系统服务。
-
系统服务配置格式优化,使用JSON格式替代XML格式。
电源
-
新增接口,支持设置系统立即进入睡眠状态。
-
新增休眠源定制能力,支持根据不同的休眠源定制事件及行为。
-
新增唤醒源定制能力,支持根据不同的唤醒源定制唤醒事件。
多模输入
-
支持将键盘输入设备的原始事件映射为归一化交互的意图事件,使开发者在开发应用时无需关注输入行为是来自触控还是键盘。
-
支持用户根据个人习惯设置触控板功能的个性化配置:
- 支持两种触发模式映射鼠标左键功能: 按压、轻点。
- 支持两种触发模式映射鼠标右键功能:点按左/右下角、双指点按或轻点。
- 跟踪速度:支持10档速度调节。
- 支持两种交互模式映射鼠标滚轮功能:内容随手指移动方向、内容随手指反向移动。
主题框架
-
锁屏管理服务支持锁屏事件回调机制、静态/动态壁纸、查询锁屏时的业务状态。
-
壁纸管理服务支持自定义壁纸、锁屏/解锁操作、重置壁纸。
上传下载
支持查询上传和下载的任务、任务状态信息同步和任务记录持久化、任务状态查询和异常的恢复。
安全
加解密算法库框架
-
提供DSA数字签名算法能力。
-
提供DSA、ECC、RSA密钥解析和密钥参数的获取能力。
-
提供安全随机数生成算法类型的获取能力。
-
提供SM4密钥的随机生成与转换,以及加密解密能力。
-
提供SM3密钥的HMAC和HASH的能力。
-
提供SM2密钥的随机生成与转换、签名及验签、以及加密解密能力。
密钥管理
-
支持HUKS密钥加密保护。
-
支持KeyAttestation公钥证书中增加对密钥所属业务身份字段。
-
支持标准HDI南向接口。
设备互信认证
支持在以下两种场景的设备间互信认证流程中生成假名,支持识别及和标识设备的假名化名称。
-
对使用同帐号登录的多个设备进行互信认证。
-
对非同帐号的点对点互联的两个设备进行互信认证。
程序访问控制
-
优化权限管理的菜单呈现,拆分媒体和文件的权限组,相应权限的授权粒度更加精细化。
-
支持treble架构下对SELinux的兼容能力。
帐号
-
支持帐号授权能力扩展和三方应用使用帐号授权能力。
-
支持对域帐号插件的管理,从而支持域帐号管理和认证能力。
WebView
-
W3C能力补充完善:补充Web Camera能力,以及bindContextMenu、Select、date类型input等H5标签能力。
-
支持多渲染进程的进程拆分。
-
支持文字、图片基础拖拽能力。
-
支持WebRTC的视频会议能力(不含摄像头共享)。
-
支持渲染进程独立SELinux标签,增强安全基础能力。
ArkCompiler
-
方舟运行时支持JSContext功能;支持动态PGO功能,可采集运行期的类型和函数热点信息,并生成AP文件;支持动态import加载NAPI库。
-
方舟编译器type编译模式下前端编译工具链切换到es2abc。
-
NAPI buffer、object、arraybuffer、object type接口功能补齐。
-
Taskpool支持任务中断和取消,支持定义任务组(TaskGroup),支持对任务的状态和调度信息进行打点,支持超长等待的任务进行识别和恢复。
-
编译构建能力提供OpenHarmony系统user和root不同权限版本的构建,user版本能力同步支持Wukong测试工具和XTS测试能力。
-
编译工具链支持预览器上的调试能力。
DFX
-
提供统一的采集框架能力,方便开发者对应用的调试调测。
-
提供统一的trace采集能力。
-
提供Native的HiTraceMeter打点接口。
-
性能雷达提供工具类,方便各业务模块(子系统)在业务流程上传递性能埋点记录及结算性能数据。
内核
代码执行权限管控能力增强,新增了以下能力:
-
支持安全内存机制。
-
提供满足不同场景的代码执行权限管控策略。
-
提供代码执行权限管控的全生命周期管理能力。
-
支持解析可执行文件获取代码段信息。
-
支持代码页的完整性保护能力。
驱动
-
扩展设备驱动框架提供以下能力:
- 扩展设备驱动框架基于“驱动扩展Ability(DriverExtensionAbility)”的能力,构建应用态扩展驱动包的开发、部署、安装、更新、卸载、运行能力,开放全流程生命周期管理能力。
- 支持三方设备厂商开发的非标准协议的可插拔USB设备扩展驱动包,正常安装到OpenHarmony系统。插入USB设备后,能正常识别USB设备并与扩展驱动包匹配。
- 支持三方应用通过扩展外部设备管理框架查询并绑定USB设备扩展驱动包,完成对扩展驱动包定制功能的操作。
-
相机驱动提供以下能力:
- 提供USB相机热插拔识别能力,支持开机启动检查识别和启动后热插拔识别。
- 支持USB相机的预览、拍照、录像能力,提供相机格式、分辨率查询和配置能力。
-
编解码驱动提供JPEG图片硬件解码加速能力,包括获取硬件解码信息,初始化/去初始化,解码,申请/释放buffer,提升用户浏览图片流畅度体验。
-
传感器驱动提供温湿度传感器设备驱动能力,支持小型设备温湿度器件查询,器件使能/去使能,数据查询能力,丰富智能设备传感器能力。
配套关系
表1 版本软件和工具配套关系
软件 | 版本 | 备注 |
---|---|---|
OpenHarmony | 4.0 Beta2 | NA |
Public SDK | Ohos_sdk_public 4.0.9.6 (API Version 10 Beta2) | 面向应用开发者提供,不包含需要使用系统权限的系统接口。通过DevEco Studio默认获取的SDK为Public SDK。 |
HUAWEI DevEco Studio(可选) | 4.0 Beta2 | OpenHarmony应用开发推荐使用。获取方式: Windows(64-bit) SHA256校验码:ae9b228fb1f79e99441e10bdcf347ebfc42266be8b170bbce3c9764ba32d82a4 Mac(X86) SHA256校验码:5c9afc5b1262868b58376155f1e8576d33c1ade8b01091edc4d7d397cd34026c Mac(ARM) SHA256校验码:ea6c98cafd5036e4a6fd46b0b1cde3a306953b1eef423d5940f1af7c632205d6 |
HUAWEI DevEco Device Tool(可选) | 4.0 Beta1 | OpenHarmony智能设备集成开发环境推荐使用。获取方式: 点击跳转至下载页面 |
源码获取
前提条件
-
注册码云gitee帐号。
-
注册码云SSH公钥,请参考码云帮助中心。
-
安装git客户端和git-lfs并配置用户信息。
git config --global user.name "yourname" git config --global user.email "your-email-address" git config --global credential.helper store
-
安装码云repo工具,可以执行如下命令。
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo#如果没有权限,可下载至其他目录,并将其配置到环境变量中chmod a+x /usr/local/bin/repo pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
通过repo获取
方式一(推荐)
通过repo + ssh 下载(需注册公钥,请参考码云帮助中心)。
-
从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。
repo init -u [email protected]:openharmony/manifest.git -b OpenHarmony-4.0-Beta2 --no-repo-verify repo sync -c repo forall -c 'git lfs pull'
-
从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。
repo init -u [email protected]:openharmony/manifest.git -b refs/tags/OpenHarmony-v4.0-Beta2 --no-repo-verify repo sync -c repo forall -c 'git lfs pull'
方式二
通过repo + https 下载。
-
从版本分支获取源码。可获取该版本分支的最新源码,包括版本发布后在该分支的合入。
repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-4.0-Beta2 --no-repo-verify repo sync -c repo forall -c 'git lfs pull'
-
从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v4.0-Beta2 --no-repo-verify repo sync -c repo forall -c 'git lfs pull'
从镜像站点获取
表2 获取源码路径
版本源码 | 版本信息 | 下载站点 | SHA256校验码 | 软件包容量 |
---|---|---|---|---|
全量代码(标准、轻量和小型系统) | 4.0 Beta2 | 站点 | SHA256校验码 | 27.7 GB |
Hi3861解决方案(二进制) | 4.0 Beta2 | 站点 | SHA256校验码 | 27.5 MB |
Hi3516解决方案-LiteOS(二进制) | 4.0 Beta2 | 站点 | SHA256校验码 | 300.9 MB |
Hi3516解决方案-Linux(二进制) | 4.0 Beta2 | 站点 | SHA256校验码 | 192.4 MB |
RK3568标准系统解决方案(二进制) | 4.0 Beta2 | 站点 | SHA256校验码 | 5.2 GB |
标准系统Public SDK包(Mac) | 4.0.9.6 | 站点 | SHA256校验码 | 832.3 MB |
标准系统Public SDK包(Mac-M1) | 4.0.9.6 | 站点 | SHA256校验码 | 788.4 MB |
标准系统Public SDK包(Windows/Linux) | 4.0.9.6 | 站点 | SHA256校验码 | 2.0 GB |
更新说明
本版本在OpenHarmony 4.0 Beta1的基础上有如下变更:
API
OpenHarmony 4.0 Beta2的API范围相比4.0 Beta1,API变更的清单请参见“API差异报告”。极少量接口的变更可能影响到已开发的应用(使用API 9或更早版本API开发的应用),变更影响的说明和接口的适配指导请参见“changelogs”。
特性变更
详见版本概述。
芯片及开发板适配
芯片及开发板适配状态请参考SIG-Devboard信息。
Samples
表3 新增Samples
子系统 | 名称 | 简介 | 开发语言 |
---|---|---|---|
网络与连接 | 上传和下载 | 本示例使用@ohos.request接口创建上传和下载任务,实现上传、下载功能,hfs作为服务器,实现了文件的上传和下载和任务的查询功能。 | ArkTS |
文件管理 | 应用接入数据备份恢复 (Full SDK) |
应用接入数据备份恢复需要通过配置BackupExtensionAbility实现。 BackupExtensionAbility,是Stage模型中扩展组件ExtensionAbility的派生类。开发者可以通过修改配置文件定制备份恢复框架的行为,包括是否允许备份恢复,备份哪些文件等。 本sample主要给备份流程提供应用,用于生成数据和显示数据。 |
ArkTS |
事件通知 | 自定义通知角标 | 本示例主要展示了设定应用的桌面图标角标的功能,使用@ohos.notificationManager 接口,进行桌面角标的设置,通知的发送,获取等。 | ArkTS |
事件通知 | 自定义通知推送 (Full SDK) |
本示例主要展示了通知过滤回调管理的功能,使用@ohos.notificationManager 接口,进行通知监听回调,决定应用通知是否发送。 | ArkTS |
NDK | Native Xcomponent (Native SDK) |
本示例中主要介绍开发者如何使用Native XComponent接口来获取NativeWindow实例、获取布局/事件信息、注册事件回调并通过OpenGL/EGL实现在页面上绘制形状。功能主要包括点击按钮绘制一个五角星,并可以通过点击XComponent区域改变五角星的颜色。 | Native C++ |
应用模型 | 数据代理卡片-数据库刷新 (Full SDK) |
本示例主要展示了数据代理卡片的功能,使用@ohos.application.DataShareExtensionAbility、@ohos.data.dataShare、@ohos.data.dataSharePredicates等接口,实现了修改卡片订阅信息后,当rdb数据库中的数据发生变化时,卡片中对应信息也发生相应变化的功能。 | ArkTS |
应用模型 | 数据代理卡片-仿push应用刷新 (Full SDK) |
本示例主要展示了使用push应用形式的数据代理卡片功能,使用@ohos.data.dataShare等接口,实现了数据代理卡片的修改订阅条件功能及卡片的发布数据功能。 | ArkTS |
应用模型 | 编辑应用 | 本示例主要实现了基于UIExtension实现简单的分享功能。支持取消分享,点击“返回Share”按钮,返回调用方应用;支持完成分享,点击“留在编辑应用”按钮,留在当前接收分享结果应用。 | ArkTS |
应用模型 | 发起分享应用 (Full SDK) |
本示例主要实现了点击“分享”按钮发起分享,显示出分享文本应用图标和分享编辑应用图标,点击相对应应用图标可以发起分享并跳转到其对应应用显示。 | ArkTS |
应用模型 | 文本应用 (Full SDK) |
本示例主要实现了基于UIExtension实现简单的分享功能。支持取消分享,点击“返回Share”按钮,返回调用方应用;支持完成分享,点击“留在文本应用”按钮,留在当前文本应用。 | ArkTS |
请访问Samples仓了解更多信息。
修复缺陷列表
表4 修复缺陷ISSUE列表
ISSUE单 | 问题描述 |
---|---|
I6U4ZT | 拍照后立刻断电源,图库的第一张图片点击打不开。 |
I79752 | 中概率由进程com.ohos.smartperf下的.ohos.smartperf线程导致libark_jsruntime.so出现cppcrash。 |
I79P3K | 低概率由进程com.ohos.callui导致jscrash,栈名:onDestroy。 |
I79TCB | 低概率由进程com.ohos.note下的VizCompositorTh线程导致libweb_engine.soTh出现cppcrash。 |
I78CBC | 反复进入某相册的图片宫格浏览界面,导致libace.z.so出现内存泄露。 |
I78CH7 | 反复在dock栏添加/移除应用,导致libace.z.so出现内存泄露。 |
遗留缺陷列表
表5 遗留缺陷列表
ISSUE | 问题描述 | 影响 | 计划解决日期 |
---|---|---|---|
I78C9W | 反复进入大图浏览界面后返回,导致libace.z.so出现内存泄露。 | 非常用场景,应用重启后泄露问题消失,影响可控。 | 2023年8月30日 |
I7BF3M | 长时间运行测试,launcher进程概率性出现appfreeze,原因是STRINGID:APPLICATION_BLOCK_INPUT卡在libeventhandler.z.so。 | 该问题不会引起系统重启,整体影响可控。 | 2023年8月30日 |
I7M51R | 低概率出现进程com.ohos.systemui下的线程render_service出现cppcrash。 | 低概率问题,且render_service进程出现cppcrash后,系统会自动重新启动render_service进程,对业务影响可控。 | 2023年8月30日 |
I7NWF3 | 因兼容性问题,使用3.2.x版本的设备和4.0.x版本的设备通过Wi-Fi引导P2P连接时开启会话失败。 | 在使用4.0.x版本的设备间此问题不存在,影响可控。 | 2023年8月30日 |
I7BOAO | 三方仓GLES3多个测试用例执行失败。 | 三方仓问题,厂商正在适配修改。 | 2023年8月30日 |