OpenHarmony 4.0 Release发布,同步升级API 10

不久之前,OpenHarmony 正式发布了4.0 版本,开发套件也同步升级到 API 10。相比 3.2 Release 版本,4.0 版本新增 4000 多个 ArkTS API,应用开发能力更加丰富;HDF 新增 200 多个 HDI 接口,硬件适配更加便捷;优化图形框架和方舟编译器(ArkCompiler),用户交互体验得到进一步提升;ArkUI 组件定制化能力和组件动效能力也得到进一步增强;分布式硬件支持的范围扩大到音频和输入领域;分布式数据为开发者数据分享带来了全新的统一数据管理框架。另外,该版本在媒体、安全和隐私保护等方面也得到了进一步增强。
 
image.png

版本概述

OpenHarmony 4.0版本如期而至,开发套件同步升级到API 10。相比3.2 Release版本,新增4000多个API,应用开发能力更加丰富;HDF新增200多个HDI接口,硬件适配更加便捷;我们持续优化图形框架和方舟编译器(ArkCompiler),用户交互体验得到进一步提升;ArkUI组件定制化能力和组件动效能力也得到进一步增强;分布式硬件支持的范围扩大到音频和输入领域;分布式数据为开发者数据分享带来了全新的统一数据管理框架。另外,该版本在媒体、安全和隐私保护等方面也得到了进一步增强,欢迎开发者踊跃使用并给我们提出宝贵意见。

您可以阅读本文档了解更多关键特性及能力。

特性说明

应用框架

Stage模型完善了以下特性:

  • 新增Extension能力最小化管理,支持各类Extension满足业务场景需要。
  • 新增UIExtension机制,用于实现有界面的Extension,UIExtension的界面可以通过UIExtension组件的方式嵌入到调用方应用的窗口上显示。
    • 支持统一的UIExtension模板,定义基础的生命周期和上下文能力。
    • 支持原生默认的Extension界面展示,方便开发者快速实现Extension功能,同时也提供界面定制能力。
    • 提供连接和断连ExtensionAbility的能力。
    • 支持对UIExtensionAbility页面设置背景色。
    • 支持对UIExtensionAbility页面隐私属性,设置了隐私的页面不能被录屏或截屏。
    • 支持通过UIExtensionAbility连接Service。
  • 提供自定义操作业务的ActionExtension、分享业务的ShareExtension、备份恢复业务的BackupExtension、驱动业务的DriverExtension、打印业务的PrintExtension。
  • ArkTS卡片能力增强,支持静态卡片配置、静态图展示,有效降低卡片内存资源占用,支持通过数据代理的方式刷新内容,有效降低卡片功耗。
  • 支持元服务的分享,应用开发者可以使用UIAbility组件提供的UIAbility.onShare()生命周期方法,设置要分享的数据。用户可以通过分享框把元服务和卡片分享到另外一台终端设备。
  • 跨端迁移能力增强,支持调用接口来动态打开和关闭迁移能力。应用可动态选择迁移成功后是否迁移页面栈,以及源端是否退出。

应用包管理

  • 支持应用安装包免解压特性,优化系统启动性能和应用安装性能。
  • 支持应用、元服务数据共享,在应用安装时,解析证书文件中的data-group-ids列表,建立映射关系,创建数据共享路径,实现应用与元服务数据共享。
  • 支持应用安装时设置分发类型和附加信息,提供ArkTS接口实现应用分发类型和附加信息的设置和查询。
  • 支持根据文件扩展名查询打开文件的应用列表,实现通过文件扩展名打开文件。
  • 支持企业应用,提供企业MDM应用和企业normal应用的安装,以及对企业应用的管理和吊销。
  • 支持overlay能力,针对不同产品的显示风格,开发者可以在不重新编译打包情况下,新增资源文件overlay包,实现应用界面风格变换。
  • 拆包工具支持多语言,应用市场可查询包中的多语言信息,支持在不同的语言环境下分发应用。
  • 支持so文件不解压使用,即不解压so文件到单独目录,运行期直接从包中读取加载so文件,提升安装速度和减少占用的ROM空间。

