OpenHarmony 4.1 Release版本正式发布,邀您体验

        春风轻拂的4月,OpenAtom OpenHarmony(以下简称“OpenHarmony”)4.1 Release版本如期而至开发套件同步升级到API 11 Release。

        相比4.0 Release版本,4.1 Release版本应用开发的开放能力以全新的Kit维度呈现,提供给开发者更清晰的逻辑和场景化视角;新增4000多个API,应用开发能力更加丰富;ArkUI组件开放性和动效能力得到进一步增强;Web能力持续补齐,便于开发者利用Web能力快速构建应用;分布式能力进一步增强了组网稳定性、连接安全性等;媒体支持更丰富的编码更精细的播控能力等等。期待开发者积极体验新特性并给我们提出宝贵意见。

        本文仅描述新版本的部分新特性,请您参考OpenHarmony 4.1 Release Notes了解版本所有新增及增强功能。

OpenHarmony 4.1 Release Notes

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

ArkUI

  1. 支持自定义组件扩展需求:框架提供基础组件的Modifier,开发者可继承实现自定义的Modifier,然后通过Modifier实现链式调用和参数传递。Modifier和自定义组件配合使用解决自定义组件传参的问题。Modifier机制支持单点属性更新。
  2. Canvas支持图形GraphicContext,提升自绘制能力和性能。
  3. 文本类控制支持属性字符串。
  4. 控件接入AI增强能力,包括:Image、Video、XComponent和Canvas控件支持实体识别;文本内容信息识别支持提取时间(日程)、地理位置。
  5. 状态管理能力优化:
    1. 新增接口在保留当前接口基本功能的情况下,无需调用aboutToBeDeleted进行解注册,且不会导致内存泄漏问题;
    2. @StorageLink、@StorageProp、@LocalStorageLink、@LocalStorageProp支持undefined、null和联合类型;
    3. private的普通变量或状态变量处理策略增强;
    4. 支持深度观察,可对类中的属性进行观察。
  6. 弹窗类组件自定义能力增强:
    1. 通过调用promptAction提供的接口,支持自定义显示/退出动效;
    2. 配置弹框样式:设置背景色、圆角、宽度、高度、边框(颜色、宽度)、阴影(偏移、圆角、透明度、颜色)、气泡箭头大小设置;
    3. 显示/退出交互:所有弹框将要弹出/退出时提供回调,以及对是否允许弹框退出提供回调。
  7. 滑动场景,优化单帧平均耗时。

Web

  1. 新增支持Web的无障碍能力。
  2. 新增页面跳转事件上报接口。
  3. 支持应用及网络代理、应用证书管理。
  4. 支持同层渲染能力(仅限xcomponent、button等部分组件)。
  5. 组件支持DOM构建完成后执行提前被注入的JS脚本。
  6. 开放RegisterJavaScriptProxy、RunJavaScript能力的C API接口。
  7. 资源拦截特性支持设置为ArrayBuffer数据类型。

图形图像及窗口

图形图像

  1. 系统支持可变帧率,提供API供业务接入。
  2. 支持HDR Vivid视频的渲染与显示。
  3. 图形NDK能力增强,支持为NativeImage添加OnFrameAvailableListener回调,支持为NativeWindow设置色域,新增支持opengl扩展接口,Drawing 能力进一步完善等。
  4. 支持录屏不录制特定窗口,以及隐私窗口录制成全黑帧画面的能力。
  5. 支持调整系统分辨率。
  6. 支持系统根据动画调节帧率,支持开发者调节应用业务帧率。
  7. 动效能力增强,支持硬件挖空,屏幕圆角,Navigation导航转场动画支持共享元素等。
  8. 图形渲染管线支持vulkan后端。
  9. 图形接入Drawing接口。
  10. nativeWindow支持设置metadata,适配HDR视频场景动态元数据随帧传递。

窗口

  1. 提供Window stage可交互状态通知。
  2. 提供全局搜索窗口类型。

安全

  1. 证书管理:支持开放用户ca证书路径、支持证书链校验和吊销检查能力、支持证书链构造的能力。
  2. 关键资产存储:针对应用开发者需要在本地加密存储关键敏感的短数据(如用户的账号密码、银行卡号等)诉求,系统提供关键资产加密存储的能力,以及相应的安全访问控制能力,包括:
    1. 支持关键资产写入,读取。
    2. 支持关键资产更新。
    3. 支持关键资产安全销毁。
    4. 支持关键资产访问控制。

程序访问控制

权限管理

  1. 支持在UIExtensionAbility界面上拉起权限弹窗。
  2. 权限使用记录增加锁屏状态记录。
  3. 支持应用在使用期间弹出允许权限的选项。

DLP权限管理服务

  1. 支持以时间维度对受控文件进行访问控制。
  2. 支持文档创建者在任意场景下可离线打开文档。
  3. 支持帐号未登录状态下,弹框进行帐号登录验证。
  4. 提供沙箱应用读取原始应用数据的机制和通路。

分布式数据管理

  1. UDMF支持数据类型标准化定义与描述、支持标准数据类型查询、支持数据访问授权与管理、支持应用自定义数据类型。
  2. 新增限制数据不打分类分级标签则不允许跨设备同步。
  3. preferences支持uint8Array格式数据流的修改、查询和持久化。
  4. RDB支持在应用指定的沙箱路径子目录下创建数据库。

ArkCompiler

  1. 动态import能力支持变量作为参数。
  2. 提供运行时对类方法插桩和替换的API。
  3. 支持用“#”声明类的私有成员。
  4. 支持Sendable类的跨线程序列化传输。
  5. 支持Ecmascript2022规范。

测试框架

