写点什么

未来已来,OpenHarmony 3.2 Release 发布,迈入发展新阶段

  • 2023-04-13
    上海
  • 本文字数:6168 字

    阅读完需:约 20 分钟

未来已来,OpenHarmony 3.2 Release发布,迈入发展新阶段

2023 年 4 月 9 日,在社区开发者的期盼中,在春风送暖万物更新的季节里,我们迎来了 OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Release 新版本的发布。相比一年前的 OpenHarmony 3.1 Release 版本,新版本的系统能力、系统整体性能、稳定性和安全性都进一步得到提升和完善;OpenHarmony 3.2 Release 版本为应用开发而生,在系统能力、开发工具和 API、硬件调测等将为开发者带来全新体验!


OpenHarmony 开源两年多以来,吸引了 130 多家伙伴、超过 5100 名开发者参与共建和贡献,产出超一亿行代码。超 260 款软硬件产品通过兼容性测评,广泛覆盖了能源、金融、交通、教育、政务、家居等很多行业。感谢各位伙伴和开发者的贡献,是大家的支持和贡献,加速了 OpenHarmony 生态的繁荣发展。随着 OpenHarmony 3.2 Release 版本的发布,OpenHarmony 社区迈入新的发展阶段。


OpenHarmony 3.2 Release 版本带来了众多的新特性,支持采用 ArkTS 语言+Stage 应用模型进行大型应用、原子化服务开发;ArkCompiler 的优化、Taskpool 机制提升应用运行性能;ArkUI 组件能力增强,强化图形渲染能力和系统安全能力,丰富分布式业务开发;引入 AI 框架,同时,媒体、电话、通信、Web、安全、调测能力进一步提升;外设模型进一步丰富。新版本还提供了 API Level 9 稳定接口。下文描述新版本的部分新特性,请您前往 OpenHarmony 3.2 Release Note 了解所有新功能的详细信息。


立即查看所有新功能

https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v3.2-release.md


OpenHarmony 3.2 Release 为开发者带来了什么

ArkUI

组件能力增强

●支持 XComponent 控件,可用于 EGL/OpenGL ES 和媒体数据写入,并在 XComponent 组件显示;通过 XComponent 组件,配合 NDK 能力,构建 C++/ArkTS 混合开发能力,支持游戏、媒体应用开发。

●支持 AbilityComponent 控件,支持嵌入其他应用作为控件(Component)显示。

●增加基础的 ArkTS 卡片开发能力:支持卡片交互、能动态更新内容;统一卡片和页面的开发范式,页面的布局可以直接复用到卡片布局中,提升卡片开发体验和开发效率。

● 系统默认支持纯文本、纯图片复制、粘贴、拖拽,无需开发者处理复制、粘贴、拖拽事件。

● 支持多级菜单和分组菜单。

● 支持切换深色模式/浅色模式,仅系统应用支持。

UI 界面开发支持一次开发适配多屏幕规格

● 交互归一能力增强,交互归一事件对接 TP、鼠标、键盘、触摸板、手写笔,ArkUI 原生组件支持归一化的操作方式。

● 响应式布局能力优化,增强了媒体查询能力,栅格系统重构且对接自由窗口。

● 走焦能力增强,支持 Tab 键和方向键走焦,支持配置组件是否可获焦。

● 支持增强分栏与侧边栏组件能力,支持拖拽自动隐藏等能力。

应用框架

● Stage 模型,OpenHarmony API 9 新增模型,提供了应用程序必备的组件和运行机制。开发者可以基于该模型进行复杂应用开发,使应用开发更简单、高效。

○ 以类形式提供组件开发,方便开发者基于类扩展。

○ 进程内共享虚拟机实例,减少应用内存占用。

○ 支持在进程内共享数据对象,方便开发者在多模块间共享状态。

○ Ability 生命周期和窗口显示/焦点事件分离,统一了多设备形态下组件的生命周期,有利于多设备应用开发。

○ Ability 与 UI 职责分离且具备 RPC 调用能力,原生支持组件级的跨设备迁移与协同,有利于分布式应用开发。

● 提供 Extension 机制,借助 Extension,应用在与其他应用或系统进行交互时向他们提供自定义功能和内容,例如:应用可以作为卡片显示在系统桌面或者系统闲时执行后台任务等。当前支持的常用 Extenson 有:FormExtensionAbility、WorkSchedulerExtensionAbility、InputMethodExtensionAbility、AccessibilityExtensionAbility 等。

● 原子化服务支持分包预加载,提升服务首次加载性能。