ArkUI

  • 基础组件增加或增强:
    • 新增UIExtension组件,用于将一个应用通过UIExtensionAbility的方式,嵌入显示到另一个应用内。
    • 绘制组件Rect/Circle/Ellipse/Line/Polyline/Polygon/Path/Rect/Shape支持偏移、裁剪、遮罩等通用属性,增强绘制组件基础功能。
    • 自定义弹框支持蒙层颜色及弹出动画自定义,如允许设置弹出动画效果的相关参数,增强弹框的开发者自定义功能。
    • bindContextMenu/bindMenu支持自定义位置,允许设置菜单的位置,增强菜单基础功能。
    • ColumnSplit分隔线支持可拖动,增强组件基础功能。
    • Refresh组件支持自定义下拉刷新能力,允许设置下拉刷新时的显示内容,增强组件基础能力。
    • 支持文本组件中返回输入字符串的宽高,用于字符串折叠显示时,鼠标悬浮可弹出字符串完整提示框,增强文本组件基础功能。
    • Xcomponent组件支持Texture模式绘制。
    • Popup组件支持自定义位置。
    • ArkTS/JS卡片支持UI渲染完成的回调,方便获取渲染完成的状态并进行下一步处理。
    • Image/Text组件支持设置隐私遮罩的属性。
    • 基础组件特性增强,提升终端用户的体验,包括弹框支持通过键盘ESC键逐层退出、ListItem支持长距离左滑删除手势、ContextMenu支持分段显示能力等。
    • Grid组件支持设置布局信息。
    • Menu组件支持设置圆角。
    • 半模态组件支持设置高度自适应。
  • 动画效果增加或增强:
    • 支持组件属性变化的过渡动效,如组件的尺寸、背景色、透明度等属性发生变化时通过过渡动效衔接变化前后的状态,提升组件属性变化时的动画体验。
    • 支持给组件设置球面高阶属性、下边缘像素扩展、取色模糊、G2圆角、阴影、渐变等高阶图形属性,丰富高阶动画效果。
    • 布局属性、背景图片大小位置属性、显隐属性支持隐式动效。
    • List新增支持scrollToIndex动效、Tabs模糊动效、Popup出现/消失动效。
    • 支持自定义动画,满足多种多样的动画诉求。
  • 开发效率增强:支持命名路由的能力,借助此能力可针对不同页面设置差异化的切换动效;轻量级ArkUI框架支持定义全局数据对象,可进行应用内页面间的数据共享。
  • 框架能力增强,包括:全局API支持Stage模型多实例场景,支持Rosen渲染后端等。
  • 对富文本的交互能力增强:新增支持手势长按选中文本、支持鼠标拖动选中文本、支持设置文本可编辑(通过通用属性设置富文本框是否使能编辑)、支持对输入事件的监听。
  • 弹窗功能增强,新增错误、信息和询问三种消息弹窗接口,完善警告弹窗三按钮场景和交互优化。

ArkCompiler

高级语言调试调优:

  • 热重载性能优化,支持多hap等场景。
  • 支持多实例调优。

高级语言并发增强:

  • TaskPool支持任务中断和取消,支持定义任务组(TaskGroup),支持对任务的状态和调度信息进行打点,支持超长等待的任务进行识别和恢复。
  • TaskPool支持优先级设置及自动扩缩容算法。

高级语言优化编译:

  • 正式定义ArkTS语法规则并新增ArkTS语法检查,在使用DevEco Studio进行代码编译时会对不符合ArkTS语法规则的代码进行告警。语法检查的规则详见从TypeScript到ArkTS的迁移指导。
  • AOT优化编译支持端侧闲时编译,增强编译优化进一步提升性能。
  • PGO支持采集运行期的类型和函数热点信息,支持AOT优化编译JS代码,提升动态JS代码的运行性能。

高级语言运行时其它功能:

  • 支持动态import加载NAPI库。
  • NAPI buffer、object、arraybuffer、object type接口功能补齐。

编译工具链更新:

  • clang/llvm工具链升级到15.0.4版本。
  • libc版本升级到1.2.3版本,libc库接口性能优化。
  • sigaction函数提供sigchain功能。

分布式数据管理

  • DataShare客户端提供按URI前缀订阅DataShareExtension数据变化的能力,被订阅的URI前缀下任何DataShareExtension数据发生变化都会通知DataShare客户端。
  • 新增统一数据管理框架(Unified Data Management Framework, UDMF),支持数据标准化模型、设备内数据拖拽、UDMF数据存储适配、权限管理、生命周期管理。UDMF框架下支持应用的跨设备拖拽,在此过程中允许对分布式目录中的文件临时授权。
  • 提供RDBstore NDK接口 :包含增/删/改/查/事务、数据加密、数据分级保护、备份/恢复能力。
  • Key-Value和分布式数据对象支持根据数据量自动选择数据同步的通道。系统会根据数据量大小自动选择蓝牙通道或基于Wi-Fi的P2P通道进行数据的同步。
  • 支持系统应用通过数据管理服务代理静默访问其他系统应用的DataShareExtension数据,即不拉起DataShareExtension所在的应用即可访问应用DataShareExtension的数据。

