- 博客(138)
- 收藏
- 关注
原创 ArkUI框架开发-ImageKnife渲染层重构
综上可知,此次重构渲染层,一共新增了6个基础能力,适配了IDE最新版特性自定义组件可链式调用通用属性和方法,并且采用适合的设计模式保留了自定义组件绘制部分的拓展能力。展示了部分常用场景下使用代码的方式,帮助开发者更快上手开发。最后在OpenHarmony不断推陈出新之际,三方库ImageKnife也应该激流勇进,不断地提升组件的实用性和适用性,为开发者创造一个良好的开发体验。
2025-04-24 14:36:09
976
原创 稀疏镜像在OpenHarmony上的应用
稀疏镜像数据格式:首先是sparse_header占用28byte,然后是12byte的chunk_header,同样这chunk_header的类型决定了后面跟着的数据,如果读到数据是0xCAC1意味着后面是本身的raw_data,如果是0xCAC3,则后面num为0,接着再0xCAC2意味着后面填充4byte的内容。本文介绍了OpenHarmony系统中实现稀疏镜像升级的方法,理解稀疏镜像原理及稀疏镜像还原方法可以快速在自己的系统中应用稀疏镜像升级,提高系统升级速度。增加稀疏镜像类声明及相关变量定义。
2025-04-23 21:46:33
919
原创 鸿蒙面试题:如何实现OpenHarmony的OTA升级?
随着设备系统日新月异,用户如何及时获取系统的更新,体验新版本带来的新的体验,以及提升系统的稳定性和安全性成为了每个厂商都面临的严峻问题。OTA(Over the Air)提供对设备远程升级的能力。升级子系统对用户屏蔽了底层芯片的差异,对外提供了统一的升级接口。基于接口进行二次开发后,可以让厂商的设备(如IP摄像头等)轻松支持远程升级能力。OpenHarmony OTA升级主要是搭建搜包服务器,制作升级包,了解OTA下载包管理,包解析,包管理的代码逻辑。同时,对于常见问题知道如何快速定位!
2025-04-23 20:17:02
894
原创 OpenHarmony版本的APP如何切换横竖屏?
在日常开发中,大多APP可能根据实际情况直接将APP的界面方向固定,或竖屏或横屏。但在使用过程中,我们还是会遇到横竖屏切换的功能需求,可能是通过物理重力感应触发,也有可能是用户手动触发。所以本文主要带大家了解在OpenAtom OpenHarmony(以下简称“OpenHarmony”)应用开发的过程中,如何在Stage模型和FA模型下使用对应的接口去完成横竖屏的切换。本文中OpenHarmony版本为3.2 Beta4,API版本为9。开发板为DAYU200。
2025-04-23 17:43:26
907
原创 带你玩转OpenHarmony AI-基于海思NNIE的AI能力自定义
相信大家从玩转OpenAtom OpenHarmony(简称“OpenHarmony”)AI系列专题的其他文章中,已经拓展了OpenHarmony AI在智慧出行、智慧办公等多场景下的AI自动检测、识别和判断的新体验,对于OpenHarmony平台上的AI开发有了一定认识。如果你已经有了一个AI创意,怎样训练出相关模型?怎样在你的OpenHarmony设备上部署你的AI模型?
2025-04-23 16:57:58
637
原创 OpenHarmony 实战开发——一文总结ACE代码框架
ACE_Engine框架是OpenAtom OpenHarmony(简称“OpenHarmony”)的UI开发框架,为开发者提供在进行应用UI开发时所必需的各种组件,以及定义这些组件的属性、样式、事件及方法,通过这些组件可以方便进行OpenHarmony上UI应用的开发。ACE_Engine提供的组件分为两种类型,即类Web开发范式类型和声明式开发范式类型。其中类Web开发范式中定义一个页面需要三个文件,html,css和js文件。
2025-04-23 15:11:10
627
原创 OpenHarmony系统使用gdb调试init
OpenAtom OpenHarmony(简称“OpenHarmony”)适配新的开发板时,启动流程init大概率会出现问题,其为内核直接拉起的第一个用户态进程,问题定位手段只能依赖代码走读和增加调试打印,初始化过程中系统崩溃的问题就更难定位了。如果能使用gdb调试init,会极大提高定位效率。本文将详细阐释二次启动的标准系统如何使用gdb调试init。1. 编译出带debug信息的调试版本将gdb打包到系统镜像中。
2025-04-23 13:49:24
1006
原创 玩转OpenHarmony社交场景:即时通讯平台
本样例是基于即时通讯(Instant messaging,简称IM)服务实现的OpenAtom OpenHarmony(简称“OpenHarmony”)应用,允许两人或多人使用互联网即时地传递文字、图片、文件、语音、emoji等讯息,可应用于各类聊天场景,为人们带来更加及时高效的通讯体验。此外即时通讯平台具备较高的定制化特点,适用于多种行业,客户可以根据自己的需求来定制,实现即时通讯的内部私有化。设备端:DAYU200(RK3568)开发板,OpenHarmony 3.1 release系统。
2025-04-22 22:22:24
951
原创 玩转OpenHarmony智能家居:如何实现开发版“碰一碰”设备控制
碰一碰”设备控制,依托NFC短距通信协议,通过碰一碰的交互方式,将OpenAtom OpenHarmony(简称“OpenHarmony”)标准系统设备和全场景设备连接起来,解决了应用与设备之间接续慢、传输难的问题,实现一碰拉起应用,为用户带来无缝切换的流畅体验。本文介绍了如何使用NFC实现OpenHarmony“碰一碰”设备控制。首先,需要基于A PN532模块驱动开发NFC智能感知的应用,实现设备间碰一碰发现的功能。
2025-04-22 21:21:20
503
原创 带你玩转OpenHarmony AI:打造智能语音子系统
AI时代,智者当先,判断一个终端设备是否智能,语音能力是必不可缺的。智能家居、智慧厨房、智能汽车等等,一切衣食住行都在往智能方向发展,那我们该如何在OpenAtom OpenHarmony(简称“OpenHarmony”)系统现有的能力下,搭建一套完整的语音子系统呢?本文介绍了博泰车联网的研发同学如何搭建一套属于OpenHarmony的语音子系统CarVoiceAssistant,并以车载交互的形态研发语音助理项目的过程。本样例包含两个关键能力库:QGWebRTCVAD,用作有效音频检测和截取;
2025-04-22 20:15:01
650
原创 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别
随着时代的进步,全民刷脸已经成为一种新型的生活方式,这也是全球科技进步的又一阶梯,人脸识别技术已经成为一种大趋势,无论在智慧出行、智能家居、智慧办公等场景均有较广泛的应用场景,本文介绍了基于SeetaFace2人脸识别引擎在OpenAtom OpenHarmony(以下简称“OpenHarmony”)上实现人脸识别的AI能力。
2025-04-22 16:11:46
913
原创 玩转OpenHarmony PID:教你打造两轮平衡车
此次为大家带来的是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统与PID控制算法相结合并落地的平衡车项目。PID控制算法是一种经典的,并被广泛应用在控制领域的算法。类似于这种:需要将某一个物理量保持稳定的场合,比如维持平衡,稳定温度、转速等,PID都会适用。在四轴飞行器,平衡小车、汽车定速巡航、温度控制器等场景均有应用。通过本样例的学习,开发者能够对OpenHarmony系统设备端开发有进一步的认识,还能够掌握PID控制算法的使用。
2025-04-22 15:19:18
531
原创 LiteOS-A内核中的procfs文件系统分析
procfs是类UNIX操作系统中进程文件系统(process file system)的缩写,主要用于通过内核访问进程信息和系统信息,以及可以修改内核参数改变系统行为。需要注意的是,procfs文件系统是一个虚拟文件系统,不存在硬盘当中,而是系统启动时动态生成的文件系统,储存在内存中。procfs文件系统通常挂载在/proc目录下。LiteOS-A是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统中使用的轻量系统内核,实现了procfs文件系统。
2025-04-22 13:32:37
684
原创 OpenHarmony 实战开发之MQTT协议解析
MQTT(Message Queuing Telemetry Transport消息队列遥测传输)是一种物联网协议,是一种客户端与服务端架构的发布/订阅模式的消息传输协议,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。目前它已广泛应用于车联网、智能家居、即时聊天应用和工业互联网等领域。本文从讲解MQTT它是什么?原理是什么?
2025-04-21 21:24:53
993
原创 OpenHarmony集成OCR三方库实现文字提取
Tesseract(Apache 2.0 License)是一个可以进行图像OCR识别的C++库,可以跨平台运行。本样例基于Tesseract库进行适配,使其可以运行在OpenAtom OpenHarmony(以下简称“OpenHarmony”)上,并新增N-API接口供上层应用调用,这样上层应用就可以使用Tesseract提供的相关功能。样例通过Native的方式将C++的三方库集成到应用中,通过N-API方式提供接口给上层应用调用。
2025-04-21 20:23:57
666
原创 OpenHarmony分布式音乐播放器适配了Stage模型
此次将现有的样例代码适配Stage模型,虽然整体代码修改量不大,但因为惯性思维以及API的变化,期间还是踩了不少坑。我已在OpenHarmony知识体系仓中更新了样例代码,欢迎开发者来参考和指正问题,建议新上手OpenHarmony的开发者可以直接学习使用新的Stage模型来开发应用。
2025-04-21 17:49:18
531
原创 浅谈OpenHarmony LiteOS-A内核之基础硬件——中断控制器GIC400
OpenAtom OpenHarmony(以下简称“OpenHarmony”)采用多内核架构,支持Linux内核的标准系统、LiteOS-A的小型系统、LiteOS-M的轻量系统。其中LiteOS-A要求设备具备一定的处理能力,对比LiteOS-M,LiteOS-A支持以下特性:(1)MMU支持:通过MMU支持内核态和用户态分离,支持虚拟单元;(2)支持独立进程:调度对象分别为进程、线程;(3)支持文件系统:包括虚拟文件和块设备等;(4)支持更复杂的IPC:包括LiteIPC等;
2025-04-21 16:29:04
617
原创 OpenHarmony轻量系统中内核资源主要管理方式
轻量系统中内核资源多采用数组与空闲链表相结合的方式。除了OpenHarmony轻量系统,其他嵌入式系统中这类的数据存储方式也比较常见。这种方式有如下几个突出的优点● 简单易懂● 读写效率高● 代码紧凑鸿蒙(HarmonyOS)
2025-04-21 15:25:32
997
原创 OpenHarmony轻松玩转GIF数据渲染
GIF解码我们使用了gifuct-js这个库,它是一个纯JavaScript的GIF解码库。首先我们需要了解基础用法。2.1 参考样例将一个文件ArrayBuffer转换为GIF解码后的帧数据数组。2.2 由于OpenHarmony的Image生成PixelMap需要的数据是BGRA数据,而2.1生成的frames所有数组中的patch字段则是RGBA数据,所以我们需要使用i++) {255 : 0//A。
2025-04-21 13:35:21
962
原创 在DAYU200上实现OpenHarmony跳转拨号界面
日常生活中,打电话是最常见的交流方式之一,那么如何在OpenAtom OpenHarmony(简称“OpenHarmony”)中进行电话服务相关的开发呢?今天我们可以一起来了解一下如何通过电话服务系统支持的API实现拨打电话的功能。本文通过一个按钮,实现了跳转拨号的功能。首先为按钮添加点击事件,其次导入需要的模块,调用hasVoiceCapability()接口获取当前设备呼叫能力,最终实现一键跳转到拨号界面。大家可以将这个功能扩展到自己的应用里。
2025-04-20 21:46:39
681
原创 OpenHarmony Liteos_A内核之iperf3移植心得
使用iperf3测试时必须将一台主机设置为客户端,一台主机设置为服务器。在Linux环境或者Windows或者OpenHarmony shell交互窗口输入iperf3 -h可以获取iperf3的帮助信息。本文从iperf3的工作原理、移植过程、使用方式、注意事项四个方面介绍了将iperf3移植到支持Liteos_A内核的OpenHarmony操作系统中的方法,
2025-04-20 20:10:28
801
原创 在DAYU200上实现OpenHarmony视频播放器
本文介绍了如何使用ArkUI框架提供的video组件,实现一个具有简易播放器。通过VideoController控制器来控制倍速、全屏、进度调节等功能。由于使用本地视频文件会影响App的包大小,所以通常我们的视频文件来源于网络地址,记得需要在config或者module.json对应的"abilities"中添加网络使用权限ohos.permission.INTERNET。本文介绍了如何使用ArkUI框架提供的video组件,实现一个具有视频播放、倍速控制、进度调节的播放器。
2025-04-20 19:01:36
602
原创 OpenHarmony 实战开发——应用HAP包签名
OpenAtom OpenHarmony(以下简称“OpenHarmony”)应用如果需要对外发布就必须要通过应用签名,DevEco Studio已提供自动签名功能加速应用开发,但自动签名仅限于debug开发,如需对外发布则必须完成release签名。在OpenHarmony中有AGC应用商店可以帮助开发者完成release签名,本文将介绍OpenHarmony应用签名方法的步骤,将使用OpenHarmony官方提供的签名工具对HAP进行签名。打开DevEco Studio工具,点击右上角Project S
2025-04-18 21:45:06
889
原创 OpenHarmony实战——Jchardet文件编码方式组件
Jchardet是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统的一款检测文本编码的组件。当上传一个文件时,组件可以检测并输出该文件中文本使用的编码方式。
2025-04-18 20:18:08
584
原创 OpenHarmony有氧拳击之应用端开发
继《OpenHarmony有氧拳击设备端的开发》后,本次为大家带来酷炫的应用端开发。如下,开发者伴随着音乐,律动出拳后,那开发板屡屡播放“挨打”效果,这究竟是怎么一回事?让我们一探背后原理。这款拳击游戏开始时会播放音乐,然后以随机速度下落“击拳方块”。当小哥哥在击拳区域内挥拳时,游戏会判断方块的位置,根据不同位置确定播放普通击中或完美击中的动画效果。从上图可以看到,游戏中“击拳方块”是自上而下匀速移动。这种简单控制通用属性进行动画变化的动画,便很适合使用属性动画来实现。
2025-04-18 17:29:37
818
原创 Ohos-MPChart——支持多种图表绘制的组件
Ohos-MPChart是OpenAtom OpenHarmony(简称“OpenHarmony”)系统显示各种图表视图的三方组件,用于声明式应用开发,提供了多种多样的图表视图,包括折线图、曲线图、柱形图、饼状图、K线图、雷达图、气泡图。适用于各种统计后的数据以视觉直观的方式呈现。
2025-04-18 16:18:00
696
原创 4步成功将三方库——speexdsp移植到OpenHarmony
/build.sh --product-name rk3568 --ccache --build-target=移植的三方库名称 --target-cpu arm64(ohos更新到3.2版本后,支持64位系统的编译,默认情况下编译的都是32位系统,在编译命令中添加–target-cpu arm64即可构建64位系统)③定义目标并加入组件:在编写gn文的时候,我们定义的动态库以及测试可执行程序都是我们的目标模块,在每个目标模块中添加对应的组件名后即将我们的目标模块加入该组件中。
2025-04-18 15:12:19
878
原创 鸿蒙面试题:如何利用OpenHarmony ArkUI的Canvas组件实现涂鸦功能?
ArkUI是一套UI开发框架,提供了开发者进行应用UI开发时所需具备的能力。随着OpenAtom OpenHarmony(以下简称“OpenHarmony”)不断更新迭代,ArkUI也提供了很多新的组件,例如Canvas、OffscreenCanvas、XComponent组件等。新增的功能可以帮助开发者开发出更流畅、更美观的应用。本篇文章将为大家分享如何通过Canvas组件实现涂鸦功能,用户可以选择空白画布或者简笔图进行自由绘画。
2025-04-18 13:33:32
764
原创 OpenHarmony 实战开发——PhotoView三方组件
PhotoView是OpenAtom OpenHarmony(简称“OpenHarmony”)系统的一款图片缩放及浏览的三方组件,用于声明式应用开发,支持图片缩放、平移、旋转等功能。通过本篇文章介绍,您对OpenHarmony PhotoView组件应该有了初步的了解。我们所有的源码和指导文档都已经开源,如果您对本篇文章内容以及所实现的Demo感兴趣,可以根据本篇文章介绍自行下载OpenHarmony PhotoView源码进行研究和使用。同时也欢迎更多开发者与我们共享开发成果,分享技术解读与经验心得。
2025-04-17 22:08:03
499
原创 Hi3861 通过UART串口协议与其它开发板进行通信
注:在接线时,要将tx与另一个开发板的rx连接,因为在UART串口协议中,通过TX(发送引脚)和RX(接收引脚)进行数据传输与接收,需要将TX发送引脚与另一开发板的RX接收引脚相连接,故需要交叉连接以保证两块开发板的正常通信。当hi3861开发板接收到其他开发板传输的数据后,可以通过串口打印出来,对此可以写一个解析命令,对发送的字符串,执行相应的命令。3、选择典型点击下一步,选择下载的Ubuntu,点击下一步,创建完成后虚拟机自动安装Ubuntu。2、 安装vm完成后打开vm,点击创建新的虚拟机。
2025-04-17 21:31:57
886
原创 OpenHarmony 实战开发——内核IPC机制数据结构解析
OpenAtom OpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。作为面向全场景、全连接、全智能的分布式泛终端操作系统,OpenHarmony通过将各类不同终端设备的能力进行整合,实现硬件互助、资源共享,为用户提供流畅的全场景体验。
2025-04-17 20:26:28
726
原创 OpenHarmony Camera源码分析
当前,开源在科技进步和产业发展中发挥着越来越重要的作用,OpenAtom OpenHarmony(简称“OpenHarmony”)赋予了开发者孕育创新的种子,也为数字化产业发展开辟了一片土壤。深开鸿是开源的坚定践行者,基于OpenHarmony聚焦智能物联网操作系统(KaihongOS)技术研发与持续创新。OpenHarmony Camera是多媒体子系统中的一个重要模块,Camera提供了OpenHarmony相机的预览、拍照和录像等功能。
2025-04-17 16:24:20
763
原创 OpenHarmony中的HDF单链表及其迭代器
在OpenHarmony的HDF软件模块中,单链表定义在hdf_slist.h中。其示意图如下:如上图所述,每个节点都是HdfSListNode,上图共有5个节点,每个节点内部有一个next成员,其值为下一个节点在内存中的地址。由于可以通过这个地址找到下一个节点,所以在图里面用红色右箭头来描述这个关系。整体来看,从1号节点可以通过next成员依次找到后面4个节点,从图形看,就是一个逻辑上的链关系,我们把这种结构称为链表。
2025-04-17 15:07:30
838
原创 OpenHarmony实战开发——宿舍全屋智能开发指南
以上案例实质上还是在使用现有的解决方案、数字管家的服务器实现,甚至连开门的操作UI都是台灯的,虽然这个可以在数字管家修改图标,但本质还是没有变化,本教程目的在于记录数字管家碰一碰的开发入门,为后期再添加自己的解决方案、服务器作为参考。
2025-04-17 13:40:45
844
原创 OpenHarmony实战开发——网络组件axios可以在OpenHarmony上使用了
上古浏览器页面在向服务器请求数据时,因为返回的是整个页面的数据,页面都会强制刷新一下,这对于用户来讲并不是很友好。并且我们只是需要修改页面的部分数据,但是从服务器端发送的却是整个页面的数据,十分消耗网络资源。而我们只是需要刷新页面的部分数据,并不希望刷新整个页面。于是一种新的技术,异步网络请求Ajax(Asynchronous JavaScript and XML)随之产生,它能与后台服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。
2025-04-16 21:16:38
965
原创 如何通过OpenHarmony的音频模块实现录音变速功能?
OpenAtom OpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会孵化及运营的开源项目,是面向全场景、全连接、全智能时代的智能物联网操作系统。多媒体子系统是OpenHarmony系统中的核心子系统,为系统提供了相机、音频和视频等多媒体功能。多媒体子系统的音频模块、音频录音功能可以提供两套接口,一是由ohos.multimedia.media提供的AudioRecorder接口,能够直接设置录音保存的文件路径,在录制结束以后自动生成对应的录音文件,代码编写比较简单;
2025-04-16 20:17:07
704
原创 如何在OpenHarmony上使用SeetaFace2人脸识别库?
相信大部分同学们都已了解或接触过OpenAtom OpenHarmony(以下简称“OpenHarmony”)了,但你一定没在OpenHarmony上实现过人脸识别功能,跟着本文带你快速在OpenHarmony标准设备上基于SeetaFace2和OpenCV实现人脸识别。
2025-04-16 17:13:46
661
原创 OpenHarmony实战开发——有氧拳击之设备端开发
在一个风和日丽,阳光明媚的下午,码农们都像往常一样正在专注地码代码。突然前面的小哥哥站起来,手握开发板,来回出拳。这是怎么回事?原来这是一款拳击互动游戏,本文将带你一同解开其中的奥秘。开发者从中不仅能体验到学习知识的愉悦,还能享受到健身的乐趣。依托OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Beta1操作系统,样例分为应用端和设备端两部分。本文主要介绍设备端的实现,后续会分享应用端的开发。设备端:采用Hi3861开发板,处理加速度计传感器数据。
2025-04-16 16:13:23
596
原创 OpenHarmony轻量设备Hi3861芯片开发板启动流程分析
Boot是操作系统启动之前的软件,通用叫法是bootloader,Hi3861的boot分为4部分:RomBoot、FlashBoot、LoaderBoot、 CommonBoot,如图2-1所示。图2-1 Hi3861 Boot启动流程● RomBoot功能包括:加载LoaderBoot到RAM,进一步利用LoaderBoot下载镜像到Flash、烧写 EFUSE, 校验并引导FlashBoot。
2025-04-16 14:50:45
978
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人