
HarmonyOS Next
文章平均质量分 90
HarmonyOS Next开发知识
轻口味
十年的工作经验,精通C、C++、Python、JAVA、JS、GO等多种编程语言,擅长音视频、即时通讯、人工智能等领域的技术实现与系统设计。在音视频技术、实时通讯系统、AI算法等方面有深入的研究与实践,参与过多个大规模项目的开发与优化。欢迎合作与交流,私信我一起探讨技术发展与项目经验!
展开
-
HarmonyOS Next IM实战: Worker线程中模块未初始化异常处理
摘要 本文探讨了在HarmonyOS开发即时通讯IM SDK时遇到的主线程卡顿问题及解决方案。由于原设计将所有网络请求和数据库操作放在主线程,导致消息接收延迟和页面卡顿。经过对比TaskPool和Worker两种并发模型后,选择了基于Actor模型的Worker方案来实现守护线程机制。文章详细介绍了Worker的实现方法,包括创建模板、消息传递机制等。最后分析了一个由模块循环依赖导致的初始化崩溃问题,指出需要在设计时避免模块间的循环引用。该方案有效提升了IM SDK的性能表现,为HarmonyOS应用的多线原创 2025-06-02 13:48:42 · 1924 阅读 · 6 评论 -
HarmonyOS Next IM实战: Worker线程中模块未初始化异常处理
在开发即时通讯IM SDK过程中,用户反馈消息接收延迟和页面卡顿问题,主要原因是网络请求和数据库操作等任务全部在主线程执行,导致IO操作阻塞UI线程。为解决这一问题,考虑采用多线程机制,选择Worker实现守护线程。Worker基于Actor并发模型,线程间内存隔离,通过消息传递通信,避免了线程竞争和锁的复杂性。通过创建MsgSyncWorker,实现了消息的异步拉取和推送,减少了主线程的负担。然而,在Worker中初始化数据库时遇到了模块未初始化的错误,原因是模块间循环依赖导致变量未初始化。需进一步优化模原创 2025-05-19 19:54:17 · 2128 阅读 · 14 评论 -
HarmonyOS Next 用户通知服务Notification Kit介绍与实战
Notification Kit(用户通知服务)是HarmonyOS为开发者提供的本地通知发布工具,允许应用在客户端直接向用户推送通知。通知类型包括铃声、震动、横幅、锁屏、息屏、通知栏提醒等,类似于Android的通知栏功能。开发者可以通过Notification Kit创建通知,并在状态栏中显示图标,用户可通过下拉通知栏查看详情或执行操作。此外,Notification Kit还支持提醒式通知样式。 与Push Kit和Call Kit不同,Notification Kit允许开发者自定义通知,而Push原创 2025-05-12 07:41:34 · 1536 阅读 · 24 评论 -
Openharmony 5.1.0 Release发布,一文带你了解更新内容
OpenHarmony 5.1.0 Release版本正式推出API 18。进一步增强ArkUI,提供更丰富的组件属性设置,支持更多精致动效,持续补充组件通过C API调用的能力;进一步增强媒体能力,提供更丰富的编解码能力、播控能力、媒体会话管理能力;进一步丰富了应用启动的细节设置能力;进一步增强分布式数据管理的UDMF、RDB的数据处理能力;进一步完善了标准Web能力。原创 2025-05-06 08:15:00 · 694 阅读 · 0 评论 -
HarmonyOS Next 5.0.5 Beta1 更新说明及适配指南
2025年4月27日,HarmonyOS 5.0.5 Beta1在此前发布的HarmonyOS 5.0.4 Release的基础上,进一步丰富了ArkUI的组件能力,完善了应用在窗口化场景下的管理能力。原创 2025-04-29 07:49:30 · 531 阅读 · 0 评论 -
HarmonyOS Next 自定义图形Canvas实践
离屏绘制是指将需要绘制的内容先绘制在缓存区,再将其转换成图片,一次性绘制到Canvas上,加快了绘制速度。通过transferToImageBitmap方法将离屏画布最近渲染的图像创建为一个ImageBitmap对象。通过CanvasRenderingContext2D对象的transferFromImageBitmap方法显示给定的ImageBitmap对象。原创 2025-04-07 16:23:53 · 1187 阅读 · 0 评论 -
HarmonyOS Next 计时器组件详解
在日常UI开发中,经常会用到计时控件,比如播放视频是的时间进度显示以及音视频通话时显示的通话时长,都需要用到正计时的计时控件。还有些场景会用到倒计时的计时控件,设置一个最大时间,开始倒计时。在Android中我们一般使用TextView,配合Handler来更新TextView实现计时效果。HarmonyOS Next提供了TextTimer组件来实现计时效果。下面先介绍TextTimer能力。TextTimer 是一个通过文本显示计时信息并控制其计时器状态的组件。原创 2025-02-24 07:27:36 · 1380 阅读 · 0 评论 -
一文搞定 HarmonyOS Next 系统资源使用方法
但有时候我们需要写一些Demo类,或者示例类程序,需要用到一些图标、颜色之类的资源,这时候可能没有设计资源供我们使用,一般做法可能是找三方的设计网站自己去找,不过鸿蒙上已经给我们内置了很多设计图标,一方面可以减少我们找的成本,另一方面使用系统提供的图标也可以减少我们包体积的大小。HarmonyOS Next提供了 SymbolGlyph 组件,是个显示图标小符号的组件。下面是设置渲染和动效策略,该示例通过renderingStrategy、effectStrategy属性展示了不同的渲染和动效策略。原创 2025-02-14 22:24:08 · 831 阅读 · 3 评论 -
ArkTs对象变量内访问外部类方法和属性
/onclick中访问hasCreateSubWindow和方法CreateSubWindow}else{问题是在TypeScript中,对象字面量的方法如何访问外部类的私有属性和方法。具体来说就是,代码中有一个类,其中定义了一个对象,该对象实现了接口,并有一个onClick方法。在onClick方法内部,试图访问的私有属性以及方法和,但是因为this在onClick方法中指向的是对象,而不是类的实例,而并没有属性或方法,因此会抛出错误。。如何解决呢?onClick。原创 2025-02-08 19:07:42 · 225 阅读 · 2 评论 -
方舟字节码原理剖析:架构、特性与实践应用
在当今软件行业高速发展的大背景下,应用程序的性能、开发效率以及跨平台兼容性成为了开发者们关注的核心要素。编译器作为软件开发流程中的关键工具,其性能和特性直接影响着软件的质量和开发周期。华为推出的方舟编译器正是为了满足这些需求而诞生的创新成果。方舟字节码(Ark Bytecode)作为方舟编译器的核心产物,在整个编译和运行过程中扮演着至关重要的角色。它不仅是代码从高级语言到机器可执行形式的中间桥梁,还承载着诸多优化和创新的设计理念。原创 2025-02-07 16:08:32 · 1228 阅读 · 1 评论 -
HarmonyOS Next 方舟字节码文件格式介绍
在开发中,可读的编程语言要编译成二进制的字节码格式才能被机器识别。在HarmonyOS Next开发中,arkts会编译成方舟字节码。方舟字节码长什么样呢?我们以一个demo编译出的abc文件:二进制就是长这样,怎么去理解呢?就需要理解方舟字节码的文件格式。原创 2025-02-07 15:52:37 · 905 阅读 · 2 评论 -
HarmonyOS Next ArkTS内存泄露分析
内存泄漏是一个常见的问题,它会导致应用性能下降、崩溃甚至用户设备的内存不足。原创 2025-01-24 12:24:21 · 1615 阅读 · 2 评论 -
HarmonyOS Next 应用UI生成工具介绍
UI Generator用于快速生成可编译、可运行的HarmonyOS UI工程,支持基于已有UI布局文件(XML),快速生成对应的HarmonyOS UI代码,其中包含HarmonyOS基础工程、页面布局、组件及属性和资源文件等。需要使用使用DevEco Studio 5.0.3.700及以上版本。虽然有些自定义组件或者属性无法直接转换,但是对于复杂页面,帮助我们生成大的框架和大部分代码也可以极大的提升我们开发效率,推荐大家尝试。原创 2025-01-22 13:29:11 · 1577 阅读 · 2 评论 -
HarmonyOS Next 最强AI智能辅助编程工具 CodeGenie介绍
CodeGenie目前提供了鸿蒙应用、万能卡片和代码生成三个功能。原创 2025-01-21 22:42:54 · 1886 阅读 · 2 评论 -
一文看懂HarmonyOS在Openharmony基础上做了什么
本文介绍了HarmonyOS在OpenHarmony基础上提供的应用服务和AI服务,并且介绍了OpenHarmony架构等。原创 2025-01-13 08:29:09 · 1834 阅读 · 2 评论 -
拥抱HarmonyOS之高效使用DevEco
像AndroidStudio等我们想在创建文件时自动生成作者,时间等注释,我们只需要填写这个文件是干什么的。打开DevEco偏好设置的 File and Code Template标签,里面Files和Includes可以进行自定设置File里面可以通过#parse(“ArkTS Header”)引入Includes中自定义的部分使用#parse指令,你可以在文件模板(Files选项卡)中包含要包含的代码片段。一个模板可以被多个文件模板共享。原创 2025-01-10 08:33:11 · 1189 阅读 · 0 评论 -
HarmonyOS Next 日志工具介绍
使用 hilog 和 hilogtool 可以帮助开发者更好地理解和调试应用程序,尤其是在遇到问题时,它们提供了一个查看过去事件和错误的方式。然而,由于这些工具和系统是特定于 Huawei 的 HarmonyOS 平台,因此可能不适用于其他操作系统或平台。如果你正在使用 HarmonyOS 开发应用程序,并且需要记录和分析日志信息,了解 hilog 和 hilogtool 将非常有帮助。如果你在其他平台上工作,你可能需要寻找类似的工具和方法来管理你的日志。原创 2025-01-09 17:50:29 · 1812 阅读 · 1 评论 -
一文搞懂HarmonyOS Next中的Ability
AbilityStage是HAP的运行时类。AbilityStage类提供在HAP加载的时候,通知开发者,可以在此进行该HAP的初始化(如资源预加载,线程创建等)能力。AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。原创 2025-01-08 09:56:50 · 1756 阅读 · 2 评论 -
HarmonyOS Next 日志知识一文搞定
本文介绍了HarmonyOS 系统提供的console和hilog系统日志框架,详细介绍了其中API,最后介绍了在实际开发中的日志使用方式和持久化日志的思路。原创 2025-01-06 10:13:21 · 1734 阅读 · 0 评论 -
HarmonyOS Next NAPI异步调用入门
HarmonyOS Next基于OpenHarmony Napi 标准系统异步接口实现支持Callback方式和Promise方式。创建异步work:napi_create_async_work()参数说明:【in】env: 传入接口调用者的环境,包含js引擎等,由框架提供,默认情况下直接传入即可。【in】async_resource: 可选项,关联async_hooks。【in】async_resource_name: 异步资源标识符,主要用于async_hooks API暴露断言诊断信息。原创 2025-01-04 09:50:08 · 1778 阅读 · 2 评论 -
HarmonyOS 布局实践1 常用TitleBar实现
本文以常用Titlebar控件的布局方式介绍了HarmonyOS常用的相对布局RelativeContainer的特性和属性。并且介绍了Flex与Row布局的一个自适应子节点能力的区别:Row可以自适应子节点宽度,Flex不可以,会撑满整个父布局宽度。原创 2024-12-31 15:40:08 · 1154 阅读 · 0 评论 -
一文带你了解HarmonyOS Next资源及访问
资源目录:包含base目录、限定词目录、rawfile目录、resfile目录资源组目录:包含element、media、profile工程中资源结构如下图所示:base目录:base目录是默认存在的目录,二级子目录element用于存放字符串、颜色、布尔值等基础元素,media、profile存放媒体、动画、布局等资源文件。目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。通过指定资源类型(type)和资源名称(name)访问。类似于Android的res目录。原创 2024-12-30 21:48:17 · 1525 阅读 · 0 评论 -
一文搞懂HarmonyOS Next中各种Context
本文详细介绍了HarmonyOS Next中各种Context直接关系与提供的属性和方法。原创 2024-12-23 08:24:38 · 2696 阅读 · 0 评论 -
HarmonyOS Next开发工具DevEco Studio介绍:ASan与TSan检测根治你的C++恐惧症
很多开发者面对C++都很犯怵,其中主要的一块就是内存操作。不合理的内存操作,比如数组越界、内存泄露、释放已释放的地址,可能会引起程序性能问题:内存消耗大,卡顿,更严重的会导致程序出现崩溃。当应用运行发生错误使应用进程终止时,应用将会抛出错误日志以通知应用崩溃的原因,开发者可通过查看错误日志分析应用崩溃的原因及引起崩溃的代码位置。App FreezeCPP CrashJS CrashASanTSan其他工具我们日常使用较多,不做过多介绍。原创 2024-12-18 23:08:57 · 1692 阅读 · 0 评论 -
掌握DevEco Studio这一功能,高效实现ArkTS与C++胶水代码
本文主要介绍了Native C++代码的实现步骤,以及DevEco Studio IDE提供的跨语言代码编辑工具,实现只写函数声明一键帮助我们生成对应初始化注册方法与C++实现方法,希望大家多多体验,通过工具提升我们开发效率。原创 2024-12-16 17:06:32 · 1198 阅读 · 0 评论 -
HarmonyOS 音视频之音频采集实战
OHAudio分别介绍这两种语言的API。本文介绍了HarmonyOS 提供的两种音频采集方式:TS层的AudioCapture和C++层的OHAudio,并以OHAudio接口实现了实时音频采集功能。原创 2024-08-05 16:39:23 · 2219 阅读 · 0 评论 -
HarmonyOS 私仓搭建实战
HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。HSP(Harmony Shared Package)是动态共享包,静态共享包会打包到每个依赖的HAP里,这样导致包体积较大,且有重复多份公共资源和代码重复打包到应用中,动态共享包可以让多个HAP能够共享同一公共资源代码。原创 2024-08-05 11:42:49 · 2264 阅读 · 0 评论 -
HarmonyOS 原生智能之语音识别实战
短语音模式(不超过60s)长语音模式(不超过8h)// 创建引擎,通过callback形式返回// 设置创建引擎参数online: 1,// 调用createEngine方法if (!err) {// 接收创建引擎的实例} else {// 无法创建引擎时返回错误码1002200008,原因:引擎正在销毁中});language:语言online:模式,1为离线,目前只支持离线引擎extraParams:区域信息等。原创 2024-08-02 21:54:02 · 2187 阅读 · 2 评论 -
HarmonyOS多目标产物构建最佳实践
target:工程内的每一个Entry/Feature模块,对应的构建产物为HAP,HAP是应用/服务可以独立运行在设备中的形态。由于在不同的业务场景中,同一个模块可能需要定制不同的功能或资源,因此引入target的概念。一个模块可以定义多个target,每个target对应一个定制的HAP,通过配置可以实现一个模块构建出不同的HAP。product:一个HarmonyOS工程的构建产物为APP包,APP包用于应用/服务发布上架应用市场。原创 2024-08-02 16:47:25 · 1601 阅读 · 0 评论