分布式软总线

  • 支持对基于软总线连接的link信息进行管理。
  • 支持会话级的传输能力协商,可通过协商确定设备间传输的能力。

分布式硬件

  • 分布式音频支持扬声器(speaker),麦克风(mic)的资源池化管理,可以在native系统服务中跨设备使用远端设备的扬声器和麦克风,并支持控制远端设备的扬声器音量。
  • 分布式输入支持键盘,鼠标,触摸板的资源池化管理,可以在系统应用中触发跨设备的键盘、鼠标和触摸板的使用。

文件管理

  • 支持文件分类视图管理能力,图库等应用以相册方式管理媒体文件(图片、视频无需关注具体存储位置),相册内添加、移除文件等功能不涉及具体的File IO行为。支持三方应用通过PhotoAccessHelper接口获取相册列表,访问相册内图片、视频等文件。
  • 提供增强的FileIO访问能力,支持randomAccessFile、moveDir、copyDir能力。
  • 提供基于URI的文件临时授权访问及取消授权能力,支持文件的跨应用本地授权或跨设备授权。
  • 支持公共图片文件在设备端和云端进行同步(设备登录的帐号需开通云端服务),支持通过picker选择云端的图片。
  • 支持应用定制备份恢复的目录。
  • 支持应用监听沙箱内的文件变化。

图形显示及窗口

图形

稳定流畅:

  • 对统一渲染模式进行了性能优化,包含基于共享内存的IPC性能优化、基于遮挡剔除和缓存等技术的渲染性能优化、基于硬件合成器能力的能效提升等。
  • 图形处理依赖的渲染库升级至Skia 0310新版本,提升了渲染性能。

极致动效:

  • 支持组件自绘制内容的属性动画。支持组件设置出现和消失的转场动画。
  • 支持取色能力,支持渐变模糊,支持边缘像素扩展,支持渐亮效果,支持多种模糊材质能力。

图片能力增强:

  • 图片编解码能力增强:支持SVG格式图片解码,ico格式图片解码,GIF增量解码,jpeg_IDCT缩放解码,png图片编码,图片exif信息拓展。
  • 图片接口能力增强:支持Pixelmap JS侧的序列化反序列化,提供ImageReceiver和图片解码NDK接口。

窗口

  • 支持监听窗口的获焦状态,可以监听单个窗口的获焦、失焦和显示隐藏状态。
  • 支持应用将子窗口z轴顺序调整到当前应用窗口中的顶层。
  • 支持查询屏幕的显示模式(镜像、扩展),提供停止镜像和停止扩展API。
  • 优化了display模块的参数值获取方式,从原先软件方式优化为从硬件直接获取真实值。
  • 支持通过窗口设置将屏幕亮度恢复默认值。
  • 重构沉浸式实现方式,优化应用打开、退出、跳转下的动画效果。

媒体

音频

  • 支持通过Native接口(OHAudio)进行音频播放和录制。对于音频录制和播放的时延比较敏感的场景,使用Native接口可实现更低的时延。
  • 支持查询或监听当前优先级最高的播放设备。
  • 支持闹钟音量的独立调整。
  • 支持通过物理按键设置静音。
  • 支持音频焦点:应用播放音频时无需手动申请焦点,系统会在后台自动申请焦点,并自动执行焦点策略(如暂停、淡出、淡出恢复等);应用仅需要注册焦点事件监听函数,以接收焦点事件并更新状态,如暂停时停止进度条。支持短音播放。
  • 支持音效模式:应用可查询音频输出的音效模式,切换或关闭音效模式。
  • 支持系统内录音能力:可根据音频场景属性筛选,录制系统内播放的音频数据,支持对录音设备进行查询。
  • 音频设备能力增强:支持获取音频设备显示名,播放对象详细信息内可获取当前播放输出归属的设备名。支持对蓝牙连接的多个可用于音频播放的设备进行查询并选择音频播放的设备。支持标准USB协议的音频外设。