● 支持 HSP(Harmony Shared Package)动态共享包,支持应用内代码和资源的共享。

应用包管理

● 支持选择默认应用,例如用户使用应用程序打开文件或 url 地址时选择了默认程序,后续将自动打开该应用程序操作文件。

● 支持对部分预置应用如 Launcher、SystemUI、Settings 等,系统事先授予权限(如定位、电话联系人等权限)、简化设备开箱后的授权过程,提升用户体验。

● 支持预置应用配置是否可常驻、是否可以多进程,是否允许使用 Service 类型的 ExtensionAbility 等能力,加强对预置应用的权限管控。

● 支持动态修改和更新应用程序的代码,提供快速修复程序包便于应用快速响应需求和修复问题(此能力依赖设备厂商构建应用市场并提供分发能力)。

● 支持 so 基于 hap 包的隔离,方便开发者在不同的模块中部署 so 文件,避免了不同模块 so 重名的问题。

分布式技术

支持元服务和卡片跨设备流转,包括:跨设备查询、添加、刷新、删除等。

分布式软总线

● 提供基于蓝牙链路的文件传输能力,蓝牙数据传输通道相比 OpenHarmony 3.1 版本性能提升约 10%。

● 通过为每个进程分别建立 Message 和 Byte 高低优先级队列,确保在 Message 和 Byte 并发的情况下,优先保障消息队列的数据发送,同时也能保障 Byte 得到有效传输,解决了在字节数据拥塞的情况下,消息数据不能及时传输的问题。

● 在支持 RAW 流的基础上,新增 COMMON 流传输能力,将未加密音视频流交由软总线进行加解密,调用者只需要把原始的音视频流数据传递给软总线,软总线保障数据的安全传输。

● 支持传输链路(WLAN/WiFi P2P/蓝牙 BR)动态选择。根据双端设备支持的传输链路以及业务调用软总线传输接口(SendFile、SendSteam、SendMessage、SendBytes)进行链路选择。例如当需要传输流数据时,优先选择 WLAN(5G 频段)进行传输,如果 WLAN 不可用,则选择其它链路(例如 WiFi P2P)进行传输。

分布式硬件

● 分布式相机拍照支持设置拍摄地理位置信息和照片质量级别(影响照片的压缩比和画质清晰度)。

● 分布式相机支持录像功能。

● 设备管理支持将帐号认证信息导入到设备安全认证系统中,相同帐号的设备可以自动完成设备认证和组网。

分布式数据管理

跨应用数据访问、本地数据库、数据同步能力进行了优化和增强。

● 通过代理方式实现同设备内跨应用数据访问,避免频繁拉起数据源应用。

● 支持同设备内关系型数据库、键值型数据库的跨应用数据访问。

● 支持键值型数据库和关系型数据库。

● 支持对数据库文件的加密保存。

● 支持数据库的异常损坏检测以及异常重建。

● 支持应用通过客户端进行备份和恢复数据库。

● 支持自动备份键值型数据库。

● 支持同应用跨设备对关系型数据库远程查询。

● 支持元数据库异常损坏检测和自动重建。

● 键值型数据库从统一的系统沙箱切换到各应用沙箱,缩小应用数据的访问权限,提升了应用数据的安全性。

媒体

音频

● 提供选择蓝牙设备进行音频播放和通话的能力。

● 支持生成 DTMF 拨号音并进行播放。

● 支持 OpenSL ES 基础录音接口。

● 支持应用查询当前可用的音频设备列表,并携带具体设备信息,比如设备采样率、通道数、通道掩码。

● 支持查询系统中已建立的播放流和录音流信息。

播放

● 媒体播放支持 fd 格式输入的本地播放、支持 HTTPS、HLS 协议网络点播功能。媒体播放支持基于 HDI 的 H264 硬解播放能力。

● 提供音视频编解码能力,基于 HDI codec 接口的视频硬编码/硬解码能力。

相机

● 支持相机拍照配置:格式、分辨率、质量(影响照片的压缩比和画质清晰度)、地理位置等。支持录像和录像中抓拍。

● 支持相机精准隐私保护策略,仅允许前台使用(包含相机悬浮窗场景);支持系统服务后台使用相机,不允许第三方 APP 后台静默使用相机。提供系统接口,供相机全局开关开启、禁用调用。

图片

增加支持 raw、Webp 图片格式。

程序访问控制

● 实现应用和系统进程的权限管理框架,提供如下应用权限的操作接口:

○提供权限的校验、权限的授予、权限的撤销功能。

○提供权限的授权变化监听功能。

○提供拉起权限弹窗的接口,应用可以通过该接口拉起弹窗,向用户申请授权。

