OpenHarmony 3.1 Beta
版本概述
当前版本在OpenHarmony 3.0 LTS的基础上,更新支持了以下能力:
-
标准系统OS基础能力增强:内核提升CMA利用率特性、图形新增支持RenderService渲染后端引擎、短距离通信支持STA(Station)和SoftAP基础特性、支持地磁场的算法接口、传感器驱动模型能力增强、支持应用帐号信息查询和订阅等、全球化特性支持、编译构建支持统一的构建模板、编译运行时提供Windows/MacOS/Linux的前端编译工具链、JS运行时支持预览器、新增支持JSON处理、Eventbus、Vcard、Protobuf、RxJS、LibphoneNumber等6个JS三方库、新增时间时区管理、DFX新增支持HiSysEvent部件提供查询和订阅接口。
-
标准系统分布式能力增强:包括新增支持分布式DeviceProfile特性、分布式数据管理支持跨设备同步和订阅、分布式软总线支持网络切换组网、分布式文件系统支持Statfs API能力等。
-
标准系统应用程序框架能力增强:新增ArkUI自定义绘制能力和Lottie动画能力、新增包管理探秘隐式查询和多hap包安装、事件通知支持权限管理、设置通知振动、通知声音设置和查询、通知免打扰、会话类通知等。
-
标准系统应用能力增强:输入法应用支持文本输入和横屏下布局显示、短信应用信息管理、联系人应用通话记录和拨号盘显示、设置应用更多设置项。
-
轻量系统能力增强:HiStreamer轻量级支持可定制的媒体管线框架、Linux版本init支持热插拔、OS轻内核&驱动启动优化、快速启动能力支持。
配套关系
表1 版本软件和工具配套关系
软件 | 版本 | 备注 |
---|---|---|
OpenHarmony | 3.1 Beta | NA |
SDK | Ohos_sdk 3.1 Beta (API Version 8 Beta) | NA |
HUAWEI DevEco Studio(可选) | 3.0 Beta2 | OpenHarmony应用开发推荐使用。 |
HUAWEI DevEco Device Tool(可选) | 3.0 Beta2 | OpenHarmony智能设备集成开发环境推荐使用。 |
源码获取
前提条件
-
注册码云gitee账号。
-
注册码云SSH公钥,请参考码云帮助中心。
-
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 git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
方式二
通过repo + https 下载。
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
从镜像站点获取
表2 获取源码路径
版本源码 | 版本信息 | 下载站点 | SHA256校验码 |
---|---|---|---|
全量代码(标准、轻量和小型系统) | 3.1 Beta | 站点 | SHA256校验码 |
Hi3516标准系统解决方案(二进制) | 3.1 Beta | 站点 | SHA256校验码 |
RK3568标准系统解决方案(二进制) | 3.1 Beta | 站点 | SHA256校验码 |
Hi3861轻量系统解决方案(二进制) | 3.1 Beta | 站点 | SHA256校验码 |
Hi3516轻量系统解决方案-LiteOS(二进制) | 3.1 Beta | 站点 | SHA256校验码 |
Hi3516轻量系统解决方案-Linux(二进制) | 3.1 Beta | 站点 | SHA256校验码 |
标准系统SDK包(Mac) | 3.1 Beta | 站点 | SHA256校验码 |
标准系统SDK包(Windows\Linux) | 3.1 Beta | 站点 | SHA256校验码 |
编译工具链获取清单 | - | 站点 | - |
更新说明
本版本在OpenHarmony 3.0 LTS的基础上有如下变更。
特性变更
表3 版本新增特性表
子系统名称 | 标准系统 | 轻量、小型系统 |
---|---|---|
包管理子系统 | - I4MBSE:提供桌面包管理客户端 - I4MBSF:支持缓存清除能力 - I4MBSG:支持安装包信息查询 - I4MBSD:支持多hap包安装 - I4MBSH:支持多hap安装的签名校验 - I4MBSC:支持Module和Ability的srcPath字段 |
NA |
分布式任务调度子系统 | -I4MBRW:SAMGR新增服务进程内的System Ability名单管控 -I4MBRV:SAMGR新增系统服务状态列表维护 -I4MBRZ:SAMGR新增全量服务列表初始化 -I4MBRY:SAMGR新增系统服务进程状态列表维护 -I4MBRX:SAMGR新增加载指定系统服务 |
NA |
DeviceProfile子系统 | -I4NY23:本地设备Profile的插入、删除、查询 -I4NY1X:远程设备Profile的查询 -I4NY1T:订阅远程Profile变化的通知 -I4NY1W:跨设备同步Profile |
NA |
帐号子系统 | -I4MBQW:支持应用帐号的新增和删除 -I4MBQV:应用帐号基础信息约束 -I4MBQU:支持应用帐号订阅及取消订阅 -I4MBQT:支持应用帐号功能设置与内容修改 -I4MBQS:支持应用帐号信息查询 -I4IT3U:支持应用帐号基础信息管理 |
NA |
泛sensor服务子系统 | -I3NJ96:加速度传感器数据上报 -I3NJ8H:陀螺仪传感器数据上报 -I3NJ7J:环境光传感器数据上报 -I3NJ76:磁力计传感器数据上报 -I4MBRP:地磁场偏角和倾角 -I4MBRQ:地磁场水平强度、总强度 |
NA |
USB服务子系统 | I410OZ: - 查询已连接的USB设备列表 - 获取USB设备临时访问权限 - 设置USB设备配置、接口 - 与USB设备进行数据传输 |
NA |
语言编译器运行时子系统 | - I4MBUK:JavaScript/TypeScript默认运行时从quickjs替换为方舟运行时。 - I4MBUJ:方舟运行时内存回收功能增强,支持并发标记算法以及并发压缩算法,支持选择部分region进行压缩GC(Partial CompressionGC),优化GC pause time减少30%。 |
NA |
全球化子系统 | - 支持国际化特性:单复数规则、字符串排序、电话号码处理、日历&本地历法、度量衡体系和格式化、区域表示和属性、时间段格式化、字母表检索、unicode字符属性、断词换行 - 支持系统资源、rawfile资源 |
NA |
分布式软总线子系统 | -I4FZ29:软总线提供传输ExtAPI接口 -I4FZ25:软总线支持网络切换组网 |
-I4FZ29:软总线提供传输ExtAPI接口 -I4FZ25:软总线支持网络切换组网 |
启动子系统 | NA | -I3XGJH:init基础环境构建 -I3XGKV:system parameter管理 -I3XGLN:init 脚本管理 -I3XGMQ:基础权限管理 -I3XGN8:bootimage构建和加载 -I3XGKV:uevent 管理 -I3XGNM:烧写模式支持 |
媒体子系统 | NA | -I4BX5Z:HiStreamer支持音频播放和控制 -I4BX8A:HiStreamer支持常见音频格式mp3/wav的播放 -I4BX9E:HiStreamer播放引擎框架需求 -I4DK89:HiStreamer插件框架需求 -I4DK8D:HiStreamer性能和DFX需求 |
图形子系统 | 全新设计OpenHarmony 图形栈: 新增UI框架渲染后端特性支持 新增ArkUI控件接入RenderService渲染后端 |
NA |
内核子系统 | 内核(Linux 5.10) -I4LUG4 CMA内存区域复用(目前仅支持Hi3516DV300,暂不支持RK平台) -I4LX4G 支持anonymous vma命名(目前仅支持Hi3516DV300,暂不支持RK平台) |
-I3ND6Y:【性能】OS内核&驱动启动优化 |
启动恢复子系统 | NA | -I3NTCT:Linux版本init支持热插拔 |
分布式数据对象管理子系统 | NA | -I4H3JJ:分布式对象支持小型系统设备 |
电话子系统 | NA | -I4JQ2N:提供Http JS API -I4JQ3G:提供Http 2.0协议 |
Misc软件服务子系统 | I4MBQE: 支持应用读取时间 支持应用读取时区 支持时间修改通知 支持时区修改通知 支持分钟变化通知 |
NA |
编译构建子系统 | I4K7E3:支持使用统一的编译命令作为编译入口 - I4KCNB:支持使用统一的gn模板 |
-I4MBQN:支持统一的编译入口、支持使用build.sh编译轻量、小型系统 -I4MBQP:支持统一的编译流程 -I4MBQR:支持统一的产品配置 |
文件存储子系统 | -I4MBS2:statfs获取设备总空间与剩余空间JS接口 | NA |
驱动子系统 | -I4L3KK:传感器器件驱动能力增强,支持传感器采样率动态配置,三轴方向静态可配置,环境光增益调节。 -I4L3LF:传感器驱动模型能力增强,支持传感器HDI跨进程服务获取和调用。 -I4MBTS:HDF-Input设备能力丰富,支持摇杆设备数据上报。 -I4MBTR:Display HDI接口针对标准系统的参考实现,针对DRM显示架构,提供针对标准系统的Display HDI默认参考实现,有助于厂商参考适配HDI。 -I4HPR7:提供hcs宏式解析机制,编译时使用hc-gen工具把驱动的配置参数解析为宏定义参数,驱动通过hcs宏格式的接口访问宏定义参数。 -I4KVJQ:支持linux/liteos内核系统级休眠唤醒。 -I4L3ZZF:支持同步/异步电源管理调用,提供同步/异步的管理HDF设备进入休眠或者被唤醒的机制。 |
-I4L3KK:传感器器件驱动能力增强,支持传感器采样率动态配置,三轴方向静态可配置,环境光增益调节。 -HDF-Input设备能力丰富(linux系统),支持摇杆设备数据上报。 -I4HPR7:提供hcs宏式解析机制,编译时使用hc-gen工具把驱动的配置参数解析为宏定义参数,驱动通过hcs宏格式的接口访问宏定义参数。 -I4KVJQ:支持linux/liteos内核系统级休眠唤醒。 -I4L3ZZF:支持同步/异步电源管理调用,提供同步/异步的管理HDF设备进入休眠或者被唤醒的机制。 |
ArkUI子系统 | - I4MBUY:事件中增加Target获取尺寸 - I4MBUZ:Swiper组件支持设置缓存cache - I4MBV1:Image组件支持同步、异步渲染设置 - I4MBV3:样式设置特性增加组件多态样式设置 - I4MBV5:字母索引条组件增加提示菜单内容扩展 - I4MBV6:组件自定义特性增加自定义容器组件规格 - I4MBV7:滚动条样式自定义能力 - I4MBV8:Swiper组件新增切换禁用规格 - I4MBV9:Tabs组件新增TabBar内容自定义规格 - I4MBVA:Navigation组件新增标题栏设置规格 - I4MBVB:工具栏组件增加工具栏显隐控制规格 - I4MBVC:工具栏组件增加内容自定义能力规格 - I4MBVD:新增SysCap声明编译特性 - I4MBVE:新增JSSDK编译特性 - I4MBVF:新增Config.json编译特性 - I4MBVG:新增断点调试特性支持单实例调试 - I4MBVH:新增attach调试特性支持单实例调试 - I4MBVI:新增声明式范式编译特性支持编译和校验规格 - I4MBVJ:新增JS模块共享编译特性 - I4MBVK:新增HAR引用和编译特性 - I4MBVL:新增NPM引用和编译特性、 - I4MBVN:纵向显示滑动条组件特性 - I4MBVO:Popup组件增加内容自定义规格 - I4MBVP:Canvas绘制能力支持 - I4MBVQ:Canvas能力增强 - I4MBVR:触摸响应热区设置 - I4MBVS:Lottie动画支持 - I4MBVT:组件尺寸获取特性 - I4MBVU:Menu组件增加内容自定义规格 - I4MBVV:Swipe手势特性 - I4MBVW:UI预览支持Inspector能力 - I4MBVX:新增非路由文件预览特性 - I4MBVY:新增NAPI预览特性 - I4MBVZ:新增声明式范式预览特性。支持基础预览规格 - I4MBW2:新增声明式范式热加载特性,支持已有节点修改规格 - I4MBW3:新增声明式范式热加载特性,支持新增节点规格 - I4MBW4:新增声明式范式热加载特性,支持删除节点规格 - I4MBW5:新增组件预览特性,支持页面组件预览规格 通用属性新增点击控制 touchable:设置组件是否可以被触摸。 基础组件新增Marquee:跑马灯组件。 基础组件新增Gauge:数据量规图表组件。 基础组件新增TextArea:多行文本输入组件。 基础组件新增TextInput:单行文本输入组件。 基础组件新增Toggle:状态组件。 容器组件新增Stepper:步骤导航器组件。 容器组件新增StepperItem:步骤导航器导航项组件。 新增全局UI方法ActionSheet:列表选择弹窗。 |
NA |
DFX子系统 | -I4MBQH:支持HiSysEvent部件,提供查询、订阅接口 -I4MBQJ:提供工具查询或者订阅系统事件 -I4MBQL:支持Hiappevent部件的C接口 |
NA |
应用子系统 | -I4MBU1:支持Settings数据管理API -I4MBU3:支持时间设置 - I4MBU5:支持声音管理 -I4MBU6:支持Settings数据管理 -I4MBU7:支持Settings数据默认值管理 -I4MBU8:支持Settings多设备形态差异化构建 -I4MBU9:通知组件化 |
NA |
API变更
API变更请参考:
芯片及开发板适配
芯片及开发板适配状态请参考SIG-Devboard信息。
Samples & Codelabs
新增Samples
表4 Samples列表
名称 | 简介 | 开发语言 |
---|---|---|
Ets公共事件 | 本示例展示了在ArkTS中如何使用CommonEvent的接口完成创建订阅者、订阅公共事件、发布公共事件、取消订阅的功能。 | ArkTS |
空气质量 | 本示例使用JS实现了一个简单空气质量应用,使用折行显示能力显示空气质量信息,使用柱形图展示历史记录。 | JS |
分布式计算器 | 本示例使用JS分布式能力实现了一个简单的计算器应用,可以进行简单的数值计算,支持远程拉起另一个计算器FA,两个FA进行协同计算。 | JS |
EtsNotification | 本示例展示了在ArkTS中如何创建和删除Slot通道,如何发布和取消通知。 | ArkTS |
Ets资源管理 | 本示例展示了在ArkTS中如何调用资源管理的API接口实现字符串和图片资源信息的获取。 | ArkTS |
kikainput | kikainput是一个轻量级的输入法应用,支持在运行OpenHarmony OS的智能终端上。 | JS |
ArkTS分布式数据管理 | 本示例展示了在ArkTS中分布式数据管理的使用,包括KVManager对象实例的创建和KVStore数据流转的使用。 | ArkTS |
轻量级数据存储 | 轻量级数据存储主要提供轻量级Key-Value操作,支持本地应用存储少量数据。本示例通过对购物车商品的添加和删除并保存退出的操作,使得再次打开应用时依然可以保留退出前的购物车信息,体现了轻量级存储在保存轻量级数据时的作用。 | ArkTS |
Ets进程信息 | 本示例展示了在ArkTS中如何获取进程信息和启动一个子进程运行一段shell,包括当前系统运行时间、获取进程当前工作目录、更改进程当前工作目录、发送signal到指定的进程、启动一个子进程、关闭子进程、退出当前系统的功能。 | ArkTS |
Ets运行锁 | 本示例展示了阻止系统休眠的运行锁功能,通过黑白色壁纸模拟息屏、亮屏状态,来展示系统的休眠状态,从而对运行锁的功能进行测试,使得该运行锁在打开后可以阻止系统休眠。 | ArkTS |
字符串编解码 | 本示例对字符串进行了特定格式的输出,对错误码的内容进行了文本输出,对字符串的编码和解码做了演示结果。 | ArkTS |
Js音频播放和管理 | 本示例展示了JS音频播放的使用方法,以及音频的音量大小设置。 | JS |
JsVideo | 本示例使用JS UI中的<video/>组件,实现视频播放。可以通过video自带的控制栏进行播放、暂停等操作。 | JS |
测试打点 | 本示例展示了测试打点功能,包括应用打点与性能打点两部分。 | JS |
JsWorker | 本示例展示了在JS中如何启动一个worker线程,并实现worker线程和宿主线程的通信。 | JS |
画布组件 | <canvas/>组件可以自定义绘制图形,本示例展示了<canvas>组件的使用方法 | JS |
JS页面弹窗 | JS中支持用户自定义弹窗,<dialog/>组件作为容器组件,用户可以自定义弹窗的样式和布局。本示例完成了添加和删除联系人功能,在添加和删除时使用自定义弹窗来实现。 | JS |
JSList商品列表 | 本示例展示了list控件在商品分类列表中的应用,在listGroup里采用两个list-item分别展示了Group收缩和Group展开的两种列表形态,点击后会弹出相应的list列表。 | JS |
JSPanel | JS提供一种轻量级的内容展示面板,此面板可滑动,可自定义触发方式、弹出高度等属性。本示例通过可滑动面板展示了商品详细信息与平台保障。 | JS |
JsSvg | 本示例展示了JS中<svg>组件及其子组件的使用,包括<svg>、<rect>、<circle>、<ellipse>、<path>、<line>、<polygon>、<polyline>、<text>、<animate>、<animateTransform> 。 | JS |
JS自定义组件 | 自定义组件是用户根据业务需求,将已有的组件组合,封装成的新组件,可以在工程中多次调用,提高代码的可读性。本示例展示了JS中自定义组件的使用,包括基本用法、自定义事件、Props和事件参数。 | JS |
新增Codelabs
表5 Codelabs列表
名称 | 简介 | 开发语言 |
---|---|---|
分布式手写板(ArkTS) | 基于分布式能力,实现多设备同步书写互动。 | ArkTS |
分布式数据库 | 基于分布式数据接口,实现多种设备上一致的数据访问体验。 | JS |
关系型数据库 | 基于关系型数据库和数据管理能力,实现数据库相关应用服务的快速开发。 | JS |
极简声明式UI范式(ArkTS) | 基于OpenHarmony ArkUI,实现一个图库应用。 | ArkTS |
一次开发多端部署(ArkTS) | 基于OpenHarmony ArkUI,实现一次布局,多端部署。 | ArkTS |
购物应用(ArkTS) | 基于OpenHarmony ArkTS UI丰富的组件实现购物商城应用。 | ArkTS |
转场动画的使用(ArkTS) | 基于OpenHarmony ArkUI转场动画,实现了页面间转场、组件内转场以及共享元素转场。 | ArkTS |
基础组件Slider的使用(ArkTS) | 基于OpenHarmony ArkUI,使用slider组件,实现可调节风车大小和转速的动画效果。 | ArkTS |
流式布局(ArkTS) | 基于OpenHarmony ArkUI,实现流式布局效果。 | ArkTS |
弹窗(ArkTS) | 基于OpenHarmony ArkUI,实现警告弹窗和自定义弹窗。 | ArkTS |
修复缺陷列表
表6 修复缺陷ISSUE列表
ISSUE单号 | 问题描述 |
---|---|
I48IM7 | 运行hilog压力测试,hilogd异常重启,且hilog命令一直无法使用。 |
I48YPH | 【软总线-组网】测试发现和组网性能(循环离网-发现-组网)110次组网失败3次。 |
I4BVVW | 【软总线-组网】标准系统与手机开关网络自组网成功率97%失败3次需分析失败原因。 |
I4BXY1 | 视频录制后前几秒没声音,播放声画不同步,在板子播放会卡顿,音源较远时,有杂音。 |
3ZJ1D | XTS权限用例压测用户态概率失败。 |
遗留缺陷列表
表7 遗留缺陷列表
ISSUE | 问题描述 | 影响 | 计划解决日期 |
---|---|---|---|
I4NRS5 | 【内核子系统】存在cve漏洞 | Linux内核还未发布补丁,暂时挂起,待社区发布补丁后升级同步。 | 待社区发布补丁 |
I4MGJM | 【hdf/camera】RK3568单板跑camera HDI用例失败 | 拍照和预览正常,可以正常录像,点击结束按钮,不能结束。 | 2021/12/31 |
I4OECR | XTS运行报ark异常栈(低概率问题) | XTS压力测试低概率偶现(48小时出现1次),仅Log中上报异常栈,对功能无影响。 | 2022/1/5 |
I4OBTW | 全量执行XTS用例,安装应用后出现批量aa start 失败,影响社区流水线稳定性测试 | XTS压力测试,短时间内批量安装100个应用包,低概率(2个/100个)出现应用无法启动。用户使用无影响。 | 2022/1/5 |
I4OLHF | 【Ark子系统】 由进程com.amsst.amsMissionSnapshotTest导致测试进程异常 | 低概率、偶现,高压力测试偶现问题。 | 2022/1/5 |
I4OLUK | 【Ark子系统】 由进程com.ohos.systemui导致进程栈异常 | 低概率、偶现,高压力测试偶现问题。 | 2022/1/5 |