播控框架

  • 支持媒体提供方和控制方之间传递自定义媒体信息,应用可扩展媒体内容展示方式,如媒体控制方可要求媒体提供方按特殊形式显示歌曲歌词。
  • 支持媒体播放列表的框架能力,媒体提供方提供播放列表内容,媒体控制方获取播放列表内容并可以选择任一媒体内容进行播放。
  • 支持播放历史记录的框架能力,媒体会话框架提供查询历史播放应用的列表,列表项按播放先后顺序排序(包含当前播放的和已退出的应用)。
  • 提供自定义媒体事件的传输通道,如歌词内容的传输通道,媒体提供方提供歌词内容,媒体控制方获取歌词内容。
  • 提供自定义的媒体控制命令的传输通道,媒体控制方可以利用该自定义命令传输通道向媒体提供方发送自定义控制命令,如媒体控制方要求媒体提供方显示弹幕信息。

媒体播放

  • 支持基于HLS协议的网络直播功能以及基于datasource的流式播放功能。
  • 支持基于HDI的H.265视频硬解播放能力。
  • 支持播放音频属性设置,用户在使用播放器的时候可以选择输出声音的类型。
  • 支持视频自带的旋转播放功能。
  • 支持音效参数配置,可以在音频框架支持音效的能力基础上进一步配置音效。

相机

  • 支持前置预览镜像能力,默认情况下,前置预览画面呈镜像状态。
  • 支持分布式摄像头查询该摄像头的主设备属性,包括设备名称和设备类型。
  • 支持更精细化的分辨率查询,可以按照预览、拍照、录像用途查询支持的尺寸、格式和帧率信息。
  • 相机框架提供横向归一化坐标系[0, 0, 1, 1],所有与坐标相关的操作都基于这套坐标系完成。
  • 不同相机应用使用同一个摄像头场景下,相机框架具备优先级管控和互斥策略。

音视频编解码

  • 支持获取系统的音视频编解码,可以调用本模块的Native API接口,查询系统编解码能力的支持情况。
  • 支持音视频封装,可以调用本模块的Native API接口,完成音视频封装,即将音频、视频等编码后的媒体数据,按一定的格式存储到文件里。
  • 支持音视频解封装,可以调用本模块的Native API接口,完成音视频解封装,即从比特流数据中取出音频、视频等媒体帧数据。

事件通知

  • 支持应用设置静态事件订阅的开关。
  • 支持系统应用删除已发布的粘性事件。
  • 支持应用设置代表通知数量的数字角标。
  • 支持将通知设置为不可移除。
  • 支持选定通知并批量删除通知。
  • 应用内事件处理模块支持取消已按条件指定订阅的回调。

通信与连接

  • 支持NFC eSE卡模拟能力。
  • 支持Wi-Fi连接AP时使用随机MAC。
  • 支持Wi-Fi通过静态IP连接AP。

系统服务管理

  • 支持系统服务按需启动机制,例如外部调用、事件触发,同时支持在设备空闲时自动退出系统服务。
  • 系统服务配置格式优化,使用JSON格式替代XML格式。

电源

  • 增强系统电量等级查询及上报能力,支持电量等级的裁剪和定制。
  • 支持有线和无线充电类型上报,充电类型包括普通充电、快速充电和超级快速充电。
  • 增强运行锁的管控机制,明确系统电源状态和等级。
  • 提供唤醒源设置能力,支持通过电源键、鼠标、键盘、触控板、屏幕、手写笔、皮套等方式唤醒设备。
  • 提供休眠源设置能力,支持通过电源键、皮套、及超时自动休眠等方式设置设备休眠。
  • 提供电源管理、电池管理、显示亮度管理、耗电统计及热管理的开发指南。
  • 新增系统接口,支持设置系统立即进入睡眠状态。

多模输入

  • 支持将键盘输入设备的原始事件映射为归一化交互的意图事件。
  • 支持用户根据个人习惯设置触控板功能的个性化配置:
    • 支持两种触发模式映射鼠标左键功能:按压、轻点。
    • 支持两种触发模式映射鼠标右键功能:点按左/右下角、双指点按或轻点。
    • 跟踪速度:支持10档速度调节。
    • 支持两种交互模式映射鼠标滚轮功能:内容随手指移动方向、内容随手指反向移动。

主题框架

  • 锁屏管理服务:支持锁屏事件回调机制、支持静态/动态壁纸、支持查询锁屏时的业务状态。
  • 壁纸管理服务:支持自定义壁纸、支持锁屏/解锁操作、支持重置壁纸。

上传下载

新增接口,使用统一配置参数与接口完成上传下载业务任务创建执行,完善业务流程。

  • 支持任务信息持久化记录,查询方式灵活多样,任务信息更加全面,支持按过滤条件查询任务信息。
  • 增强安全隐私保护,增加系统管理接口权限。
  • 支持文件覆盖下载、分片上传下载、自定义token任务创建。
  • 支持服务按需启停,应用调用相关接口时启动,任务空闲时自动退出。