● 提供权限弹窗应用以及 Setting 应用的隐私权限管理功能。

● 提供隐私报告功能,支持添加/查询权限访问记录、监听权限使用状态变化接口。

● 提供隐私保护增强特性,提升用户的隐私保护体验,包括:

○相机使用提醒,在相机使用时,通知 systemUI 在右上角显示小圆点,提示用户。

○一键开关功能,提供用户一键开关,管控设备麦克风/相机敏感资源的使用。

● 提供 SELinux 功能的 permissive 模式。

ArkCompiler

语言特性增强

● 支持严格模式的 Ecma2021 规范。

编译器运行时功能

● 提供 es2abc 编译器,优化字节码编译性能、缩短编译时间。

● 提供汇编解释器提升应用高级语言运行性能。

● 提供基于 PGO 配置文件的 Host AOT 优化编译器,提升应用高级语言高负载性能。

● 支持模块化能力,更好、更规范的支持复杂应用工程开发。

● 支持热补丁机制,提供应用热修复运行时技术底座。

● 调试增强,支持多实例调试、热重载调试,提升开发者开发效率。

● 支持基于 CDP 协议的 CPU Profiler/Heap Profiler 调优能力,提供应用性能调优和内存调优能力。

语言基础库

● utils 功能增强,支持 uuid 提供通用统一标识符功能,支持 Buffer 提供缓冲区读写比较查找功能。

● Concurrent 并发库增加并发 API TaskPool 基础版,提供并发任务接口。任务池(Taskpool)作用是为应用程序提供一个多线程的运行环境,降低整体资源的消耗、提高系统的整体性能。C/C++工具链

● 工具链升级:LLVM 升级到 12.0.0,支持 MIPS 架构、RISC-V 架构。

● 功能增强:支持 stack pageguard 保护,地址随机化,namespace 隔离,CFI 功能,Fortify 功能,时区数据更新等,提升 C/C++库安全。

● 性能优化:实现高频函数性能优化提升 c 库基础性能,实现 linker 优化提升库加载性能。

● 支持 locale 提供时区设置刷新功能。

驱动
HDF 驱动框架能力

● 支持内核态驱动动态加载、外接设备即插即用事件上报、驱动安全策略配置,为开发者提供更稳定、安全的驱动平台底座。

● HDI 接口支持 IPC 调用和直通调用两种通路模式,开发者可根据实际业务灵活使用,提升业务性能。

● 支持 HDI 服务化代码自动生成能力、模板化驱动代码生成能力、HCS 宏式解析及配置可视化编辑等能力,降低驱动开发门槛,提高开发效率。

● Platform 平台驱动支持用户态中断、新增 CAN 总线 HDF 驱动框架、MMC 驱动实现优化等。

外设驱动模型能力

● Camera 驱动模型支持自拍镜像、镜头控制、JPEG 位置信息添加、Sensor 捕获角查询、人脸识别 Meta 流支持,简化相机驱动开发难度。

● Audio 的 ADM 模型增加耳机接入、听筒和喇叭切换控制、通话音量设置、通话静音等关键控制能力,支撑音频硬件生态拓展。

● Display 驱动模型支持多屏管理、软件 Vsync 机制、兼容 FrameBuffer 架构,支持不同显示架构高效接入。

● 支持标准系统的 Codec 硬件编解码驱动模型、提供 Codec HDI 2.0 接口及参考实现,支持更完备的硬件编解码能力。

● 支持马达驱动模型,包括马达振动启停、基础马达效果控制,为用户提供丰富的振感体验。

● 支持手势驱动模型,包括状态事件、设备状态事件上报;支持手势启停、功能状态配置。

● USB 驱动模型支持设备模式和主机模式,新增支持设备模式下 RNDIS 网络驱动等 DDK 能力。

● 支持 WLAN 驱动能力抗干扰能力,提供最优 P2P 信道选择能力,持续提升 WLAN 信号质量。

工具提升

DevEco Studio 代码开发

● 支持应用/服务开发环境的诊断功能,能够检测开发环境是否完备,确保开发者拥有良好的开发体验。若检查结果中存在不满足的检查项,建议您根据修复建议进行调整。

● 提供基础模板和卡片模板,支持 Stage 工程下创建 ArkTS 服务卡片,帮助开发者快速开发应用和服务。

● 支持 OpenHarmony 工程添加 Extension Ability 模板,具体请参考在模块中添加 Ability。

● 支持按照 ArkUI 新语法和新规范,检查代码提示错误;新增 Code Linter 代码检查功能,支持配置检查规则,修复检查结果。