自动化测试框架arkxtest

  1. 支持模拟鼠标滚轮滑动、滑动左右键双击等模拟UI操作能力。
  2. 支持Shell命令方式进行UI模拟操作能力,支持点击、滑动、双击、文本输入等常用操作能力。
  3. 提升UI测试框架查找控件信息效率。
  4. 增强dump信息内容,新增文字大小、文字颜色信息。
  5. 增加异步监听能力,监听系统弹框事件,获取其文本信息并返回。

测试调度框架xDevice

  1. 新增单次测试过程中自动复测失败项能力,并支持配置复测次数,最终生成一份测试报告。
  2. 优化测试报告,统一轻量系统、小型系统、标准系统的测试报告头信息。
  3. 新增支持测试套测试资源本地不存在时,可配置远程下载地址。

稳定性测试工具WuKong

  1. 新增page页面和Ability页面的配置能力,支持在测试过程中配置页面屏蔽,提升测试效率。
  2. 新增单一场景压测能力,支持针对某一控件循环注入操作事件,并支持配置循环次数。

性能开发工具SmartPerf Host

  1. 新增支持hilog、hisysevent的采集、分析和展示。
  2. 新增支持hiperf event count的分析和展示。
  3. 提升抓取trace的能力,动态可暂停可调试。
  4. 新增支持线程唤醒关系树的快速跟踪。

性能测试工具 SmartPerf Device

  1. 优化已有抓取内存、CPU数据的能力。
  2. 新增启动停止采集的命令。
  3. 新增定时获取截图、分辨率和刷新率的采集能力。

        伴随OpenHarmony能力的不断提升和生态的持续扩展,我们见证了数以千计的开发者参与到OpenHarmony的开发和实践中,是大家的支持和贡献,加速了OpenHarmony生态的繁荣发展。未来,我们也诚挚期待与更多的共建单位和开发者一起携手并进,共赢未来。

### OpenHarmony 4.1 操作系统中摄像头开发概述 OpenHarmony Camera 是多媒体子系统中的重要模块,提供了相机的预览、拍照和录像等功能[^2]。对于基于标准系统4.1版本rrk3568设备上的OV5648和OV8858摄像头开发而言,理解其API使用方法至关重要。 #### 初始化与配置 为了初始化并配置摄像机资源,开发者需遵循如下指南: - **创建Camera对象实例** ```cpp #include "camera.h" // 创建CameraManager单例管理类来获取可用的Camera设备列表. std::shared_ptr<ICameraService> cameraService = CameraStandard::CreateCameraService(); if (cameraService != nullptr) { std::vector<std::string> ids; int ret = cameraService->GetCameraIds(ids); } ``` 这段代码展示了如何利用`CameraStandard::CreateCameraService()`函数获得一个指向`ICameraService`接口类型的指针,并通过它调用`GetCameraIds`方法枚举当前连接的所有物理摄像单元[^5]。 - **打开指定ID所代表的具体硬件实体** ```cpp std::shared_ptr<ICameraDeviceCallback> callback(new MyCameraDeviceCallback()); std::shared_ptr<ICameraDevice> device; ret = cameraService->OpenCamera(id, callback, device); ``` 这里定义了一个自定义回调处理程序用于接收来自底层驱动的通知事件;接着尝试开启由变量`id`标识的那个特定装置实例。 #### 设置参数与启动流会话 一旦成功打开了目标摄影器材之后,则可继续设置拍摄模式以及图像质量等相关属性值,并建立媒体流水线以准备实际的数据采集活动。 - **构建CaptureRequest结构体并向其中填充必要的元数据项** ```cpp std::unique_ptr<CaptureRequest> request(new CaptureRequest()); request->SetTemplateType(TEMPLATE_PREVIEW); // 或者 TEMPLATE_STILL_CAPTURE / TEMPLATE_RECORD ... device->ConstructDefaultRequestSettings(request.get(), settingsKeys); ``` 上述片段说明了怎样构造一个新的捕获请求模板,并将其关联至预览/静态照片抓拍/录制三种操作情景之一上。随后借助于`settingsKeys`集合传递一组键名字符串数组给定具体的调节选项。 - **提交已配置完毕的要求包进入队列等待执行** ```cpp std::list<CaptureRequest*> requests{request.release()}; device->ProcessCaptureRequests(requests, captureResultCb); ``` 最终一步就是把之前精心组装好的指令序列递交出去供后续阶段进一步解析处理。注意这里的`captureResultCb`应当是指向实现了相应协议接口的对象实例化后的引用,以便及时反馈每次事务的结果状态变化情况。 #### 数据流转机制剖析 考虑到性能优化的需求,在设计上传输路径时特别关注到了几个关键环节:从服务端到客户端之间的交互过程可能涉及到共享内存DMA描述符或是简单的缓冲区复制动作;而面向用户界面展示部分则倾向于采用句柄传递方式减少不必要的开销;至于远程传输场景下同样适用类似的策略选择依据实际情况灵活调整。 ### 实际应用场景举例 假设现在要实现一个简易的应用案例——实时显示前置镜头的画面内容。那么按照前述介绍过的步骤依次完成各项准备工作以后就可以轻松达成目的啦! ```cpp void StartPreview() { auto previewSurface = CreateSurfaceForDisplay(); // 自行补充该辅助函数逻辑 Surface* surfaces[] = {previewSurface}; size_t numSurfaces = sizeof(surfaces)/sizeof(Surface*); StreamConfiguration config; config.SetStreamUseCase(StreamUseCase::PREVIEW); config.AddOutputSurface(previewSurface); device->ConfigureStreams(config); } StartPreview(); ``` 以上便是有关OpenHarmony 4.1操作系统环境下开展摄像头相关项目的入门指导资料汇总。希望这些信息能为广大爱好者们提供更多有价值的参考资料支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值