时间时区

  • 获取系统时间、系统启动时间提供同步接口。获取到的时间更精准,且提供较好的开发者体验。
  • 获取日期接口废弃,由ArkTS公共库new Date()接口替代。

输入法

新增同步接口,用于获取编辑框信息。

网络管理

  • 提供IPv6基础能力,包括DNS解析、应用通过http/https/socket联网,蜂窝/Wi-Fi/有线网络下均可支持IPv4/IPv6双栈接入。
  • 新增同步接口,针对@ohos.net.connection模块的高频接口,在原有异步接口基础上新增了对应的同步接口。

打印

提供打印服务功能,应用可以通过print接口触发打印业务。打印服务提供了系统默认的打印预览界面和任务管理界面,可以管理网络打印机设备连接。

安全

加解密算法库框架

  • 提供DSA数字签名算法能力。
  • 提供DSA、ECC、RSA密钥解析和密钥参数的获取能力。
  • 提供安全随机数生成算法类型的获取能力。
  • 提供SM4密钥的随机生成与转换,以及加密解密能力。
  • 提供SM3密钥的HMAC和HASH的能力。
  • 提供SM2密钥的随机生成与转换、签名及验签、以及加密解密能力。

密钥管理

  • 基于GID派生芯片级密钥的能力。
  • 支持国密密钥的安全导入。
  • 支持二次身份认证的细粒度访问控制。
  • 密钥管理签名支持签名NO HASH模式。
  • 密钥管理算法支持运算时指定密钥参数。
  • 支持HUKS密钥加密保护。
  • 支持KeyAttestation公钥证书中增加对密钥所属业务身份字段。
  • 支持标准HDI南向接口。

设备互信认证

支持在以下两种场景的设备间互信认证流程中生成假名,支持识别及标识设备的假名化名称。

  • 对同帐号登录的多个设备进行互信认证。
  • 对非同帐号的点对点互联的两个设备进行互信认证。

安全基础能力

支持小型设备查询其它设备的设备安全等级信息。

证书管理

支持外部指定RSA密钥签名摘要及填充签名和验签能力。

程序访问控制

  • 支持拉起应用粒度的权限管理界面。
  • 支持对系统应用的所属身份进行校验。
  • 优化权限管理的菜单呈现,拆分媒体和文件的权限组,相应权限的授权粒度更加精细化。

帐号

  • 支持帐号授权能力扩展和三方应用使用帐号授权能力。
  • 支持域帐号插件管理、域帐号管理、域帐号认证能力。

用户IAM

  • 提供统一身份认证控件,完善用户身份认证能力,方便系统开发者调用身份认证能力并且生态体验统一。
  • 统一身份认证控件提供了系统默认的用户身份认证界面,选择使用带控件的接口getUserAuthInstance, AuthParam指定认证参数,WidgetParam指定控件显示参数。为确保用户在系统上有统一的身份认证体验,建议开发者使用API version 10提供的新用户身份认证接口。

WebView

  • W3C能力补充完善:补充Web camera能力,以及bindContextMenu、Select、date类型input等H5标签能力。
  • 支持多渲染进程的进程拆分。
  • 支持文字、图片基础拖拽能力。
  • 支持WebRTC的视频会议能力(不含摄像头共享)。
  • 支持渲染进程独立SELinux标签,增强安全基础能力。
  • 支持识别Web组件渲染进程、显示线程和场景信息,并通知系统资源调度进行CPU管控。

内核

  • 支持HCK内核接口框架。
  • 支持Linux内核config多级分层配置。
  • 代码执行权限管控能力增强,新增了以下能力:
    • 支持安全内存机制。
    • 支持不同场景的代码执行权限管控策略。
    • 支持代码执行权限管控的全生命周期管理能力。
    • 支持解析可执行文件获取代码段信息。
    • 支持代码页的完整性保护能力。

驱动

  • 扩展设备驱动框架提供以下能力:
    • 扩展设备驱动框架基于“驱动扩展Ability(DriverExtensionAbility)”的能力,构建应用态扩展驱动包的开发、部署、安装、更新、卸载、运行能力,开放全流程生命周期管理能力。
    • 支持三方设备厂商开发的非标准协议的可插拔USB设备扩展驱动包,正常安装到OpenHarmony系统。插入USB设备后,能正常识别USB设备并与扩展驱动包匹配。
    • 支持三方应用通过扩展外部设备管理框架查询并绑定USB设备扩展驱动包,完成对扩展驱动包定制功能的操作。
  • 相机驱动提供以下能力:
    • 提供USB相机热插拔识别能力,支持开机启动检查识别和启动后热插拔识别。
    • 支持USB相机的预览、拍照、录像能力,提供相机格式、分辨率查询和配置能力。
  • 编解码驱动提供JPEG图片硬件解码加速能力,包括获取硬件解码信息,初始化/去初始化,解码,申请/释放buffer,提升用户浏览图片流畅度体验。
  • 传感器驱动提供温湿度传感器设备驱动能力,支持小型设备温湿度器件查询,器件使能/去使能,数据查询能力,丰富智能设备传感器能力。