● 支持 C++代码 Quick Fix 基础能力,具体请参考代码 Quick Fix 快速修复。

● 提供全新的 OHPM CLI(OpenHarmony Package Manager Command-line Interface) 生态三方库包管理工具,支持 OpenHarmony 共享包发布、安装和依赖管理。支持 API 9 的历史工程迁移为 OHPM 工程,详细参考历史工程手动迁移。

● 支持构建闭源 HAR,并支持配置 HAR 的混淆能力。

● 支持 AOT 编译模式,提供高负载 TS 性能选择和构建能力,提升应用运行性能,具体请参考开启 AOT 编译模式。

● API 9 的 Stage 工程默认开启模块化编译,可有效缩短增量编译时间、减小编译后的包体积。

● 支持并发编译提升编译速度。

DevEco Studio 应用调试调优

● 支持 ArkTS/JS 与 C/C++跨语言调试特性,在 C/C++工程中,采用 ArkTS/JS 与 C/C++进行混合开发,能够在 ArkTS 或 JS 调用 C/C++方法处,直接进入 C/C++代码中进行调试,方便开发者快速发现并解决跨语言调用相关代码问题。具体请参考 ArkTS/JS 与 C/C++工程跨语言调试。

● 支持 Hot Reload 热重载,支持保存代码后在真机上使用最新的代码而无需重启应用。

● 支持 OpenHarmony 多包推送和多实例调试功能。

● 支持 OpenHarmony API 9 C/C++工程的内存错误检测。

● OpenHarmony 日志功能支持打印 FaultLog,便于应用开发者快速查询、定位、导出应用故障信息。

● 测试框架能力增强,针对 JS/ArkTS API Version 8 和 9 的工程,测试框架的执行效率显著提升;同时优化了测试框架模板,提升模板代码的可读性。

测试能力

● 新增测试用例筛选执行能力,支持在用例中配置指定字段如用例类型、级别等参数,通过命令执行筛选后的用例,帮助开发者提升测试执行效率。

● 新增测试用例驱动执行能力,可将相似测试逻辑的不同输入输出数据配置到辅助文件中使用,帮助开发者减少测试代码量。

● 新增多窗口、双指捏合、抛滑等 UI 场景模拟操作能力,提升 UI 自动化支持范围。

● 新增 OpenHarmony 应用质量要求兼容性测试规范,涵盖 UX、性能、功耗、稳定性、兼容性和安全六大方面,规范 OpenHarmony 应用基础质量要求。

● SmartPerf-Host 性能功耗调试调优工具,为开发者提供一套性能调优平台,支持 GUI(图形用户界面)操作进行详细数据分析。3.2 版本新增:

○支持功耗分析能力,展示应用各子类别功耗占比信息、资源申请使用记录、功耗异常事件、功耗与系统状态关联信息。

○支持 Web 端抓取 trace。

○支持 SQL 查询和 Metrics 说明。

○支持内核内存事件分析。

● wukong 软件稳定性工具能力增强:

○支持注入滑动、鼠标、字符、系统按键、控件事件,模拟用户多样化随机操作,覆盖真实用户操作场景,挖掘更多稳定性问题。

○支持设置运行总时长、应用黑白名单,实现个性化测试。

○支持控件顺序遍历测试,测试过程中支持界面截图;支持休眠唤醒测试。


获取 OpenHarmony 3.2 Release 源码进行体验

OpenHarmony 3.2 Release 版本依照惯例,继续提供版本源码和现成镜像的方式,支持社区开发者进行体验、使用。

方式一

OpenHarmony 3.2 Release Note 中提供了版本代码的下载方式。您可以从版本分支获取该版本分支的最新源码,包括版本发布后在该分支的合入。同步代码的命令如下:


repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Release --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
复制代码


方式二

OpenHarmony 3.2 Release Note 中还提供镜像站点,可以直接获取镜像进行体验,支持全量代码、各种解决方案、适用各种平台的标准系统 Public SDK 包。


加入社区共建,持续贡献

当前,已有数以千计的开发者参与到 OpenHarmony 的贡献和共建中来。同时,也已累计有上百家伙伴单位参与到 OpenHarmony 的开发和实践中。未来,也期待更多的共建单位和开发者携手齐心,共同打造使能千行百业的数字底座。



用户头像

OpenHarmony开发者官方账号 2021-12-15 加入

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展

评论

发布
暂无评论
未来已来,OpenHarmony 3.2 Release发布,迈入发展新阶段_OpenHarmony_OpenHarmony开发者_InfoQ写作社区