泛Sensor

  • 支持对设备所支持的预置振动效果进行查询,可通过EffectId查询某个振动效果在设备上是否被支持。
  • 新增振动全停接口,无需传入对应的振动模式,可直接停止当前任意模式所设置的振动。
  • 新增播放振动配置文件接口,支持从文件播放自定义触觉的控制模式,播放执行结果依赖设备的振感器件能力。

测试

测试框架arkxtest

  • 支持自动化脚本测试套嵌套定义能力,提升开发者脚本设计灵活性。
  • 支持对象级断言能力,提升测试脚本断言能力。
  • 支持模拟中文输入、模拟鼠标操作、区域截图的能力。

自测试执行框架developer_test

  • 支持测试任务管理能力,开发者通过任务ID执行历史任务,提升开发者自测试效率。
  • 支持精准测试能力,支持子系统、部件、测试套、测试用例级测试用例筛选执行能力,提升开发者自测试效率。
  • 支持对接执行hats用例,丰富执行用例范围。
  • 支持稳定性测试能力,支持测试用例乱序执行。
  • 支持覆盖率统计能力,支持开发者本地一键式生成代码覆盖率数据。

稳定性测试工具wukong

支持旋转事件注入,增强注入能力。

性能调试开发工具SmartPerf Host

  • 支持Frame timeline抓取和展示能力,开发者可以抓取和展示卡顿丢帧检测的数据。
  • 支持Scheduling analysis抓取和展示能力,开发者可以抓取和展示CPU调度分析,线程调度分析相关数据。
  • 支持调用栈可视化和不同库函数调用占比展示能力,开发者可以抓取并通过饼图的方式展示调用栈及不同库函数的占比

性能数据采集SmartPerf Device

  • 支持应用冷热启、页面内切换、滑动帧率测试能力,开发者可以测试应用冷热启动时延、页面切换时延、滑动帧率测试能力。
  • 支持端侧测试数据对接云端看板能力,开发者可以将端侧测试报告上传云端查看或下载云端数据到本地。

配套关系

表1 版本软件和工具配套关系

软件版本备注
OpenHarmony4.0 ReleaseNA
Public SDKOhos_sdk_public 4.0.10.13 (API Version 10 Release)面向应用开发者提供,不包含需要使用系统权限的系统接口。通过DevEco Studio默认获取的SDK为Public SDK。
HUAWEI DevEco Studio(可选)4.0 ReleaseOpenHarmony应用开发推荐使用。获取方式:Windows(64-bit)SHA256校验码:2c88cf43e1ef6ba722aac31eccc8ef92f07a9b72e43a9c1df127017828a22137Mac(X86)SHA256校验码:25e491458eec50b4abddf5bed6aa85893801d70afbce02958f17bd904619405aMac(ARM)SHA256校验码:284cb01f7b819e0da1d4fcacbbbbe8017ba220b5e3b9b1d5e4cc59ea30456acc
HUAWEI DevEco Device Tool(可选)4.0 ReleaseOpenHarmony智能设备集成开发环境推荐使用。请点击这里获取。

源码获取

前提条件

  1. 注册码云gitee帐号。
  2. 注册码云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 git@gitee.com:openharmony/manifest.git -b OpenHarmony-4.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

从版本发布Tag节点获取源码。可获取与版本发布时完全一致的源码。

repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v4.0-Release --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-Release --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-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

从镜像站点获取

表2 获取源码路径

版本源码版本信息下载站点SHA256校验码软件包容量
全量代码(标准、轻量和小型系统)4.0 Release站点SHA256校验码27.6 GB
Hi3861解决方案(二进制)4.0 Release站点SHA256校验码27.3 MB
Hi3516解决方案-LiteOS(二进制)4.0 Release站点SHA256校验码302 MB
Hi3516解决方案-Linux(二进制)4.0 Release站点SHA256校验码194 MB
RK3568标准系统解决方案(二进制)4.0 Release站点SHA256校验码5.1 GB
标准系统Public SDK包(Mac)4.0.10.13站点SHA256校验码841 MB
标准系统Public SDK包(Mac-M1)4.0.10.13站点SHA256校验码797 MB
标准系统Public SDK包(Windows/Linux)4.0.10.13站点SHA256校验码2.0 GB

更新说明

本版本在OpenHarmony 4.0 Beta2的基础上有如下变更:

API变更

  • OpenHarmony 4.0 Release相比4.0 Beta2的API差异请点击这里查看。
  • OpenHarmony 4.0 Release相比3.2 Release的API差异请点击这里查看。

此外,从4.0 Beta2至今,有少量接口变更可能影响此前应用工程的兼容性或需要您关注,详细的变更说明请点击这里查看

芯片及开发板适配

芯片及开发板适配状态请参考SIG-Devboard信息。

Samples

表3 新增Samples

特性名称简介开发语言
文件管理选择并查看文档与媒体文件(APL等级需为system_basic)本示例展示了应用使用@ohos.file.picker、@ohos.multimedia.mediaLibrary、@ohos.file.fs 等接口,实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。ArkTS
一次开发,多端部署一多导航栏本示例展示了导航组件在不同设备形态下的样式。在小型/轻量级设备上,以tabs形式展示,内容、导航为上下样式布局,通过点击底部tabs切换内容;在标准设备上,以SideBarContainer形式展示,内容、导航为左右布局,通过点击侧边一二级菜单进行内容切换。本示例使用一次开发多端部署 中介绍的自适应布局能力和响应式布局能力进行多设备(或多窗口尺寸)适配,主要通过组件提供窗口断点事件,保证应用在不同设备或不同窗口尺寸下可以正常显示。ArkTS
卡片应用主动添加数据代理卡片到桌面(Full SDK)本示例主要展示了使用@ohos.app.form.formBindingData、@ohos.app.form.formProvider等接口,实现了在com.ohos.hag.famanager应用上,主动添加数据代理卡片到桌面的功能。ArkTS
安全安全控件类型的UI控件(Full SDK)本示例提供了安全控件类型的UI控件,支撑应用开发者集成安全控件做临时授权场景,当用户实际点击了某种类型的安全控件时,会对应用进行相应的临时授权,减少权限弹窗对用户的干扰,同时提供更小的授权范围。ArkTS

请访问Samples仓了解更多信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/264231.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈在线监测系统与配电能效平台在供水水厂的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201800 【摘要】针对自来水厂工艺老化资金有限的问题,设计水厂在线监测系统,采用安科瑞,对原水滤后水、出厂水进行采样分析,并通过基于组态的上位机系统实现水质数据的实时监测。该系统…

听GPT 讲Rust源代码--src/tools(23)

File: rust/src/tools/clippy/rustc_tools_util/src/lib.rs 在Rust源代码中,rust/src/tools/clippy/rustc_tools_util/src/lib.rs文件的作用是为Clippy提供了一些实用工具和辅助函数。 该文件中定义了VersionInfo结构体,它有三个字段,分别为m…

opencv入门到精通——图像上的算术运算

目录 目标 图像加法 图像融合 按位运算 目标 学习图像的几种算术运算,例如加法,减法,按位运算等。 您将学习以下功能:cv.add,cv.addWeighted等。 图像加法 您可以通过OpenCV函数cv.add()或仅通过numpy操作res …

账号多、用户咨询量大无法及时回复?「互动管理」助力高效经营!

随着互联网行业不断向纵深发展,内容形态与营销场景也更加多元化。越来越多的品牌跑步入场,深耕社媒营销,建立多平台营销矩阵,借助社媒平台的全域态势助力品牌增长。 据云略《2023品牌新媒体矩阵营销洞察报告》显示,目前…

win11下配置visual studio 2022+PCL1.13.1

第一部分:visual studio2022 安装 vs官网网址如下:https://visualstudio.microsoft.com/zh-hans/vs/ 第一步:我们打开官网链接,按如下操作点击下载免费版本的exe文件 第二步:打开下载目录下的安装文件进行安装&#…

选择移动订货系统源码的四大原因

移动订货系统需要选择源码支持的厂家,有以下四个原因,其中第四个是比较重要的,大家点个关注点个赞,我们接着往下看。 1.可自行定制:支持源码的移动订货系统可以根据企业的具体需求进行定制开发,满足企业特定…

vue3 登录页和路由表开发

目录 应用场景/背景描述: 开发流程: 详细开发流程: 总结/分析: 背景描述 在上一篇的基础上开始开发,element-plusvue3 上一篇说道详细迁移的过程,如下: 所以我这篇开始了第一步&#xff0c…

Ubuntu20.04.2 Mate 安装后基本初始设置要点笔记

序言: 有几款Linux比较稳定而且LTS长期支持,窗口也比较干净有特色,CentOS、Ubuntu、Debian、Mint 都是挺不错的OS,因为LTS,所以不像Rolling版那样改动频发,为长期应用提供了比较好的保障。下面是 Ubuntu20…

【Filament】绘制立方体

1 前言 本文主要介绍使用 Filament 绘制彩色立方体,读者如果对 Filament 不太熟悉,请回顾以下内容。 Filament环境搭建绘制三角形绘制矩形绘制圆形 2 绘制立方体 本文项目结构如下,完整代码资源 → Filament绘制立方体。 2.1 自定义基类 为…

【计算机系统结构实验】实验5 多核编程(OpenMP编程)

5.1 实验目的 加深对多核处理器架构的理解; 掌握使用OpenMP进行多线程编程的基本方法; 学习Windows和OpenEuler环境下多核编程的过程和time命令; 5.2 实验平台 需要多核处理器的计算机和微软编程工具Visual Studio 2012。Taishan服务器&…

Mac使用Vmware Fusion虚拟机配置静态ip地址

一、设置虚拟机的网络为NAT 二、修改虚拟机的网络适配器网络 1、查看虚拟机的网卡 cd /etc/sysconfig/network-scripts#有些系统显示的是ens33,ens160等等 #不同的系统和版本,都会有所不同 #Centos8中默认是ens160,在RedHat/Centos7则为ens33 2、查看网…

封装Detours用于Python中x64函数hook

Detours 代码仓库: https://github.com/microsoft/Detours x64写一个任意地址hook要比x86麻烦的多,所以这里直接封装框架来用于x64的hook。 Detours是微软发布的一个API hook框架,同时支持x86和x64,看文档说也支持ARM和ARM64的Windows。 …

【Linux笔记】网络操作命令详细介绍

🍎个人博客:个人主页 🏆个人专栏:Linux学习 ⛳️ 功不唐捐,玉汝于成 前言: 网络操作是Linux系统中常见的任务之一,它涵盖了测试网络连接、配置网络接口、显示网络统计信息以及远程登录和文件传…

STM32的以太网外设+PHY(LAN8720)使用详解(5):MAC及DMA配置

0 工具准备 1.野火 stm32f407霸天虎开发板 2.LAN8720数据手册 3.STM32F4xx中文参考手册1 MAC及DMA配置 1.1 使能ETH时钟 stm32的ETH外设挂载在AHB1总线上,位于RCC_AHB1ENR的bit25-bit27: 相关语句如下: RCC_AHB1PeriphClockCmd(RCC_AHB1…

WPF组合控件TreeView+DataGrid之DataGrid封装-粉丝专栏

wpf的功能非常强大,很多控件都是原生的,但是要使用TreeViewDataGrid的组合,就需要我们自己去封装实现。 我们需要的效果如图所示: 这2个图都是第三方控件自带的,并且都是收费使用。 现在我们就用原生的控件进行封装一…

Tekton

一. 概念 Tekton 官网 Github Tekton 是一种用于构建 CI/CD 管道的云原生解决方案,它由提供构建块的 Tekton Pipelines,Tekton 作为 Kubernetes 集群上的扩展安装和运行,包含一组 Kubernetes 自定义资源,这些资源定义了您可以为…

nodejs+vue+ElementUi资源互助共享平台的设计

后台:管理员功能有个人中心,用户管理,卖家管理,咨询师管理,萌宝信息管理,幼儿知识管理,保姆推荐管理,音频资源管理,二手商品管理,商品分类管理,资…

【CF闯关练习】—— 900分段

🌏博客主页:PH_modest的博客主页 🚩当前专栏:cf闯关练习 💌其他专栏: 🔴每日一题 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓…

GPTs | Actions应用案例

上篇文章说道,如何使用创建的GPTs通过API接口去获取外部的一些信息,然后把获取的外部信息返回给ChatGPT让它加工出来,回答你的问题,今天我们就来做一个通俗易懂的小案例,让大家来初步了解一下它的使用法! …

基于AE、VAE 和 VQ-VAE的图像生成

AE 是将数据映直接映射为数值code(确定的数值),主要用于图像压缩与还原VAE是先将数据映射为分布,再从分布中采样得到数值code,主要用于图像生成。AQ-VAE是在原始VAE基础上多了一步Vector Quantization矢量量化操作&…